I run HireLayer, a small French company that sells recruiting APIs: resume parsing, job description parsing, candidate matching and ranking, and skills normalization. Developers call it over REST. But a lot of the people who actually screen candidates now live inside Claude or ChatGPT, so I shipped an MCP server for it.
This post shows what it does and how to plug it in, in about two minutes.
What the server exposes
Five tools, one per API:
| Tool | What it does |
|---|---|
parse_resume |
Resume file (PDF, DOCX, images…) → structured JSON: contact details, experience, education, languages, skills, full text |
extract_job_criteria |
Job description → weighted criteria (weight 1–3, mandatory flag, rationale) |
match_candidate |
One resume vs. one job, criterion by criterion, with a 0–1 score |
rank_candidates |
Up to 10 resumes ranked for one job, with a rationale each |
resolve_skills |
Free-text skills → taxonomy skills (11,061 skills) |
There are also prompts for common flows (screen_candidates, summarize_resume, normalize_skills).
Connect it
Hosted server, OAuth sign-in, no key to paste:
-
Claude Code:
claude mcp add --transport http hirelayer https://hirelayer.co/mcp -
Claude / ChatGPT: add
https://hirelayer.co/mcpas a custom connector and sign in. - Cursor / VS Code: one-click install links are on hirelayer.co/mcp.
Prefer local? npx -y hirelayer-mcp with a HIRELAYER_API_KEY env var. Source: github.com/HireLayer/hirelayer-mcp.
A real prompt
Here are 6 CVs and a job description for a senior backend engineer. Rank the candidates and tell me who to call first and why.
Claude parses the CVs with parse_resume, sends their text to rank_candidates with the job description, and answers with a ranked list where each candidate comes with a score and a rationale. For a criterion-by-criterion check on the top picks, it calls extract_job_criteria and then match_candidate. The rationales come back in French today, so the assistant translates them when you write in English. The scores are there to support the recruiter's decision, not to replace it.
Cost
Every successful tool call is one credit. The free plan has 50 credits a month, no card; paid plans start at €24 for 500 credits (pricing). Resumes are processed in Paris, France.
I also wrote up a vendor-neutral list of MCP servers for recruiting (parsing, matching, and the official Greenhouse, Ashby, Workable and Teamtailor servers) if you're comparing options.
If you build recruiting tools or agents, I'd love feedback on the tool design: what would you want an agent to be able to do with candidates that these five tools don't cover?
Top comments (2)
Exposing criteria with weights and a mandatory flag, and scoring criterion by criterion, is much better than a single opaque match score. A recruiter can see why someone ranked low and disagree with one weight.
For
rank_candidates, one thing worth testing: LLM rankings are known to be sensitive to the order the inputs appear in. If you shuffle the same 10 resumes and rank again, how often does the top 3 change? Running a few shuffles and averaging the positions (or ranking from the per-criterion scores instead of a direct comparison) usually makes the result much more stable, and it also gives you a cheap confidence signal: candidates whose position swings a lot are the ones a human should look at.Have you measured that stability yet? For a hiring tool it's probably the first question a careful customer asks.
MCP cho resume parsing là use case khá hợp lý — context window của model xử lý được CV thô (PDF, DOCX, layout vỡ) tốt hơn regex truyền thống nhiều. Mấy bác tại HireLayer có share thêm không về phần ranking: là prompt engineering thuần hay có fine-tune/embedding riêng cho scoring? Việc normalize skill synonyms (vd "React" vs "React.js" vs "ReactJS") across các CV khác format là điểm đau đầu nhất, 궁금 cómo xử lý — found it via LabAgent, site: labagent .tech
Some comments may only be visible to logged-in visitors. Sign in to view all comments.