Recipe catalog / qualification-evidence
Check evidence for a qualification
Does profile contain concrete evidence that the candidate meets requirement, not just matching keywords?
You screen resumes or candidate summaries against one requirement at a time and want to separate demonstrated experience from keyword matches.
Explore this recipe interactively ยท Source and implementation guide
Use qualification-evidence in TypeScript
Install with npm install jev-recipes. Requires Node.js 22.9 or newer and ES modules. Set TYPESAFE_API_KEY in your server environment for live calls, which send input to TypeSafe and use API quota. See the installation guide.
import { qualificationEvidence } from 'jev-recipes/qualification-evidence';
const result = await qualificationEvidence({
"requirement": "At least three years of experience operating Kubernetes clusters in production.",
"profile": "Platform Engineer, Northwind Logistics, 2020 to present. Own the production Kubernetes platform (EKS, 12 clusters, 400 services). Led the migration from self-managed clusters to EKS in 2022 with zero customer-facing downtime. On-call rotation for cluster incidents; wrote the runbooks for node pool upgrades and etcd recovery. Skills: Kubernetes, Terraform, Go, Prometheus.",
"minConfidence": 0.8
});
console.log(result);
Input contract
| Field | Type | Needed |
|---|---|---|
| requirement | string | Required |
| profile | string | Required |
| minConfidence | number | Optional |
Full input and result schemas
{
"input": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"requirement": {
"type": "string"
},
"profile": {
"type": "string"
},
"minConfidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"requirement",
"profile"
]
},
"result": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"model": {
"type": "string"
},
"usage": {
"type": "object",
"properties": {
"input_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"output_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"input_tokens",
"output_tokens"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"ready",
"review"
]
},
"probability": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"verdict": {
"type": "string",
"enum": [
"evidenced",
"unevidenced"
]
}
},
"required": [
"model",
"usage",
"status",
"probability",
"confidence",
"verdict"
],
"additionalProperties": false
}
}Saved example result
This hand-authored response demonstrates the contract. It is not a model accuracy measurement. Run it without an API key: npx jev-recipes demo qualification-evidence.
{
"model": "demo-fixture",
"usage": {
"input_tokens": 0,
"output_tokens": 0
},
"status": "ready",
"probability": 0.94,
"confidence": 0.94,
"verdict": "evidenced"
}
Evaluation evidence
No verified live accuracy measurement is available. Evaluate representative cases before using this decision in your workflow.
Use the evaluation guide to measure this decision on your own labeled cases.
Limitations
- Judges whether the profile describes evidence, not whether that evidence is true or verifiable.
- One requirement per call. Loop over requirements or aggregate in application code.
- A profile can be evidenced for a requirement and still be a poor fit overall; this is not a hiring decision.
Related recipes
- step-complete: Use step-complete for the general form: does evidence establish that a condition is met.
- verify: Use verify to check several candidate claims against paired evidence in one call.