noulSort leads: in your ICP or not
Qualify leadsOur own run, published on Medium
712
LinkedIn leads scored
7,120
Typed scores (10 criteria + 1 safety check)
8.3s
Total time, 140ms median per lead
$0.045
Total cost, 1.07M tokens
How a single lead flows through it
1
Lead + draft
Profile text and one or more message drafts, no formatting needed.
2
JEV scores it
Typed questions only, choice, score or noul, never free text.
3
Verdict + probability
A calibrated confidence comes back with every answer.
4 · Confidence gate
Interactive demo
Runs entirely in your browser against 96 generated demo leads (illustrated avatars, fictional names, no real people), to illustrate the same mechanism as the 712-lead run above.
0
Leads read
0
Scores typed
0
Elapsed
0
Cumulative cost
Leads
Profile in progress
Waiting for scoring to start…
Hook
CTA / format
Buying signal
Best message selected
Part 1
The problem: you ask ChatGPT to "rate this message out of 10." It says 7, then 8 next time for the same message, with three paragraphs of justification nobody reads. Three seconds per call, a cent a lead, and no guarantee that 7 means anything consistent.
A generative LLM is built for open-ended text. Asking it to sort is like paying a novelist to check boxes. JEV (TypeSafe AI, released September 15, 2026) is what's called a "System One model": it reads a block of text and answers only typed questions, choice (one option out of up to 255), score (a rating on 2 to 10 levels), or noul (a yes/no probability between 0 and 1). It returns the answer AND the full probability distribution behind it. Since it can only ever output A, B or C, there is nothing to hallucinate.
The last row matters: JEV is less accurate than a big model, 24x cheaper and 10x faster. It's a sorting model, not an oracle. Use it with a confidence threshold and a human-review queue underneath, never blind.
Your numbers
Move the sliders. The model costs use the token volume of our run (about 1,500 tokens per lead for 11 questions) and published input prices. Nothing leaves your browser.
Estimates for the scoring step only. JEV is less accurate than a flagship model, so keep a confidence threshold and a human-review queue under it.
Part 2
Each one is a bounded choice JEV can make in a fraction of a second. Start with the three marked Start here: they touch money, and you can check them against reality (did the lead reply, yes or no).
noulSort leads: in your ICP or not
Qualify leadsscore 0–2Qualify ICP by tier (out of scope, partial, strong)
Qualify leadschoice A–EStart herePick the best DM out of 5 drafts
Pick and check messagesnoulStart hereDetect a lead/message mismatch (invented fact, wrong role)
Pick and check messageschoiceStart hereClassify a reply: interested, not interested, question, neutral
Handle repliesscore 0–2Prioritise the send queue: in-market, warming, passive
Qualify leadsnoulSpot a genuine comment vs. bot/spam on a lead-magnet post
Content and commentschoiceRoute a comment to the right resource when you have several
Content and commentschoiceTag the hook archetype of your last 100 posts
Content and commentschoicePick which hook to publish out of 10 variants
Content and commentschoiceSort inbound email: sales, support, partnership, spam
Handle replieschoiceDetect the objection in a reply: price, timing, trust, no need
Handle repliesnoulQA an AI-generated post against your style guide
Pick and check messagesscore 0–3Rate a draft’s quality before it goes out
Pick and check messagesnoulDetect that two leads are the same company
Qualify leadschoiceRoute to the right model tier: small, medium, large
AI operationsnoulDecide if a lead is ready for a call, hand off to a human
Qualify leadsnoulFlag a job post as an ICP-matching hiring signal worth acting on
Qualify leadschoiceClassify a stakeholder as decision-maker, influencer or gatekeeper
Qualify leadsscore 0–2Score churn risk from a support ticket’s tone before it escalates
Handle repliesPart 3
Every DM gets the same 15 typed questions in a single call. Here is what comes back for one sample message, and what each answer is used for.
choiceLabel for stats: which hook gets replies for you
choiceSame
choiceSame
choice"ask_for_time" as the first message = penalty
choice"none" = the message uses no real signal, rewrite it
score 0–2Filter: don’t send below 1.5
score 0–2Send priority: in-market leads go out first
score 0–3Below 2: regenerate the message
score 0–3Below 1.5: the offer doesn’t fit this lead
score 0–3The main score
noulSafety check: above 0.35, an unsupported claim is in the message
score 0–2Weight outreach toward decision-makers, not just title keywords
choiceSend now, snooze a week, or drop, based on the lead’s current signal
noulFlag when LinkedIn is the wrong channel for this lead, route to email instead
score 0–2Surface time-sensitive signals (hiring now, just funded) to the top of the queue
Part 4 · Free kit
The paste-and-run material behind the 712-lead run: six parts, against docs.typesafe.ai. You only pay TypeSafe AI for your own API usage (console.typesafe.ai, early access).
endpoint.mdThe endpointWhere to send requests, the model name and the headers. Works from n8n, Make, Node or curl.
criteria-grid.jsonThe 15-criteria gridEvery question with its type (choice, score, yes/no), its exact instructions and what each answer means.
selection-rule.mdThe selection ruleThe confidence-gated rule that decides SELECTED = YES, and what goes to human review instead.
scoring-request.jsonFull scoring requestOne lead plus one DM in, every answer with its probability out. Paste and run.
best-of-5.jsonBest-of-5 pickerOne request that ranks five drafts for the same lead, or says none of them should be sent.
backtest-jev.mjsBacktest scriptNode 18+, zero dependencies. Checks on your own past DMs whether the score predicts replies, before you trust it.
The actual gain
This isn't a novelty. Wired into your CRM, it changes three things that directly affect revenue: how fast a hot lead gets touched, how many go stale in a queue, and whether the message that reaches them actually fits them.
Minutes, not hours
Time to first touch on a hot lead, once scoring gates the send queue instead of a human sorting it by hand
Zero cold leads worked first
In-market leads are pulled to the front automatically, the ones most likely to convert this week, not whichever came in most recently
No off-target message sent
The mismatch check catches a message that doesn’t fit its lead before it goes out, the kind of miss that quietly kills reply rate
Questions
JEV is a decision-only model from TypeSafe AI, released in September 2026. It reads text and answers typed questions only: a choice, a score or a yes/no probability, with a calibrated confidence. It never generates free text.
It is less accurate than a flagship model on its published benchmark (67.8% vs 73.1%), but about 24 times cheaper per input token and around 10 times faster, and its answers are always in the format you asked for. For high-volume sorting with a confidence threshold and a human-review queue, that trade is usually worth it.
Yes. You get one email with the full reference: endpoint, 15-criteria grid, selection rule, full request, best-of-5 picker and backtest script. You pay TypeSafe AI directly for your own API usage.
Yes. It is a plain HTTP request, so it works from an n8n HTTP Request node, a Make HTTP module, or any code. If you want it wired into your CRM with thresholds and a review queue, PURIST builds that for you.
No, and that is the point. Write drafts with any model you like; JEV decides which lead deserves a message, which draft to send, and flags a message that does not fit its lead.
Run the backtest script on your own past messages with a replied yes/no column. It tells you whether the score separates replies from silence before you let it decide anything.