Explain candidate score
get_candidate_score_breakdownGet why a candidate scored what they scored on one job position: the overall matching score with its per-criterion verdicts, knockout results, applied penalties and the position's full evaluation criteria, side by side. Use it whenever a recruiter questions or comments on a score — it is the only tool that shows which criterion produced which part of the number, and it tells you whether the score is still current or was computed against criteria that have since changed. When score.scoreModel is 'requirements' the client shows the requirements-based score: overall comes from score.requirementsScore (each requirement met with a grade of 8-10 from requirementsScore.version 'v6' on, 6-10 before — at most 8 when it is declared, i.e. backed only by the candidate's own word: their form answer or, when resolvedBy is 'interview', what they explicitly said in the AI interview about a vacancy criterion the profile had left 'a validar' (profileEvidence keeps the profile's own observation) —, partial (verdict 'partial', from 'v7' on: the candidate has it below a measurable threshold — at least half the years asked, or one language or study level below; for years and language levels code places it from the figures the model reports, and when code moved the model's verdict or counted the years itself the row's measured field holds the figures the verdict rests on (the evidence still quotes the model's own reading) —; it counts a fixed 4 with no grade, counts as covered and never caps a knockout), not met (0), or 'a validar' without evidence, which counts as a neutral 5 from requirementsScore.version 'v5' on — scores stored with 'v4' or earlier left it out of the average and graded form answers up to 10, so explain each score by its own version; plus up to 10 points of general analysis, blended 50/50 with interviewPerformance when there is an interview). From 'v6' a requirement weighs 2 when excluding (weight 'mustHave', which includes every knockout and every form question with an expected answer), 4 when an excluding one, knockouts included, the recruiter marked as weighing extra (extraWeight: true) and 1 when preferred, and a knockout not met — never one 'a validar' — caps the overall at 50, after the interview blend, as does a failed interview knockout question; knockoutFailed/knockoutReasons are its failed knockouts (any failed excluding requirement on 'v5' or earlier) plus the failed interview knockout questions, and breakdown, mustHaveEvaluations, the distance/residence penalties and profileMatchAudit stay at the top level of score but belong to the previous score, whose overall and knockout flag are in score.legacyScore — explain the number from requirementsScore, never from them. Every criterion reaches the score (usedForScreening is a legacy flag nothing reads); every criterion must be sent back with its isKnockout, extraWeight, visibleInCareerSite and usedForScreening flags exactly as returned here, because an update replaces the whole list.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"candidateId": "<candidateId>",
"jobDescriptionId": "<jobDescriptionId>"
},
"name": "get_candidate_score_breakdown"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| candidateId | Yes | The candidate ID | |
| jobDescriptionId | Yes | The job position the score belongs to |