Skip to main content
Glama
meskhetian

linkedin-applicants-mcp

by meskhetian

Fetch application details, resumes and profiles

applicants_fetch_details
Idempotent

Queue deep retrieval of job applicants' details, resumes, and LinkedIn profiles, paced to respect daily limits and working hours.

Instructions

Queue the deep fetch for applicants: open each application page (contact email/phone when shared, screening answers, rating, applied date), download the resume, and (includeProfile) then visit the LinkedIn profile for the full structured profile. One applicant at a time, paced like a recruiter, within working hours and daily caps, so thousands of applicants take days to weeks by design. Defaults to only applicants not fetched yet. Returns how many were queued and a time estimate. Track with queue_status; read results with applicants_list / applicant_get / applicants_export.

Input Schema

NameRequiredDescriptionDefault
jobIdNoFetch all applicants of this job (subject to onlyMissing/limit)
limitNoQueue at most this many applicants now
savePdfNoReserved: LinkedIn "Save to PDF" is a Chrome download, which crashes Chrome 154 under automation, so it is currently skipped with a warning; the structured profile is stored instead
orderByFitNoFetch the applicants who match the job's must-have qualifications best first (LinkedIn's list counters), so the strong candidates are done in the first days of a long queue
onlyMissingNoSkip applicants whose details were already fetched (with downloadResume, applicants whose resume is still missing are included)
profileDepthNo'full' visits detail sections when Voyager is unavailable; 'basic' reads only the main profile pagefull
applicationIdsNoExplicit application ids instead of a whole job
downloadResumeNo
includeProfileNoAlso queue the full LinkedIn profile after the application page
profileMinMustHaveNoWith includeProfile: only visit the LinkedIn profile of applicants meeting at least this fraction of the must-have qualifications (for example 0.8). Others get details and resume only; queue their profiles later with applicants_fetch_profiles

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the asynchronous queueing nature, the side-effect of interacting with external sites (openWorldHint), the idempotent behavior via onlyMissing, the savePdf Chrome crash warning, and the pacing constraints. This goes well beyond the annotations (readOnlyHint false, idempotentHint true) and provides essential expectations for a tool that takes days to complete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph that front-loads the purpose, then covers pacing, defaults, and return value. Every sentence adds information, but it is a bit long and could benefit from bullet points for scannability. Still, it is well-organized and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters and no output schema, it covers the essential context: what it does, how it behaves (async, paced), what it returns (count and estimate), how to track progress, and how to read results. It also notes important caveats (savePdf, profileDepth, onlyMissing). Nothing critical for an agent to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers 90% of parameters with descriptions, so the description doesn't need to repeat them. It adds global context (pacing, defaults, interaction between includeProfile and profileMinMustHave) that enriches parameter interpretation. However, it doesn't explicitly explain the profileMinMustHave logic in the description, relying on the schema, so it's a slight gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Queue the deep fetch') and resource ('applicants'), enumerates the exact actions (open application page, download resume, visit LinkedIn profile), and explicitly names the sibling tool applicants_fetch_profiles as the alternative for later profile-only fetches. This unambiguously distinguishes it from related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: it describes the pacing (one at a time, working hours, daily caps), the default behavior (only missing), and when to defer profile fetching via profileMinMustHave and applicants_fetch_profiles. It also directs users to queue_status for tracking and applicants_list/applicant_get/export for reading results, covering both usage and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.