Scoring · Score
Score Inbound Leads with Jev
A Jev Score example for lead quality. Levels describe situations, not adjectives. Do not turn the fractional score into a fake dollar value.
- Published
- Sep 20, 2026
- Updated
- Sep 20, 2026
- Last verified
- Sep 20, 2026
Quick answer
Rate inbound leads on a situational rubric, then threshold the Score in your CRM code.
Problem
Inbound form spam and serious buyers hit the same Salesforce queue. SDRs want a rank, not a paragraph of analysis.
Why Jev fits this task
Lead quality is ordered. Official Score guidance: describe situations the model can match, keep one dimension per Score, and combine extra dimensions in code.
Input state
Send only the fields the questions name. Official docs warn that extra unrelated state costs accuracy.
{
"form": {
"name": "Priya Shah",
"company": "Northline Logistics",
"note": "We run a 40-person ops team and want to replace our homegrown router this quarter. Can we book a technical demo the week of Oct 6?"
}
}Question
How sales-ready is this inbound note?
Question type: Score.
Jev schema
{
"model": "jev-latest",
"state": {
"form": {
"name": "Priya Shah",
"company": "Northline Logistics",
"note": "We run a 40-person ops team and want to replace our homegrown router this quarter. Can we book a technical demo the week of Oct 6?"
}
},
"questions": {
"sales_ready": {
"type": "score",
"instructions": "How sales-ready is `form.note`, given `form.company`?",
"criteria": [
"No company, no problem, or a generic 'info please' blast",
"Named company and a real problem, but no timeline or owner",
"Named company, a concrete problem, and a timeframe or meeting ask"
]
}
}
}Python example
from typesafe_sdk import Score, TypeSafeClient
state = {
"form": {
"name": "Priya Shah",
"company": "Northline Logistics",
"note": "We run a 40-person ops team and want to replace our homegrown router this quarter. Can we book a technical demo the week of Oct 6?",
},
}
with TypeSafeClient() as client:
response = client.system_one(
state=state,
questions={
"sales_ready": Score(
instructions="How sales-ready is `form.note`, given `form.company`?",
criteria=[
"No company, no problem, or a generic 'info please' blast",
"Named company and a real problem, but no timeline or owner",
"Named company, a concrete problem, and a timeframe or meeting ask",
],
),
},
)
print(response.answers["sales_ready"].score)
print(response.model)TypeScript example
import { score, TypeSafeClient } from "@typesafe-ai/sdk";
const client = new TypeSafeClient();
const response = await client.systemOne({
state: {
"form": {
"name": "Priya Shah",
"company": "Northline Logistics",
"note": "We run a 40-person ops team and want to replace our homegrown router this quarter. Can we book a technical demo the week of Oct 6?"
}
},
questions: {
sales_ready: score("How sales-ready is `form.note`, given `form.company`?", [
"No company, no problem, or a generic 'info please' blast",
"Named company and a real problem, but no timeline or owner",
"Named company, a concrete problem, and a timeframe or meeting ask"
]),
},
});
console.log(response.answers.sales_ready.score);
console.log(response.model);JavaScript example
import { score, TypeSafeClient } from "@typesafe-ai/sdk";
const client = new TypeSafeClient();
const response = await client.systemOne({
state: {
"form": {
"name": "Priya Shah",
"company": "Northline Logistics",
"note": "We run a 40-person ops team and want to replace our homegrown router this quarter. Can we book a technical demo the week of Oct 6?"
}
},
questions: {
sales_ready: score("How sales-ready is `form.note`, given `form.company`?", [
"No company, no problem, or a generic 'info please' blast",
"Named company and a real problem, but no timeline or owner",
"Named company, a concrete problem, and a timeframe or meeting ask"
]),
},
});
console.log(response.answers.sales_ready.score);
console.log(response.model);cURL example
curl -s https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d @- <<'EOF'
{
"model": "jev-latest",
"state": {
"form": {
"name": "Priya Shah",
"company": "Northline Logistics",
"note": "We run a 40-person ops team and want to replace our homegrown router this quarter. Can we book a technical demo the week of Oct 6?"
}
},
"questions": {
"sales_ready": {
"type": "score",
"instructions": "How sales-ready is `form.note`, given `form.company`?",
"criteria": [
"No company, no problem, or a generic 'info please' blast",
"Named company and a real problem, but no timeline or owner",
"Named company, a concrete problem, and a timeframe or meeting ask"
]
}
}
}
EOFExpected output
{
"model": "jev-1.13.0",
"answers": {
"sales_ready": {
"type": "score",
"score": 1.85,
"legend": {
"0": "No company, no problem, or a generic 'info please' blast",
"1": "Named company and a real problem, but no timeline or owner",
"2": "Named company, a concrete problem, and a timeframe or meeting ask"
},
"probabilities": {
"0": 0,
"1": 0.15,
"2": 0.85
},
"confidence": 0.78
}
},
"usage": {
"input_tokens": 240,
"output_tokens": 22
}
}Confidence handling
A middling score with low confidence is 'not enough text', not 'medium lead'. Route low-confidence rows to SDR review instead of auto-prioritizing.
Production considerations
If you also care about fit (industry) and urgency, split those into extra Scores or Nouls and weight them yourself. Official composite-scoring pattern: weights live in code so you can change them without rewriting the prompt.
Marketing inbound, partner forms, and newsletter sponsor requests.
When to use Jev
You can write three or more situational levels your sales team agrees on.
When not to use Jev
You need a calibrated dollar forecast or a count of employees from the text.
Official jaggedness notes: do not interpolate an exact magnitude between Score levels. A 1.85 is not '$185k ACV'. Company size and budget math stay in code or a CRM field.
Common mistakes
- Levels like 'low / medium / high' with no situations.
- Cramming ICP fit and urgency into one rubric.
- Using a Noul of 0.5 as 'medium quality'.
FAQ
Why not a Choice of hot / warm / cold?
Those labels are ordered. Score returns a position that can sit between levels. Use Choice only if the three buckets are truly unordered workflows.
Can I use ten numeric stars?
The API allows up to 10 levels. Empty numeric labels give the model nothing to match. Describe each star.
Sources
- Primitives (Questions)TypeSafe · accessed 2026-09-20 · documentation
- Jev 1.13 jaggednessTypeSafe · 2026-09-17 · accessed 2026-09-20 · documentation
- ConfidenceTypeSafe · accessed 2026-09-20 · documentation