resume-mcp

resume-mcp

MCP server for maintaining a professional profile database and generating tailored, ATS-optimized resumes for specific job postings.

Category
Visit Server

README

resume-mcp

MCP server for maintaining a professional profile database and generating tailored, ATS-optimized resumes for specific job postings.

Features

  • Profile database — SQLite store for contact info, education, work experience, projects, and skills with proficiency ratings
  • Job scraping — fetch and parse job postings from URLs; extract tech stack, experience level, requirements, and salary automatically
  • Tailored resume generation — scores every experience and project against the job, selects the most relevant ones, and produces a clean LaTeX resume
  • Relevance scoring — deterministic match score based on tech overlap, keyword coverage, and description similarity
  • ATS/keyword analysis — identifies keyword gaps, naming mismatches (React vs React.js), weak action verbs, bullets lacking metrics, and unused profile items that could strengthen the resume
  • No extra API keys — all analysis is pure Python (regex + keyword matching). The calling LLM (Claude, GPT, etc.) does the creative rewriting using its own subscription
  • Application tracker — auto-logs every generated resume to a formatted applications.xlsx spreadsheet with color-coded scores and status tracking

How tailoring works

Each experience and project is scored 0–1 against the job posting:

Signal Weight
Tech stack tag overlap 40%
Keyword match against requirements 35%
Description keyword match 25%

Items are ranked by score, the top 4 experiences and top 4 projects are selected, and skills matching the JD are reordered to appear first.

Review pipeline

  1. full_pipeline(url) — scrapes job → generates initial resume → runs deterministic analysis in one call
  2. The analysis returns: keyword gaps, ATS issues (exact phrasing mismatches), weak verb flags, bullets missing metrics, and unused profile items from the DB
  3. The calling LLM acts as a hiring manager and rewrites bullets, weaves in missing keywords, reorders sections
  4. save_optimized_resume(...) — saves the LLM-rewritten LaTeX back to the DB and compiles to PDF

No API keys are consumed in step 2. The LLM you're already talking to does the creative work.

Setup

cd ~/resume-mcp
pip install -r requirements.txt

# seed_profile.py is a template — open it and replace the placeholder data
# with your own info, then run it to populate the database:
python seed_profile.py

Tip: To keep your personal data out of git, copy the template to a private file:

cp seed_profile.py seed_yourname.py
echo "seed_yourname.py" >> .gitignore
python seed_yourname.py

Optional: Install pdflatex to compile resumes to PDF locally. Without it, .tex files are saved and can be compiled via Overleaf.

Claude Desktop config

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

{
  "mcpServers": {
    "resume-builder": {
      "command": "python3",
      "args": ["/Users/your-username/resume-mcp/server.py"]
    }
  }
}

Data storage

Path Contents
~/.resume-mcp/profile.db SQLite profile database
~/.resume-mcp/generated/ Generated .tex and .pdf files
~/.resume-mcp/applications.xlsx Application tracker spreadsheet

MCP tools

Profile

Tool Description
get_profile Return full profile (contact, education, experience, projects, skills)
set_contact_info Set name, email, phone, LinkedIn, GitHub, website, location
add_experience Add a work experience entry with bullet points and tech tags
update_experience Update fields on an existing experience by ID
delete_experience Remove an experience by ID
add_project Add a project with tech stack, bullets, URL, and status
update_project Update fields on an existing project by ID
delete_project Remove a project by ID
add_education Add an education entry with GPA, coursework, honors
add_skill Add or update a skill with category and proficiency (1–5)
remove_skill Remove a skill
bulk_add_skills Add multiple skills at once via {"Category": ["Skill1", "Skill2"]}

Job scraping

Tool Description
scrape_job_posting Fetch a job posting URL and extract structured data
analyze_job_from_text Parse a job from pasted text when URL scraping fails

Resume generation

Tool Description
generate_resume Generate a tailored resume given job details
scrape_and_generate One-shot: scrape URL and immediately generate resume
match_score Check profile-to-job match without generating a resume
get_resume_latex Retrieve full LaTeX source of a previously generated resume
list_generated_resumes List recent resumes with job details and match scores

Review & optimization

Tool Description
full_pipeline Scrape → generate → analyze in one call; returns everything the LLM needs to rewrite
review_resume_against_job Run deterministic analysis on a resume by ID or raw LaTeX
get_resume_with_context Get resume LaTeX + job info + full profile in one call for rewriting
save_optimized_resume Save LLM-rewritten LaTeX back to DB and compile to PDF

Application tracker

Tool Description
log_application Manually log an application to the spreadsheet
update_application_status Update status (Generated → Applied → Interview → Offer/Rejected)
get_application_stats Summary stats: total, by-status breakdown, average scores

Usage examples

These are natural language commands you'd send to Claude with the MCP server connected:

Generate a resume for this job posting: [paste URL]

Scrape this job and run the full pipeline so you can optimize my resume: [URL]

Add a new experience: I worked at Acme Corp as a backend engineer from Jan 2024 to present.
Bullets: [...]

What's my match score for a job that requires React, TypeScript, and AWS experience?

Update my application status for row 3 to "Interview"

Show me my application stats

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured