Use case
Résumé screening
Check must-haves and score overall fit without inventing experience.
The problem
Keyword search rewards padded CVs and punishes career changers.
What your code does with the answer
Reject only when a must-have is clearly missing. Interview the rest.
Must-haves first, fit second
State carries the structured role (must_have and nice_to_have lists) plus the resume text. Two questions: meet_must_have (does the resume cover every must-have) and fit (a score across weak, possible, strong). Splitting matters because they behave differently: must-have coverage is checklist verification — TypeScript, Postgres and API design against five years of Node.js and two billing systems — while fit is a graded judgment your thresholds own.
Interview the humans, not the keywords
Reject only when a must-have is clearly missing (low meet_must_have probability with high confidence). Everyone else goes onward — the career-changer that keyword screens punish is exactly the point of semantic reading. Keep the nice_to_have list in state: the fit score absorbs it, but your bar for "possible" can move as the pipeline fills.
Pitfalls specific to résumé screening
Fairness is a legal surface here: scores route, humans decide, and must-have rejections need to be operational — a missing capability, not a vibe about culture fit. Do not send identity data (names, addresses, dates of birth) into the decision call; it is not needed for must-have coverage. And review criteria quarterly: credentials age, and a must-have that is really a nice-to-have is bias by keyword.
The request shape
This is the full request the playground sends for this preset — the same JSON your server sends to /v1/systemone with a Bearer key.
curl https://jevai.website/api/v1/systemone \
-H "Authorization: Bearer $JEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"state": {
"role": {
"title": "Backend engineer",
"must_have": [
"TypeScript",
"Postgres",
"API design"
],
"nice_to_have": [
"Workers",
"payments"
]
},
"resume": "5 years Node.js, shipped two billing systems, strong TypeScript and Postgres. No public-cloud certs."
},
"questions": {
"meet_must_have": {
"type": "noul",
"instructions": "Does the resume cover every item in `role.must_have`?"
},
"fit": {
"type": "score",
"instructions": "How strong is this candidate for the role?",
"criteria": [
"Weak",
"Possible",
"Strong"
]
}
}
}'FAQ about this use case
- Does this replace a recruiter?
- No — it front-runs the part that scales badly: first-pass must-have coverage. Decisions that cut finalists stay human, and the fit score goes to interview prep, not to a reject pile.
- How do we avoid keyword gaming?
- The model reads semantics, which cuts both ways: "shipping billing systems" reads stronger than a skills list. State must_have items as capabilities, not tool names alone, and the call rewards substance over padding.
- Are résumés sensitive data?
- Yes. The gateway forwards the request to the model to compute the answer and does not keep the content — still, get applicant consent in flow and send only what the decision needs.