Skip to main content
Glama
nishtobehonest

Resume Tailor MCP Server

Resume Tailor — MCP Server

An MCP server that tailors your LaTeX resume to a job description using Claude. It returns a structured diff — keywords, gap summary, before/after bullet changes, and a guardrails report — without touching your formatting or inventing new facts.


How it works

You (or Claude Desktop)
        │
        │  job_description + resume_content
        ▼
  tailor_resume tool  ←── this server
        │
        │  calls Claude Sonnet with a constrained system prompt
        ▼
  structured JSON response
        │
        ├── jd_keywords        top 3–5 repeated JD terms
        ├── gap_summary        skills JD wants that aren't in your resume
        ├── bullet_changes     before/after for each modified bullet only
        ├── skills_changes     before/after for skills section (or null)
        ├── guardrails_report  model's self-audit (new claims, removed metrics)
        └── validation         5 deterministic checks run after the LLM response

What it will never do:

  • Add experiences, metrics, or skills not already in your resume

  • Remove numbers or percentages

  • Change LaTeX commands or document structure

  • Rewrite bullets you didn't ask it to touch


Related MCP server: Resume Forge MCP

Project structure

server.py           MCP server — exposes hello and tailor_resume tools
client.py           Standalone MCP client (learning exercise / smoke test)
prompts.py          System prompt that constrains Claude's output
guardrails.py       Post-LLM validation (5 deterministic safety checks)
test_guardrails.py  Offline unit tests for the guardrails module
pyproject.toml      Project config and dependencies
.env                Your ANTHROPIC_API_KEY (never committed)

Setup

1. Clone and install

git clone <your-repo-url>
cd MCP_push1
uv sync

2. Add your API key

Create a .env file:

ANTHROPIC_API_KEY=sk-ant-...

Get a key at https://console.anthropic.com → API Keys.

3. Test in the MCP Inspector

uv run mcp dev server.py

Open the URL it prints. You'll see two tools: hello and tailor_resume.

4. Run the offline guardrail tests

uv run python test_guardrails.py

Connect to Claude Desktop

Add this to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "resume-tailor": {
      "command": "/Users/your-username/.local/bin/uv",
      "args": [
        "--directory",
        "/path/to/MCP_push1",
        "run",
        "server.py"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}

Why full paths? Claude Desktop spawns the server in a minimal environment that may not have your shell PATH. Full paths are required.

Restart Claude Desktop after saving. The resume-tailor server will appear in the connectors list.


Usage

Via Claude Desktop

Once connected, ask Claude:

"Use the tailor_resume tool. Here's the job description: [paste JD]. Here's my resume: [paste LaTeX]."

Claude will call the tool automatically and explain the results to you.

JD ingestion modes

Source

How to use

Pasted text

Copy the JD text, pass it directly

URL

Open the page, copy all text, paste it

PDF

Open the PDF, copy text, paste it

The tool takes plain text input. Claude Desktop can also read URLs and PDFs from your context window and pass the extracted text to the tool.


Output format

{
  "jd_keywords": ["Python", "ETL", "SQL"],
  "gap_summary": "No evidence of distributed systems experience.",
  "bullet_changes": [
    {
      "section": "Acme Corp / Data Engineer",
      "before": "\\resumeItem{Built pipeline tooling...}",
      "after":  "\\resumeItem{Built data pipeline tooling...}",
      "rationale": "Targets 'ETL' keyword — no new facts added."
    }
  ],
  "skills_changes": { "before": null, "after": null, "rationale": null },
  "guardrails_report": {
    "new_claims": [],
    "removed_metrics": [],
    "formatting_changes": []
  },
  "validation": {
    "passed": true,
    "issues": []
  }
}

Guardrails

Five checks run after every LLM response:

Check

What it catches

Self-reported new claims

Model admits hallucinating

Self-reported removed metrics

Model admits stripping numbers

"Before" not in resume

Model invented the source text

LaTeX commands dropped

Formatting silently corrupted

Word count >50% growth

Keyword stuffing

If any check fails, validation.passed is false and issues lists exactly what went wrong.

Install Server
F
license - not found
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nishtobehonest/latex-resume-tailor-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server