AI Candidate Matcher - Resume vs Job Description
Pricing
from $50.00 / 1,000 matched candidates
AI Candidate Matcher - Resume vs Job Description
Score resumes against a job description with an explanation for every criterion. Send resume files or texts; criteria are extracted from the job for you. Pay per matched candidate.
Pricing
from $50.00 / 1,000 matched candidates
Rating
0.0
(0)
Developer
HireLayer
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
16 days ago
Last modified
Categories
Share
What does AI Candidate Matcher do?
AI Candidate Matcher scores candidates against a job description and explains every score:
- a score from 0 to 1 for each candidate,
- a short summary of the fit,
- for each criterion: whether it is clearly met (
ideal), partly met (potential), not mentioned (not_mentioned) or contradicted (not_valid), with the evidence found in the resume.
Send resume files (PDF, Word, images…) or resume texts. You do not need criteria: they are extracted from the job description for you, or you can pass your own.
Resumes and job descriptions can be in any language.
It is powered by the HireLayer recruiting API. Processing runs in the EU.
Why use it?
- Screen a pile of applications in minutes, with a reason for every score that a recruiter can check.
- Same criteria for every candidate: fair, comparable scores.
- Hard requirements stay visible: filter on
is_mandatoryandmatch_statusto reject candidates who miss one. - Pay per candidate: no subscription.
How to use it
- Click Try for free.
- Paste the job description.
- Add resume URLs (one per line) and/or candidates as text.
- Click Start and open the Matches table, sorted by score.
Input
| Field | Description |
|---|---|
jobDescription | The job description (required). |
resumeUrls | Public URLs of resume files. Each file is parsed first. |
candidates | Candidates as text: [{"id": "c1", "text": "…"}], or {"id": "c2", "resumeUrl": "…"}. |
matchingCriteria | Optional criteria, as returned by the Job Description Criteria Extractor. |
maxConcurrency | Candidates processed at the same time (default 3). |
{"jobDescription": "Senior Frontend Engineer. 5+ years frontend, React and TypeScript in production, fluent English. Nice to have: Next.js.","candidates": [{ "id": "c1", "text": "Jane Doe. Frontend developer, 7 years React and TypeScript at Acme. English native." }]}
Output
One dataset item per candidate:
{"candidate_id": "c1","candidate_name": null,"status": "success","score": 0.857,"summary": "Jane Doe possède une solide expérience de 7 ans en React/TypeScript…","evaluated_criteria": [{"id": "crit_1","label": "Expérience de 5 ans ou plus en développement frontend avec React et TypeScript en production","weight": 3,"is_mandatory": true,"match_status": "ideal","match_explanation": "Le CV indique clairement 7 ans d’expérience avec React et TypeScript en production…"}]}
The criteria used are saved in the MATCHING_CRITERIA record of the key-value store, so you can reuse them in the next run. A candidate that cannot be processed gives an item with "status": "error" and is not charged.
Pricing
- $0.05 per matched candidate
- $0.05 per job description when the criteria are extracted for you (once per run)
- $0.08 per resume file parsed (candidates sent as text are not parsed)
Set a maximum cost per run in the run options: the Actor stops before going over it.
Use it from code
curl -X POST "https://api.apify.com/v2/acts/hirelayer~candidate-matcher/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"jobDescription": "…", "resumeUrls": ["https://example.com/resume.pdf"]}'
The Actor is also available to AI agents through the Apify MCP server.
FAQ
How is the score computed? It is the weighted average of the criteria: ideal counts 1, potential 0.6, not_mentioned 0.5 and not_valid 0. See the HireLayer Match documentation.
Should the score decide alone? No. Scores help recruiters prioritise; hiring decisions stay with people.
Need help? Open an issue in the Issues tab or write to contact@hirelayer.co.