In-depth architectural comparison of the Resume MCP Server and Job Search MCP MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Resume MCP Server
Workplace & Productivity · Local stdio
Quality: 57/100 (Good) | Auth: No auth required
Job Search MCP
Workplace & Productivity · Local stdio
Quality: 63/100 (Good) | Auth: No auth required
Verdict Summary: Choose Resume MCP Server if you need specialized Workplace & Productivity tools running via a local process. Choose Job Search MCP if your workspace requires Workplace & Productivity integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Resume MCP Server when:
You need dedicated capabilities in the Workplace & Productivity domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
MCP server for searching and retrieving structured information from local resume and job application documents (.docx, .pdf, .md, .txt) with auto hot-reload. 21 tools for full-text search and filtering by skill, company, and education, plus structured extraction of work experience, achievements, badge skills, and side projects. pip install resume-mcp-server
Claude Desktop job search assistant: searches LinkedIn plus 8 ATS boards (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Hacker News, RemoteOK, Remotive), scores each job 0-100 for fit (Claude judges directly, no LLM API key), and shows a ranked, triageable board inline in the chat.
Tools & Capabilities Breakdown
Resume MCP Server Tools (19)
list_resume_summaries
List resumes as lightweight identity records — id, name, email, phone only.
Use this to orient and pick a resume_id before fetching details with other tools.
Much more token-efficient than list_resumes when you only need to identify who is present.
Pass query to filter by first or last name (absorbs the old search_resumes_by_name tool).
Response includes total_count and items for pagination.
get_resume_profile
Get a resume's top-level fields (contact info, professional statement, education)
without the nested work experience and badge skill lists.
See also: get_resume_full for everything about this resume in one call.
Returns {"error": ...} if resume_id is not found.
get_resume_full
Get a resume's complete nested structure in one call: profile fields plus all
work experiences (with achievements), badge skills, side projects (with technologies),
and education entries (with competencies).
Prefer get_resume_profile plus the scoped list_* tools (list_work_experiences,
list_skills, list_side_projects, list_education) when you only need part of this —
it's more token-efficient. Use get_resume_full when you need the whole picture at once.
Returns {"error": ...} if resume_id is not found.
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Resume MCP Server is categorized under Workplace & Productivity and uses a local stdio subprocess. In contrast, Job Search MCP belongs to Workplace & Productivity using local stdio subprocess. Select Resume MCP Server when you need capabilities focused on workplace & productivity and Job Search MCP when you require tools for workplace & productivity.
List all documents. When doc_type is 'resume' (or omitted), structured resume data
is returned if available; otherwise flat file metadata is returned.
Response includes total_count and items for pagination.
See also: list_resume_summaries for a lighter-weight, more token-efficient listing;
get_resume_full for one resume's full nested structure by resume_id.
get_resume
Return the full extracted text of a document, as {"text": "..."}.
Note: takes a file path (see list_resumes), not a resume_id — use get_resume_profile
or list_resumes to fetch structured data by resume_id instead.
Returns {"error": ...} if path is not found.
search_resumes
Search across all documents for a keyword or phrase.
Response includes total_count, items, has_more, next_offset, and message for pagination.
search_resumes_by_skill
Find which resumes list one or more given badge skills. Returns resume identity and matched
skill names only — more token-efficient than list_resumes when filtering by skill.
Accepts either a single skill string or a list of skills to filter by multiple at once.
Each result includes: id, first_name, last_name, matched_skills.
Response includes total_count, items, has_more, next_offset, and message for pagination.
list_work_experiences
List work experiences, optionally filtered to a specific resume, only current roles,
and/or a keyword query matched against company name, position title, or achievement
descriptions (absorbs the old search_work_experiences tool).
Each result includes a resume_id field identifying which resume the experience belongs to.
Response includes total_count and items for pagination.
Returns {"error": ...} if resume_id is given but not found.
get_work_experience
Get a single work experience entry with its achievements.
Returns {"error": ...} if id is not found.
list_achievements
List achievements (resume bullet points), optionally filtered to a specific resume
and/or a keyword query matched against the achievement text (absorbs the old
search_achievements tool).
Response shape depends on the arguments given, to keep the common case cheap:
- resume_id given, query omitted: bare {id, desc} per item (cheapest — you already
know which resume these belong to).
- query given, and/or resume_id omitted: each item also includes company_name,
position_title, work_experience_id, and resume_id, since that context would
otherwise be unrecoverable from the achievement alone.
Response includes total_count and items for pagination.
Returns {"error": ...} if resume_id is given but not found.
get_achievement
Get a single achievement (phrase skill) by ID.
Returns {"error": ...} if id is not found.
list_skills
List badge skills (technologies, tools, languages), optionally filtered to a resume
and/or a keyword query matched against the skill title (absorbs the old search_skills tool).
Note: badge skills are deduplicated and shared across resumes by title, so — unlike
work experiences, side projects, and education — items here do not carry a resume_id.
Response includes total_count and items for pagination.
Returns {"error": ...} if resume_id is given but not found.
+7 more tools listed on main page
Job Search MCP Tools (10)
find_jobs
Search the boards for your roles/location (with optional filters: seniority, type, recency, remote, salary, applicants, source).
evaluate_jobs
Claude scores the found jobs 0–100 for fit (runs automatically after a search).
show_board
Display the ranked board (or your `saved` tracker).
set_status
Apply / Skip / save a single job (also the card buttons).
bulk_status
Triage many at once by score or source, e.g. *dismiss everything under 60*.
whats_promising
List the current board as text (all scored jobs + anything still unscored).
review_saved
Your tracker — jobs you've saved or applied to.
rescore_board
Re-score every job on the board from scratch.
clear_jobs
Declutter: clear unscored leftovers or the whole board (never touches applied/dismissed).
save_profile
Save your resume profile (drives search + scoring).