Endpoint
Match one candidate
Evaluate a candidate against a job and its extracted criteria.
Request
application/jsonjob_textJob description, up to 50,000 characters.
candidate_textCandidate CV text, up to 50,000 characters.
matching_criteriaCriteria with id, label, weight, is_mandatory, and rationale. Reuse the objects returned by extraction.
Errors
401Missing or invalid API key. The public façade returns { error: "Missing API Key" } or { error: "Invalid API Key" }; direct HireLayer returns { success: false, error: "Unauthorized. Valid API key required." } when API_KEY is configured.
400The request body is missing or invalid.
404The requested endpoint does not exist.
502Bedrock failed or returned an invalid response.
500Unexpected server-side failure.
Example request
curl -X POST https://onlineresumeparser.com/api/v1/matching/job-candidate \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"job_text":"React required. Fluent English required. Paris-based.","candidate_text":"Senior React and TypeScript developer based in Paris with professional English.","matching_criteria":[{"id":"crit_1","label":"React","weight":3,"is_mandatory":true,"rationale":"React is explicitly required for the role."},{"id":"crit_2","label":"English","weight":2,"is_mandatory":true,"rationale":"The job description requires fluent English for daily collaboration."},{"id":"crit_3","label":"Paris","weight":1,"is_mandatory":false,"rationale":"The position is described as Paris-based, but the requirement is not marked as mandatory."}]}'Response
score is the historical weighted average using ideal = 1, potential = 0.6, not_mentioned = 0.5, and not_valid = 0. Every criterion remains in the weighted denominator.
{
"score": 0.8666666666666667,
"summary": "Le candidat couvre les compétences techniques principales et peut être considéré pour un entretien.",
"evaluated_criteria": [
{
"id": "crit_1",
"label": "React",
"weight": 3,
"is_mandatory": true,
"rationale": "React is explicitly required for the role.",
"match_status": "ideal",
"match_explanation": "Le CV mentionne quatre ans d'expérience avec React sur des applications web en production."
},
{
"id": "crit_2",
"label": "English",
"weight": 2,
"is_mandatory": true,
"rationale": "The job description requires fluent English for daily collaboration.",
"match_status": "potential",
"match_explanation": "Le CV indique un niveau d'anglais professionnel, mais ne précise pas de certification ou de niveau CECRL."
},
{
"id": "crit_3",
"label": "Paris",
"weight": 1,
"is_mandatory": false,
"rationale": "The position is described as Paris-based, but the requirement is not marked as mandatory.",
"match_status": "ideal",
"match_explanation": "La localisation actuelle du candidat est Paris, France."
}
]
}Allowed values in response
evaluated_criteria[].match_statusidealpotentialnot_validnot_mentionedThe public status assigned by the evidence-based evaluator for each supplied criterion.