A lead pipeline is not one judgment. It is a sequence of bounded ones: does this account fit, who should own it, is the signal real, and what should a rep say next. The useful pattern is to make each question typed, put the thresholds in code, and keep enrichment and outreach downstream of the decision rather than inside it.
The score is a weighted composite, not a verdict
The composite scoring pattern is the right starting point. It asks four Score questions in one parallel request, each with five levels, then normalizes each answer by dividing by len(criteria) - 1 before weighting. The example weights are explicit policy: 40% Python, 10% leadership, 40% design and 10% generalist for a senior IC, versus 15/40/20/25 for an engineering manager. Nothing about that arithmetic belongs to the model.
That last point matters for sales. A fit score is only as good as the dimensions you chose. If you score company size, tech stack, buying signal and timing as four separate questions, you can inspect which dimension moved a lead and change its weight when the segment changes. A single "is this a good lead" question hides the policy inside the prompt and makes the result hard to defend. The scoring-without-measuring problem is exactly this: a number that looks precise but has no stated meaning.
Route on confidence, not only on fit
Routing is a second decision, and it has a different cost of error. The confidence-gated routing pattern separates the action from the certainty: any intent below 0.6 confidence goes to a support agent before the action is considered, while a balance check is safe at 0.6 and a transfer needs 0.85 or more. The thresholds are set per action, not once for the whole pipeline.
jev-leads shows the plumbing. Leads from forms, WhatsApp, Telegram or custom webhooks are written to local SQLite in WAL mode before qualification, so a slow model or CRM cannot drop a lead, then Jev 1.13 via OpenRouter qualifies the stored record and Airtable receives the result. The repository calls itself production-ready, but the README excerpt does not show the actual qualification questions or routing rules, and its 100% passing-test badge is self-reported. Treat the buffer as the reusable part and write your own questions.
The same split appears in the confidence gates in production argument: the confidence gate decides when to act, and the human review path catches everything below it. Confidence is not permission. A high-confidence fit score can still be wrong, so irreversible actions such as exporting a list or assigning an owner need hard limits in code alongside the model.
Enrichment needs a rejection option
Enrichment is where teams often let a model spend money on the wrong records. The Clay JEV people ranker is a useful counterexample because it filters before enrichment. Clay's deterministic filters retrieve titles such as founder, but also catch founding investors, founding employees and Founder's Office roles. Jev then makes the semantic call with a Choice classification and a Noul probability, and Python applies the thresholds.
The measured run is concrete: 577 candidates scored in 20.1 seconds for an estimated $0.0206 of Jev input, with 472 qualified and 105 rejected, an 81.8% yield. The run stopped at 472 of a 500-person target after a Clay continuation request returned HTTP 504, although scoring finished for all 577. The 0.90 and 0.80 thresholds are operating policy, not accuracy guarantees; the README says the 0.90 figure is not proof of 90% precision and that production use needs a human-labeled evaluation set.
That is the right shape. The model decides "operating founder or not" from a closed list, and the expensive enrichment step only sees the survivors. If you skip the rejection option, every ambiguous title becomes a paid lookup.
Call signals are a separate state
A sales call is not a lead record. It is a stream of utterances, and the decisions are local: is this a buying signal, what stage is the call at, what objection just appeared, what move should the rep make. Jev Sales Copilot asks about 37 atomic questions per utterance in one request: Choice questions for signals and stage, a Score for closing probability, and confidence-gated extras. A 15-move playbook supplies the coaching text, and Jev picks the move while code shows the phrasing.
The generative part is deliberately small. Claude Haiku 4.5 may rewrite the chosen line, but Jev verifies the sentence and code drops it if it invents a fact. The three hand-written replay calls end near 90% on the good transcript, near 6% on the bad one, and dip to 16% before recovering to about 80% on the mixed one. Those are the project's own replay figures, not a benchmark. It also carries no licence, needs Python 3.13+, and its live microphone mode is Chrome-only with no speaker diarization.
Cheap scoring changes coverage, not truth
The 700-leads demo reports scoring 700 high-intent leads and drafting outreach in 40 seconds for $0.09. It is a vendor self-report with no independent verification, so the number is useful as a cost ceiling, not as evidence of accuracy. Competitor Hunter collects 80 days of competitor posts and has Jev rank each one, with Claude Code tuning the questions on a pilot batch and no benchmark published. The Reddit content opportunity finder scores comments from 0 to 1 for whether a brand could write something useful, uses 0.8 as the default opportunity threshold, and explicitly recommends labeling about 100 comments and choosing the threshold from precision and recall instead.
Cheap scoring is what makes full coverage possible: you can judge every lead instead of a sample. It does not make the labels correct. The use-case map is candid that its industry sections are example decisions, not shipped products or benchmarks.
What to log and what to distrust
Log the state, the question set, the answer distribution, the confidence, the model version and the threshold that was applied. That is what lets you replay a routing change later, and it is the same discipline the use-case map recommends when adapting an example to your own workflow.
Distrust three things. First, a vendor case study without a methodology appendix. Second, a model card that declares accuracy and calibration as front matter but publishes no measured result; the WorkMagic churn distiller is exactly that, an Apache-2.0 Qwen3-8B LoRA trained without human labels, useful as a pattern but not as a quality claim. Third, a confident score with no rejection path.
The pipeline that survives contact with a sales team is unglamorous: score a few dimensions, normalize and weight in code, gate the action on confidence, reject before enrichment, and keep the conversation model separate from the record model. Use the use-case map for ideas, but measure the thresholds on your own leads.