Skip to main content
Glama

Get candidate profile

get_candidate
Read-onlyIdempotent

Get the profile of a candidate by ID: the unified profile (merged from LinkedIn and resume data), contact data, notes, evaluations and the candidate's applications, each with the score the pipeline shows for that position (matchingScore). The expected salary is in pretendedSalary (amount, currency, period) when the candidate declared it or it was read from the resume; when it was asked as a free-text question it is in the application form answers instead. The current salary, when recorded, is in currentSalary. applicationsTruncated: true means older applications were left out. detail: "summary" (the default) returns the professional profile, contact data, notes, evaluations and applications; detail: "full" returns the whole stored record, including attachments. includeSources: true adds the raw linkedinData and resumeData structures (the raw resume text is never returned). includeResume: true adds a signed link to the resume PDF, valid for 1 hour, in resumeUrl.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "candidateId": "<candidateId>"
    },
    "name": "get_candidate"
  }
}

Input Schema

NameRequiredDescriptionDefault
detailNoHow much of the candidate to return: "summary" (profile, contact data, notes, evaluations, applications; the default) or "full" (the whole record, with attachments). includeSources implies "full".
candidateIdYesThe candidate ID
includeResumeNoInclude a 1-hour signed link to the resume PDF in `resumeUrl`.
includeSourcesNoInclude the raw linkedinData/resumeData source structures (default: false). When false only the unified profile is returned.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / detail / description
      Previous value: -"How much of the candidate to return: \"summary\" (profile, contact data, notes, evaluations, applications) or \"full\" (the whole record, with attachments). Default: \"summary\" for external hosts, \"full\" in the Selenios chat. includeSources implies \"full\"."New value: +"How much of the candidate to return: \"summary\" (profile, contact data, notes, evaluations, applications; the default) or \"full\" (the whole record, with attachments). includeSources implies \"full\"."
    • changedInput schema / properties / includeResume / description
      Previous value: -"In the Selenios chat: true only when the user asks for the CV. It is shown to them as a download button under your message."New value: +"Include a 1-hour signed link to the resume PDF in `resumeUrl`."
  2. Changed1 schema field changed
    • addedInput schema / properties / detail
      Added value: +{
      +  "description": "How much of the candidate to return: \"summary\" (profile, contact data, notes, evaluations, applications) or \"full\" (the whole record, with attachments). Default: \"summary\" for external hosts, \"full\" in the Selenios chat. includeSources implies \"full\".",
      +  "enum": [
      +    "summary",
      +    "full"
      +  ],
      +  "type": "string"
      +}
  3. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the description instead contributes return behavior: applicationsTruncated signals omitted records, the resume link is signed and expires in 1 hour, and raw resume text is never returned. These are genuinely useful operational facts, though it does not say what happens for an unknown or inaccessible candidate ID.

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 front-loaded paragraph that opens with the purpose before diving into field-level detail, with no filler sentences. It is dense and long, and the salary-resolution discussion sits a bit awkwardly mid-paragraph rather than grouped with the other return-field notes.

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?

With no output schema, the description carries the full burden of explaining return values, and it does so: the payload sections, field locations for salary data, truncation semantics, and the optional additions. An agent can call this correctly and interpret the response without further documentation.

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

Parameters3/5

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

Schema coverage is 100%, so the detail/includeSources/includeResume semantics are already documented in the schema, including that includeSources implies full. The description restates these and adds little parameter-level meaning beyond them; its real added value is about output fields (pretendedSalary vs application form answers, currentSalary), not the inputs.

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

Purpose4/5

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

States a specific verb and resource ('Get the profile of a candidate by ID') and immediately enumerates what the profile contains (unified profile, contact data, notes, evaluations, applications). The 'by ID' framing implicitly separates it from search_candidates and get_candidates_with_scores, but no sibling is named explicitly, so it stops short of full differentiation.

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

Usage Guidelines3/5

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

Usage is only implied: you call it when you already hold a candidate ID and need the full profile. There is no statement of when to prefer search_candidates or get_candidate_score_breakdown instead, and no prerequisites or failure conditions are given. The guidance on choosing detail/includeSources/includeResume is parameter-level, not tool-selection guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources