DOCUMENTATION
Build typed AI classifications from JSON state
JEV AI Model separates the facts you provide from the question you ask. This guide explains the input model, the three output types, and how to read every result.
1. Describe the state
State is a JSON object containing the facts the classifier may use. Keep field names stable across records so one question can be reused over a dataset. The model should not need to infer facts that are missing from state.
{
"candidate": "Senior backend engineer",
"years_experience": 8,
"skills": ["Go", "PostgreSQL", "distributed systems"]
}2. Choose a question type
Noul
Likelihood
Returns the probability that your statement is true, from 0 to 1. The number is the answer and the certainty together.
Score
Rating
Rates the state against ordered levels you define, returning a number on that scale plus a probability for each level.
Choice
Selection
Selects one option and returns the probability distribution across every option you supplied.
3. Ask several questions at once
One request carries one state and as many questions as you need. They are evaluated independently against the same state, so adding questions barely changes the response time and no answer can bias another.
{
"state": { "candidate": "…", "job_posting": "…" },
"questions": {
"relevance": {
"type": "score",
"instructions": "How relevant is this candidate to the posting",
"criteria": ["Unrelated", "Adjacent field", "Some direct", "Deep direct"]
},
"advance": {
"type": "noul",
"instructions": "This candidate should advance to an onsite"
}
}
}4. Read the result
Answers come back keyed by the ids you sent. A Noul is a single probability. Score and Choice add a confidence value alongside the full distribution, so your code can act on the answer and decide separately whether it is certain enough to act without review.
{
"model": "jev-1.13.0",
"answers": {
"relevance": {
"type": "score",
"score": 2.52,
"confidence": 0.52,
"legend": { "0": "Unrelated", "1": "Adjacent field",
"2": "Some direct", "3": "Deep direct" },
"probabilities": { "0": 0.0, "1": 0.05, "2": 0.38, "3": 0.57 }
},
"advance": { "type": "noul", "noul": 0.74 }
},
"usage": { "input_tokens": 328, "output_tokens": 34 }
}Try the documented workflow