resume-maker-mcp
Enables pushing tailored resume changes to a GitHub repository for version control and remote storage.
Automatically compiles the LaTeX resume into a PDF via GitHub Actions after changes are pushed, making the PDF available as an artifact or committed back to the repository.
Click on "Deploy 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-maker-mcpAnalyze this job description, tailor my resume, and push the changes to GitHub."
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-maker-mcp
A local MCP (Model Context Protocol) server that analyzes job descriptions and automatically tailors your LaTeX resume — then pushes it to GitHub where Actions compiles a fresh PDF. Works entirely with Claude Desktop. Zero cost.
Architecture
Claude Desktop
↓ MCP protocol
resume-maker-mcp (this server)
↓ file I/O + git
Local .tex files in /resume
↓ git push
GitHub repo
↓ GitHub Actions
resume.pdf (auto-compiled, downloadable)Related MCP server: CV Resume Builder MCP
Tools Exposed
Tool | What it does |
| Parses a job description → extracts skills, stack, keywords, seniority, fit score |
| Rewrites a resume section to target the JD (does NOT write to disk) |
| Writes edits to disk, git commits, pushes → triggers PDF compilation |
| Reads any section or the full resume.tex |
| Shows all section files and their status |
Setup
1. Clone and install
git clone https://github.com/YOUR_USERNAME/resume-maker-mcp.git
cd resume-maker-mcp
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .2. Set up GitHub repo
cd resume-maker-mcp
git init
git remote add origin https://github.com/YOUR_USERNAME/resume-maker-mcp.git
git add .
git commit -m "feat: initial resume-maker-mcp setup"
git push -u origin main3. Fill in your resume
Edit these files with your actual information:
resume/resume.tex— header (name, email, LinkedIn, GitHub)resume/sections/education.tex— education historyresume/sections/experience.tex— your work historyresume/sections/skills.tex— your tech skillsresume/sections/projects.tex— your projectsresume/sections/achievements.tex— awards, certifications, and achievements
The template renders sections in this order: Education, Technical Skills,
Experience, Projects, and Achievements. Each project includes editable Live
and Code links. Replace the example URLs with your deployment and repository
URLs.
4. Configure Claude Desktop
Open your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add this block (replace paths with your actual absolute paths):
{
"mcpServers": {
"resume-maker": {
"command": "/absolute/path/to/resume-maker-mcp/.venv/bin/python",
"args": ["-m", "server"],
"cwd": "/absolute/path/to/resume-maker-mcp",
"env": {
"RESUME_DIR": "/absolute/path/to/resume-maker-mcp/resume"
}
}
}
}See claude_desktop_config.example.json for platform-specific examples.
Restart Claude Desktop after saving the config.
5. Verify it works
In Claude Desktop, type:
list all resume sectionsYou should see all 5 editable sections listed with their file paths.
Usage — full workflow
Analyze a job description
Analyze this job description and tell me the fit score:
[paste the full JD here]Tailor a specific section
Tailor my skills section for this job description:
[paste JD]Tailor and push in one shot
Analyze this JD, tailor my skills and projects sections, then push the changes to GitHub:
[paste JD]Check what changed
Read my current projects sectionHow the PDF gets compiled
Once you push changes, GitHub Actions automatically:
Installs LaTeX (
texlive) on an Ubuntu runnerRuns
pdflatex resume.textwice (for proper cross-references)Uploads
resume.pdfas a downloadable artifactCommits
resume.pdfback to the repo
Download your PDF: Go to your GitHub repo → Actions tab → latest workflow run → Artifacts → resume-pdf.
Or directly from the repo root after Actions commits it back.
Customize fit scoring
The default fit score is a placeholder. To make it accurate, open tools/analyze_jd.py and update the score_fit() function with your own skills list:
MY_SKILLS = {
"python", "fastapi", "react", "postgresql", "docker", "aws"
# add your actual skills here
}
def score_fit(tech_stack: dict, seniority: str) -> dict:
found = {kw for kws in tech_stack.values() for kw in kws}
matched = found & MY_SKILLS
score = int(len(matched) / max(len(found), 1) * 100)
return {"score": score, "matched": list(matched), "missing": list(found - MY_SKILLS)}Project structure
resume-maker-mcp/
├── server.py ← MCP server entry point
├── tools/
│ ├── analyze_jd.py ← JD parser & keyword extractor
│ ├── tailor_resume.py ← section rewriter
│ ├── push_changes.py ← git commit & push
│ ├── read_resume.py ← file reader
│ └── list_sections.py ← section lister
├── resume/
│ ├── resume.tex ← main LaTeX document
│ └── sections/
│ ├── education.tex
│ ├── experience.tex
│ ├── skills.tex
│ ├── projects.tex
│ └── achievements.tex
├── .github/
│ └── workflows/
│ └── compile.yml ← GitHub Actions PDF builder
├── pyproject.toml
├── claude_desktop_config.example.json
└── README.mdTech stack
Layer | Technology | Cost |
MCP server | Python 3.10+, | Free |
Resume format | LaTeX | Free |
Version control | Git + GitHub | Free |
PDF compilation | GitHub Actions | Free (2000 min/mo) |
AI integration | Claude Desktop | Free tier |
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Validate, build, and publish the resume you keep as YAML in your own GitHub repository.
Auto-apply to jobs: matches your CV, tailors a fresh CV per posting, and applies for you.
Analyze job listings against your resume, track applications, and generate cover letters.
Generate tailored, ATS-optimized resume PDFs and cover letters from a job description, over MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAutomates resume tailoring by formatting job descriptions, using AI to customize resumes for specific positions, and saving both jobs and tailored resumes to organized folders.-
- AlicenseBqualityDmaintenanceAutomatically generates and updates CVs/resumes by aggregating data from git commits, Jira tickets, Credly certifications, and existing PDF resumes, with LaTeX formatting support.1413MIT
- AlicenseAqualityBmaintenanceTailors LaTeX résumés, CVs, and cover letters to job descriptions by injecting truthfully-selected content from a master CV, compiling PDFs, and logging applications.111MIT
- AlicenseNot gradedqualityCmaintenanceEnables users to tailor a one-page LaTeX CV to a job posting by fetching relevant facts from a YAML file, rendering a LaTeX document from id-based selections, and compiling it to PDF, without wasting tokens on repetitive CV reads or compiler logs.MIT