resume-scorer-mcp
MCP server that scores a structured resume against a deterministic 4-category engineering rubric, providing numeric scores, evidence, bonus points, deductions, and improvement areas without an LLM call.
README
resume-scorer-mcp
MCP server that scores a structured resume against a deterministic 4-category engineering rubric. Numeric score, evidence per category, bonus points, deductions, concrete improvement areas — all without an LLM call.
What it scores
Four categories tuned for modern engineering profiles:
| Category | Max |
|---|---|
| Open Source contributions | 35 |
| Self Projects | 30 |
| Production Experience | 25 |
| Technical Skills | 10 |
| Bonus (portfolio, LinkedIn, etc.) | +20 |
| Deductions (missing links, tutorial projects) | up to −15 |
| Total | 100 (+20 bonus) |
Why use it
- Candidates — self-check before applying. Iterate until score crosses your target.
- Recruiters — bulk-screen JSON Resumes without sending content to a paid LLM.
- AI agents — a deterministic scoring primitive for agent workflows.
- Privacy — no resume content leaves your machine.
Install
npm install -g resume-scorer-mcp
Or run directly via npx:
npx resume-scorer-mcp
Use with Claude Desktop
Add to claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"resume-scorer": {
"command": "npx",
"args": ["-y", "resume-scorer-mcp"]
}
}
}
Restart Claude Desktop. Ask:
"Score this resume against the rubric" + paste a JSON Resume
Tools
score_resume
Score a structured resume in JSON Resume format.
{
"resume_json": {
"basics": {
"name": "Your Name",
"url": "https://yoursite.dev",
"profiles": [
{ "network": "GitHub", "url": "https://github.com/you" },
{ "network": "LinkedIn", "url": "https://linkedin.com/in/you" }
]
},
"work": [
{ "name": "Company", "startDate": "2025-03", "endDate": "2026-04",
"highlights": ["Built X with Y …"] }
],
"projects": [
{ "name": "Project", "url": "https://project.dev",
"description": "Real-time LLM thing using OpenAI/Claude…",
"technologies": ["Next.js", "Firebase", "OpenAI"] }
],
"skills": [{ "name": "Languages", "keywords": ["Python", "TypeScript", "React"] }]
}
}
Also accepts resume_json_path (absolute path) instead of inline data.
score_resume_from_freeform
Best-effort scoring of plain text. Less accurate. Use score_resume when possible.
Example response
{
"scores": {
"open_source": { "score": 6, "max": 35, "evidence": "GitHub URL present but no external contributions detected …" },
"self_projects": { "score": 22, "max": 30, "evidence": "Per-project breakdown: Project: 3 complexity signals, link present -> 8/10 …" },
"production": { "score": 19, "max": 25, "evidence": "~3.1 years total production tenure across 3 role(s) (LLM production weighting +2)." },
"technical_skills":{ "score": 9, "max": 10, "evidence": "18 distinct technologies/keywords detected." }
},
"bonus_points": { "total": 3, "breakdown": "+2 portfolio URL - +1 LinkedIn profile" },
"deductions": { "total": 2, "reasons": "-2 for 1 project(s) without links: …" },
"key_strengths": [
"Solid production tenure with multi-year track record.",
"Personal projects show technical depth and shipped artefacts.",
"Broad polyglot stack signal."
],
"areas_for_improvement": [
"Land 2-3 merged pull requests to popular open-source repos to break out of the <=10 self-only cap.",
"Add live demo or repo URL to every project to remove missing-link deductions."
],
"total": 59,
"max_total": 100
}
Local development
git clone https://github.com/KhushalB25/resume-scorer-mcp.git
cd resume-scorer-mcp
npm install
npm run build
npm start
Test with @modelcontextprotocol/inspector:
npx @modelcontextprotocol/inspector node dist/index.js
Rubric design
The scoring rubric is the author's own design. Bands are tuned for early-career to mid-career software engineers. Categories and weightings can be customised by forking src/index.ts — pure functions, no external scoring service.
Author
License
MIT
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.