ICP Fit Scorer
Scores inbound leads against a plain-language ICP rubric the GTM team owns — then reads its own output to recommend tighter targeting.
Lead Triage scoring flow, left to right: an inbound CSV from any list source has its fields auto-mapped, then every lead is scored in parallel against the RevOps-owned icp-rubric.md read at runtime. A disqualifier check routes leads to a first-class DQ outcome; the rest sort by fit into Tier 1 pursue-now, Tier 2 workable, or Tier 3 marginal. Each lead is enriched with a score, confidence, rationale, and signals, then filtered by tier and exported as an enriched CSV. A second pass reads the whole scored list to tighten sourcing and the rubric, closing the loop back to the inbound list.
The problem
SDR time is the scarcest thing at the top of the funnel, but lead lists arrive undifferentiated — great-fit accounts and no-hopes worked in the order they land. The usual fixes fall short. Keyword rules are brittle: they can’t tell that “Head of People at a Series B SaaS” signals stage, budget, and authority at once. A trained model needs clean conversion history most teams don’t have — and it’s a black box the team can’t read or edit. So most lists never get triaged at all.
The decision
Score each lead with an LLM reading a plain-language ICP rubric — not rules, not a trained model. That buys two things: judgment on incomplete data, the way an experienced rep reads between the lines; and scoring logic that lives in one markdown file anyone on RevOps can edit, in version control, with no code change. The people who own the ICP own the scoring. The cost — per-lead API spend and some non-determinism — is managed by model choice: a cheap, fast model for high-volume screening, a stronger one for short lists where one misclassification is expensive.
What I built
A CSV goes in from any source — core fields auto-detected, everything else passed through as extra signal, so there’s no cleanup step. Every lead comes out with a tier (1 / 2 / 3 / DQ), a 0–100 score, a confidence flag, a one-line rationale, matched signals, disqualifiers, and a few facts Claude infers when the row is thin — industry, rough size, B2B-or-not. Two deliberate calls: DQ is a first-class tier, not a leftover bucket — knowing who not to chase protects SDR time as much as knowing who to chase. And CRM write-back is left out, because auth and field mapping are too company-specific to bake into a general tool. Knowing where a tool should stop is part of the design.
Closing the loop
A second Claude pass reads the whole scored list and recommends how to tighten the filters upstream — which segments are landing as Tier 1, which criteria drag in DQs. The sorted list isn’t the goal; a sharper top of funnel is.
# ICP rubric — edited by RevOps in git ## Tier 1 — pursue now - 50–500 employees, Series B–D - Named RevOps / Rev leader on team - Trigger in last 90d (funding, VP Sales) ## Disqualifiers # DQ is a tier - Sub-10 employees / pre-seed - No sales motion (pure PLG) - Agency or reseller, not end customer