Skip to main content
Glama

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

Related MCP server: cv-forge-mcp

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
F
license - not found
-
quality - not tested
C
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/ddavidgao/resume-mcp'

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