Skip to main content
Glama

Tailor Resume to Job Description

civify_tailor_cv

Tailor a candidate's resume against a target job description using AI. Generates optimized bullet points, highlights matching skills, provides ATS keyword audit, and creates an optional cover letter.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional API key override.
filenameNoFilename when providing base64 content (e.g. 'resume.pdf').resume.pdf
languageNoLanguage code (e.g., 'en', 'ar').
job_titleNoTarget job title.
file_base64NoBase64 encoded resume file content (PDF, DOCX). Recommended for remote/cloud MCP servers.
resume_textNoPlain text or markdown content of the candidate's resume. Easiest option when chatting with an AI agent.
company_nameNoTarget company name.
include_roadmapNoWhether to generate a preparation roadmap.
job_descriptionYesThe full text of the job description to tailor against.
server_file_pathNoLocal file path on the MCP server machine. For local CLI/stdio usage only. In ChatGPT or Claude, pass 'resume_text' or 'file_base64' instead.
generate_cover_letterNoWhether to generate a matching tailored cover letter.
include_interview_questionsNoWhether to generate matching interview prep questions.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusNoExecution status
changesNoSummary list of bullet points and sections tailored
roadmapNoTargeted skill acquisition roadmap
atsScoreNoAudit score for tailored version
tailoredCvNoOptimized resume document structure
coverLetterNoMatching personalized cover letter text if requested
interviewPrepNoTargeted interview preparation questions and talking points
tailoredResumeNoOptimized resume document structure
originalAtsScoreNoOriginal ATS score before tailoring for comparison
validationWarningsNoValidation warnings or alignment notes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / anyOf
      Previous value: -[
      -  {
      -    "required": [
      -      "resume_text"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "file_base64"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "file_path"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "required": [
      +      "resume_text"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "file_base64"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "server_file_path"
      +    ]
      +  }
      +]
    • removedInput schema / properties / file_path
      Removed value: -{
      -  "description": "Local file path on the MCP server machine. Do NOT use for remote cloud servers; use 'resume_text' or 'file_base64' instead.",
      -  "type": "string"
      -}
    • addedInput schema / properties / server_file_path
      Added value: +{
      +  "description": "Local file path on the MCP server machine. For local CLI/stdio usage only. In ChatGPT or Claude, pass 'resume_text' or 'file_base64' instead.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the tool is a non-destructive but mutating operation. The description adds that it uses AI and generates new content, which implies external processing and potential API calls. However, it does not disclose side effects like cost, whether the original resume is preserved, or any rate limits. With minimal annotations, the description provides basic transparency but lacks deeper behavioral context.

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?

The description is a single, well-structured sentence that leads with the core purpose and then lists key features. It is front-loaded, contains zero filler, and every clause adds value. The format is ideal for quick agent comprehension.

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

Completeness4/5

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

Given the tool's complexity (12 parameters, output schema present), the description is reasonably complete. It conveys the essential purpose and deliverables. The output schema covers return values, and the schema covers parameter details. It does not mention prerequisites like API key requirements or the distinction between local vs. remote file inputs, but these are addressed in the schema. Minor gaps exist, but the description is sufficient for an agent to call the tool correctly.

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 description coverage is 100%, so every parameter is already documented in the schema. The description's mention of 'optional cover letter' merely echoes the generate_cover_letter parameter. It does not add new meaning or clarify parameter interplay beyond what the schema already provides, so the baseline of 3 is appropriate.

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?

The description states a specific verb and resource ('Tailor a candidate's resume against a target job description') and enumerates concrete outputs (optimized bullet points, matching skills, ATS keyword audit, optional cover letter). This clearly distinguishes it from siblings like civify_score_ats (which only scores) and civify_parse_cv (which parses), leaving no ambiguity about what the tool accomplishes.

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?

The description implies its usage context by listing features (tailoring, ATS audit, cover letter), but it does not explicitly state when to choose this tool over alternatives. For instance, an agent wanting just an ATS score might not know to use civify_score_ats instead. No exclusions or when-not conditions are provided, so guidance is implicit rather than explicit.

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