Decide first.
Generate second.
Jev is a decision model. It never writes text. You send a situation and typed questions, and it returns one calibrated probability per question in about 100 ms, for $0.042 per million tokens. Put it in front of anything expensive.
Category, urgency and escalate-to-human before any model writes a reply.
Free starter credits cover thousands of decisions. Or copy the code below and run it with your own key.
Answers arrive here as probabilities, one card per question, in about 100 ms. No text to parse, nothing invented outside the options you gave.
Jev decides in ~100 ms, then a chat model drafts only the tickets a bot may answer.
What to do with the numbers
- urgent > 0.7 and category = billing → billing on-call queue.
- escalate < 0.4 → let companyfabric/cheap draft the reply; otherwise a human answers.
- escalate between 0.4 and 0.6 is unsure: fail closed, human.
- Log churn_risk with the ticket; tune thresholds from the log, not from guesses.
This exact request, in code
curl https://api.companyfabric.com/v1/decisions \
-H "Authorization: Bearer $COMPANYFABRIC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "typesafe/jev-latest",
"state": "Second time this month my card was charged twice. I want a refund today or I'\''m cancelling and disputing with my bank.",
"questions": {
"category": {
"type": "choice",
"instructions": "What is this ticket about?",
"criteria": {
"billing": "Charges, invoices, refunds, double charges",
"technical": "Bugs, errors, outages, something not working",
"account": "Login, access, password, settings",
"other": null
}
},
"urgent": {
"type": "noul",
"instructions": "Does this need a human reply within the hour?",
"criteria": {
"true": "Money lost, service blocked, or a stated deadline",
"false": "Can wait for the next business day"
}
},
"escalate": {
"type": "noul",
"instructions": "Should a human handle this instead of an automated reply?"
},
"churn_risk": {
"type": "score",
"instructions": "How likely is this customer to leave?",
"criteria": [
"No signal",
"Frustrated",
"Threatens to cancel or dispute"
]
}
}
}'Needs a CompanyFabric key, or add your own TypeSafe key in the BYOK vault and pay them directly at 0% fee. Cost comes back in usage.cost_usd.
One call.
Many answers.
Same key and same balance as the chat models. BYOK with your own TypeSafe key routes at 0% fee. The welcome credit covers thousands of decisions.
Send a state
A ticket, a brief, a transcript, a JSON record. Text or JSON, up to about 32k tokens. It is sent once, whatever you ask about it.
Ask typed questions
noul is a yes/no probability. choice picks one label from criteria you describe. score places on a rubric you define, from zero. Ask several in one call.
Threshold the numbers
Answers are probabilities and distributions, never prose. Act above a threshold, hand to a human below it, and treat a noul near 0.5 as unsure.
Six patterns, ready to run.
Each one is a complete request you can run above, copy as cURL, Node or Python, or download as JSON. Edit the questions to fit your data; the shape stays the same.
Put a decision
in front of the spend.
POST /v1/decisions from your code, or let your agent call the decide tool on our MCP server before every expensive step.