resume-optimizer · MCP server

Resume feedback your agent can call—and you can inspect.

Resume Optimizer runs six text-analysis tools for scoring, job-description matching, keyword review, bullet rewrites, professional summaries, and format checks. Its results come from local heuristics and built-in keyword data, with no external API calls.

6 shipped tools Pure text analysis Node.js 18+ MIT license
Run with npx View pricing

What it does

Six focused tools, one plain-text review loop

analyze_resume

Returns an overall 0–100 score and category feedback for format parsability, section completeness, keywords, quantified achievements, action verbs, and length. A supplied job description adds keyword relevance to the analysis.

optimize_for_job

Compares supplied resume and job-description text, then reports a match percentage, matching and missing terms, experience and education alignment, gaps, and suggested edits.

analyze_keywords

Inventories hard skills, soft skills, tools, certifications, and action verbs. It can assess built-in tech, finance, marketing, healthcare, or general keyword coverage.

improve_bullets

Scores each supplied bullet for action verbs, quantified results, specificity, and outcome language, then returns issues and a suggested rewrite.

generate_summary

Detects an entry, mid, senior, or executive career level and drafts confident, technical, and leadership-oriented professional summary options.

check_ats

Reviews section names, contact details, text structure, consistency, keyword stuffing, and file-format guidance, returning categorized issues and an overall readiness label.

Agent workflows

Three review sequences with the shipped tool schemas

Workflow 01

Establish a baseline

Start with a category score against the role, then run the dedicated plain-text format and section check.

analyze_resume

{
  "resume_text": "Full resume text...",
  "job_description": "Senior software engineer job description..."
}

check_ats

{
  "resume_text": "Full resume text..."
}

Workflow 02

Compare with a target role

Find overlap and gaps in the exact posting, then inspect the resume’s industry keyword inventory before choosing truthful additions.

optimize_for_job

{
  "resume_text": "Full resume text...",
  "job_description": "Full job description text..."
}

analyze_keywords

{
  "resume_text": "Full resume text...",
  "industry": "tech"
}

Workflow 03

Draft, verify, and revise

Improve selected bullets and generate role-focused summary options. Keep only language supported by the candidate’s real experience.

improve_bullets

{
  "bullets": [
    "Responsible for managing a team of developers",
    "Worked on various projects"
  ],
  "context": "software engineering"
}

generate_summary

{
  "resume_text": "Full resume text...",
  "target_role": "Engineering Manager"
}

Quickstart

Run the published package over stdio

Open your client's config file

  • Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json

    Windows: %APPDATA%\Claude\claude_desktop_config.json. In the app: Settings → Developer → Edit Config.

  • Cursor ~/.cursor/mcp.json

    Or .cursor/mcp.json inside a single project.

  • Windsurf ~/.codeium/windsurf/mcp_config.json

    Cascade panel → MCP icon → edit the raw config.

Paste this entry

All three clients accept the same object. If the file already has an mcpServers block, add just the "resume-optimizer" entry inside it.

{
  "mcpServers": {
    "resume-optimizer": {
      "command": "npx",
      "args": ["-y", "resume-optimizer"]
    }
  }
}

No env block is needed to start: the first 3 tool calls total across this server's tools run without a license.

Using Claude Code instead? One command, no file

$ claude mcp add --transport stdio resume-optimizer -- npx -y resume-optimizer

Check it registered with claude mcp list. Add a key later with --env LICENSE_KEY=your-key placed before --transport.

Restart the client, then confirm it loaded

  • Claude Desktop: quit and reopen the app, then look for Resume Optimizer in the tools/plugin menu.
  • Cursor: Settings → Customize → MCP; the server should list its tools.
  • Windsurf: reload Cascade; the server appears under the MCP panel.
  • Claude Code: run claude mcp list and look for ✔ Connected.

Running npx -y resume-optimizer in a terminal looks frozen — that is correct. It is a stdio server: it waits silently for an MCP client on stdin and never returns a prompt. Press Ctrl+C to exit. Use the config above rather than the bare command; your client starts the process for you.

Add your license key when you buy

A key arrives on screen right after checkout. Add it as an environment variable in the same entry:

{
  "mcpServers": {
    "resume-optimizer": {
      "command": "npx",
      "args": ["-y", "resume-optimizer"],
      "env": {
        "LICENSE_KEY": "paste-your-key-here"
      }
    }
  }
}

Keys are verified offline against a public key compiled into the package — no account, no network check, no usage reporting. Lost the key? Recover it here. More detail on the FAQ.

Free behavior

With no license key, the first three tool calls are allowed in total, shared across all six Resume Optimizer tools—not three per tool, and not three per day. The third call runs; later calls are blocked. The count is persisted in ~/.aivp-mcp/usage.json when that location is writable, so it is a one-off trial—not a daily reset. If storage is unavailable, the server falls back to an in-memory count for that process. No credit card is required.

Basic · $8/month

Unlimited, licensed access to analyze_resume, check_ats, and improve_bullets. The Pro-only tools optimize_for_job, generate_summary, and analyze_keywords are not included in Basic.

Pro · $15/month

Adds unlimited use of the Pro-only tools optimize_for_job, generate_summary, and analyze_keywords to everything in Basic. See the current purchase options on the portfolio pricing card.

Resume Optimizer pricing

A purchased key removes the trial counter and unlocks unlimited, ungated calls to the tools in your plan. It is verified fully offline against a public key compiled into the package—no account, no network check, no usage reporting—and stays valid for 365 days.

Scope and limitations

What this server does not do

No document-file inspection

Tool inputs are text strings or arrays of text. The server does not open PDF or DOCX files or inspect visual layout, fonts, columns, images, or the final exported file.

No live ATS simulation

Scores and readiness labels come from local rules and keyword matching. The server does not connect to, certify against, or reproduce any employer’s ATS.

No fact checking

Suggested bullets may include placeholders for metrics. The server cannot verify experience, skills, dates, or results; every claim must be reviewed and kept truthful.

No application workflow

It does not find vacancies, submit applications, contact employers, or track an application. Its shipped surface is limited to the six resume-analysis tools above.

Start with three free calls

Add Resume Optimizer to your client, then license it.

Connect the server with no key and spend the shared three-call trial on a real resume. Buy Basic or Pro when you want unlimited, ungated calls to the tools in your plan.