{"id":"5e5fa017-5224-4ab4-ad2d-7ceb1bdab896","slug":"matchcv-mcp","kind":"mcp","name":"matchcv-mcp","summary":"","owner":"18boys","repoUrl":"https://github.com/18boys/matchcv-mcp","license":"MIT","licenseTier":"permissive","trust":"community","stars":0,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-08-31T14:04:05.000Z","addedAt":"2026-10-14T05:06:29.240Z","logoUrl":"https://avatars.githubusercontent.com/u/7403643?u=740ef9bc98ae0a3ff878b74750b195a38b5fda4f&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["utilities"],"tags":[],"runtime":"node","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-14T12:47:02.764Z","sample":false,"url":"https://conduits.dev/tools/matchcv-mcp","language":"TypeScript","transports":["stdio"],"install":{"npm":"matchcv-mcp"},"requirements":{"env":[{"name":"MATCHCV_BASE_URL","secret":false,"required":false,"description":"Override MatchCV API origin. Defaults to https://matchcv.co."}],"upstreamMayCharge":false},"tools":null,"readme":"# MatchCV MCP Server\n\n[![npm](https://img.shields.io/npm/v/matchcv-mcp)](https://www.npmjs.com/package/matchcv-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)\n\nResume tools for MCP clients. Check a resume against ATS rules, parse a job description into structured\nrequirements, get rewrite-level suggestions, and generate a fully tailored resume with a shareable preview\nlink — all from inside Claude, Cursor, Codex, or any other MCP-compatible client.\n\nPowered by [MatchCV](https://matchcv.co) · [MCP docs](https://matchcv.co/docs/mcp) · [Get started free](https://matchcv.co/login)\n\n---\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `ats_check` | Scores resume text 0–100 for ATS compatibility, with a recruiter take, prioritized issues and fixes, and detected strengths |\n| `analyze_job_description` | Turns a job posting into structured JSON: title, company, seniority, industry, must-have / nice-to-have keywords, responsibilities |\n| `optimize_resume` | Prioritized improvement suggestions with example rewrites, optionally targeted at a role, a JD, and specific missing keywords |\n| `roast_resume` | Blunt recruiter-style critique plus an ATS score, returned as a public shareable report link |\n| `extract_resume_text` | Reads a local PDF/DOC/DOCX/TXT resume and returns plain text, optionally AI-parsed into structured JSON |\n| `tailor_resume` | Full pipeline — analyze the JD, rewrite the resume for that role, return the tailored JSON plus a preview page you can open and download as PDF |\n\n## Install\n\nRequires Node.js 20+. No API key and no account are needed to start.\n\n### Claude Desktop / Claude Code\n\nAdd to your MCP config (`claude_desktop_config.json`, or run `claude mcp add`):\n\n```json\n{\n  \"mcpServers\": {\n    \"matchcv\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"matchcv-mcp\"]\n    }\n  }\n}\n```\n\n### Cursor\n\n`~/.cursor/mcp.json` (or `.cursor/mcp.json` in a project):\n\n```json\n{\n  \"mcpServers\": {\n    \"matchcv\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"matchcv-mcp\"]\n    }\n  }\n}\n```\n\n### Codex CLI\n\n`~/.codex/config.toml`:\n\n```toml\n[mcp_servers.matchcv]\ncommand = \"npx\"\nargs = [\"-y\", \"matchcv-mcp\"]\n```\n\n### Any other MCP client\n\nThe server speaks MCP over stdio. Run it directly with:\n\n```bash\nnpx -y matchcv-mcp\n```\n\n## Example prompts\n\n- *\"Read `~/Documents/resume.pdf` and tell me how it scores against ATS.\"*\n- *\"Here's a job posting — what keywords is my resume missing?\"*\n- *\"Roast my resume, I want the honest version.\"*\n- *\"Tailor my resume to this job description and give me the preview link.\"*\n\n## Usage limits\n\nThe tools call MatchCV's public endpoints, so free usage is capped per day, per IP address:\n\n| | Free (no account) | Signed in | Pro |\n|---|---:|---:|---:|\n| `ats_check`, `analyze_job_description`, `optimize_resume`, `roast_resume`, structured parsing | 3/day | 10/day | Unlimited |\n| `tailor_resume` | 1/day | 3/day | Unlimited |\n\nPlain text extraction (`extract_resume_text` without `structured: true`) is unlimited — it runs no AI.\n\nQuota errors come back as a readable message telling you how to raise the limit. See\n[matchcv.co/pricing](https://matchcv.co/pricing).\n\n## Configuration\n\n| Environment variable | Default | Purpose |\n|---|---|---|\n| `MATCHCV_BASE_URL` | `https://matchcv.co` | API origin. Only needed to point at a development deployment. |\n\n## Privacy\n\nThis server holds no credentials and stores nothing locally. Resume and job description text is sent to the\nMatchCV API over HTTPS for processing. `roast_resume` and `tailor_resume` create a page at an unguessable\npublic URL so you can open and share the result; the other tools store nothing. See the\n[privacy policy](https://matchcv.co/privacy).\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnode dist/index.js\n```\n\nPoint it at a local MatchCV instance with `MATCHCV_BASE_URL=http://localhost:3000`.\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n"}