Resume Tailor MCP Server
Enables modification of LaTeX resume documents, ensuring formatting is preserved while updating bullet points and skills sections.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Resume Tailor MCP ServerTailor my resume to this data engineer job description."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 responseWhat 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 sync2. 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.pyOpen the URL it prints. You'll see two tools: hello and tailor_resume.
4. Run the offline guardrail tests
uv run python test_guardrails.pyConnect 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 |
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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