Skip to main content
Glama
meskhetian

linkedin-applicants-mcp

by meskhetian

Fetch full LinkedIn profiles only

applicants_fetch_profiles
Idempotent

Queue full-profile fetches for applicants with known profile URLs, skipping those already fetched. Use when initial details were fetched without profiles, to retrieve them without reopening applications.

Instructions

Queue full-profile fetches for applicants whose profile URL is known (from the list or application page) without re-opening their application. Use when details were fetched with includeProfile=false. Paced like a person; profile views are the most rate-sensitive action.

Input Schema

NameRequiredDescriptionDefault
depthNofull
jobIdNo
limitNo
savePdfNoReserved: currently skipped with a warning (Chrome download crash), the structured profile is stored instead
onlyMissingNoSkip applicants whose profile was already fetched
applicationIdsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

Beyond the annotations, the description adds meaningful behavioral context: it is paced like a human, profile views are the most rate-sensitive action, and it queues rather than performing synchronous opening. The idempotentHint is consistent with queuing, and openWorldHint fits the known-URL precondition. It does not detail queue mechanics or failure behavior, but the rate-limiting disclosure is valuable.

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

Conciseness5/5

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

Three sentences, all purposeful and front-loaded with the core action. The usage condition and pacing warning are stated without filler, making it easy for an agent to parse and act on.

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

Completeness3/5

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

For a tool with six parameters, no output schema, and required fields entirely absent, the description provides a good usage trigger and rate-sensitivity warning but omits how applicants are selected via parameters. It also does not clarify what the caller should expect after queueing, which is more pressing given there is no output schema.

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

Parameters2/5

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

Schema description coverage is only 33%, so the description carries heavy responsibility, but it fails to explain key parameters like applicationIds, jobId, limit, and depth. It mentions the profile URL is known 'from the list or application page' without mapping that to the actual parameters. savePdf and onlyMissing are documented in the schema, but the remaining parameters are left ambiguous.

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 and resource—'Queue full-profile fetches for applicants'—and clarifies scope by requiring a known profile URL and explicitly noting it does not re-open the application. This clearly distinguishes it from applicants_fetch_details, especially with the title 'Fetch full LinkedIn profiles only.'

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

Usage Guidelines4/5

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

Gives an explicit trigger condition: 'Use when details were fetched with includeProfile=false.' It also implies the alternative is not needed when profiles are already at full depth. However, it does not name a sibling tool or state a when-not-to-use condition as explicitly as it could.

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