Back in March I published the first version of this system in I Built AI Lead Scoring for My SaaS. It worked, but it had a flaw I only admitted later: it scored leads mostly on what they typed into a form. Seven months of model upgrades and cheaper enrichment later, the scoring is the least interesting part. The stack around it is what changed.

This is the updated version, end to end: capture, enrich, score, route. Same principle as March, no lead waits for a human to decide if it matters, but almost every component has been swapped.

What Changed Since March

LayerMarch 2026 setupOctober 2026 setup
CaptureStandard web form, 8 fieldsShort form, 3 fields, enrichment does the rest
EnrichmentOne provider, firmographic onlyWaterfall enrichment across 2 to 3 providers
ScoringFixed rules in the CRMLLM pass for context, rules for the final number
RoutingEmail alert to salesSlack alert with score, reasons, and a drafted first reply
Follow-upManualsub-50 leads go to an automated nurture sequence

Two of those changes matter more than the rest. Waterfall enrichment means if provider one finds nothing on a lead, provider two tries, then three. Match rates climb because no single database knows everyone. And the LLM pass reads the messy context rules cannot: a Head of Growth at a 40 person startup and a VP at a 40 person startup are the same row in a spreadsheet and completely different leads.

The Pipeline, Step by Step

The four step pipeline: form, enrichment, score, route
The four step pipeline: form, enrichment, score, route
  • 1) Capture. The form asks for name, work email, and one qualifying question. Everything else is friction that kills conversion. Enrichment fills the gaps after the submit, not before.
  • 2) Enrich. The email domain triggers the waterfall: company size, industry, funding, tech stack, and the person's title and seniority. Personal email domains skip enrichment and score on behavior only.
  • 3) Score. Two passes. The model reads the enriched profile plus any free text and writes a short reasoning note. Rules then convert signals to points, so the number stays explainable. A score nobody can explain is a score sales will ignore.
  • 4) Route. Score decides the destination, instantly, following the same logic as my AI speed-to-lead workflow: hot leads should never wait for business hours.

The Scoring Model

One hundred points, three buckets. Steal this as a starting point and tune the weights to your own closed-won data after a month.

BucketMax pointsExample signals
Fit40Company size in range +15, target industry +10, right country +5, uses a complementary tool +10
Intent35Pricing page visit +15, comparison page visit +10, return visit within 7 days +10
Behavior25Booked a demo +15, opened 3 or more emails +5, product signup +5 (stacks with demo)

The buckets force honesty. A lead with perfect fit and zero intent is a research project, not a sales call. A lead with weak fit and blazing intent still gets a fast reply, just not the senior rep.

The Prompt Behind the LLM Pass

This is the exact shape of the prompt the model gets for every lead. The output is capped on purpose: a score suggestion and two sentences, nothing it can ramble about.

You are scoring an inbound B2B lead. Given the enriched profile and recent behavior below, return JSON only: a fit score from 0 to 40, an intent score from 0 to 35, and one sentence explaining the strongest signal. Do not invent data that is not present. If a field is missing, score without it and say so in the sentence.

Rules then add the behavior points and apply the caps. If the model times out or returns junk, the workflow falls back to rules only. Scoring degrades, the pipeline never stops.

Routing Thresholds

ScoreWhat happensOwner
80 to 100Instant Slack alert, drafted first reply, rep works it within the hourSales
50 to 79Enters the 5 touch nurture sequence, rescored on any new activityMarketing automation
Under 50Newsletter and long term nurture only, rescored monthlyNobody, on purpose

That last row is not an insult to the lead. It is the whole point of the system: low scores get patience, not headcount.

What It Costs

Prices move, so treat these as the tiers I budget around, not quotes.

ToolRoleBudget line
CRM (HubSpot or similar)System of record, routing rulesYou already pay for this
Enrichment waterfall (Clay or similar)Firmographic and contact dataFrom about $150/mo
Automation (n8n or Make)The pipeline glue$9 to $24/mo self hosted or cloud starter
LLM callsThe context pass, per leadPennies per lead at this volume

What I Dropped From the March Version

  • Company revenue as a hard filter. Enrichment revenue data is wrong often enough that it was quietly killing good leads. It is a signal now, not a gate.
  • Negative scoring for free email domains. Founders at tiny companies use Gmail. Behavior tells the truth faster.
  • The weekly manual review meeting. The reasoning note on every score replaced it. If a score looks wrong, the note says why, and the weights get tuned in the workflow, not in a meeting.

The Short Version

Score in layers: enrich first, let the model read context, let rules own the number, and route by threshold with zero human delay. If you built the March version, the two upgrades worth your afternoon are the enrichment waterfall and the reasoning note. Everything else is polish.

Tomorrow on The Daily API: the MCP workflows I actually run every week, now that the comeback week is rolling.