Lesson 2 of 8 · 48 min
ICP definition and scoring services that don't rot
Build ICP as a versioned scoring service: structured features, bands under capacity constraints, reason codes, human overrides with TTL, and anti-rot calibration — not a static slide.
Static ICP slide → living scoring service
Key idea
ICP definition — include, exclude, evidence
1ICP CARD (versioned document + machine fields)23 icp_version: 2026-07-14 motion: outbound_mm_fintech_ops5 includes:6 - industry in {fintech, banking_software}7 - employees 50..5008 - geo in {US, CA, UK}9 - tech_any {salesforce, netsuite, snowflake}10 excludes:11 - industry in {crypto_exchange, payday_lending} # risk/brand12 - employees < 20 # support cost13 - existing customer or opp open # suppression14 positive_signals: hiring_ops, tech_job_posts, funding_24m15 evidence: 12 closed-won, 4 churn notes, win-theme tags1617 Rule: no score deploy without icp_version bump + changelog.- 01Firmographic — industry, size, geo, ownership, funding stage.
- 02Technographic — stack fit / displacement triggers (CRM, data warehouse, SEP).
- 03Motion fit — can they buy how we sell (PLG seat vs procurement)?
- 04Intent / timing — jobs, news, product usage (if PLG), web intent.
- 05Relationship — champion present, competitor install, prior conversations.
- 06Suppression — customer, competitor, do-not-contact, litigation, student.
Feature design for scores
1SCORING FEATURES (example)23 feature type refresh cost4 ----------------------- ---------- ---------- --------5 industry_naics categorical 90d low6 employee_band ordinal 30d low7 geo_country categorical 90d low8 has_salesforce boolean 60d med9 hiring_ops_roles_30d boolean 7d med10 funding_last_24m boolean 30d low11 intent_topic_fit 0..1 7d high12 open_opp_or_customer boolean 1d low (CRM)1314 score = weighted sum (or rules tree) → band15 bands: A (auto-sequence), B (review), C (nurture/ads), Z (suppress)Common mistake
“We’ll use an LLM to score every account from the website — no features needed.”
Thresholds, bands, and capacity
- 01A-band — auto-enroll to standard sequence; highest fit.
- 02B-band — human research or personalized POD; high value, incomplete data.
- 03C-band — holdout, ads, or product-led only; not worth cold domain risk.
- 04Z-band — hard suppress with reason; never “just one more experiment.”
- 05Override — AE/SDR can promote with logged reason + expiry (not forever).
Key idea
Rot, decay, and recalibration
1ANTI-ROT CHECKLIST23 [ ] icp_version + owner + review date on the score record4 [ ] feature freshness timestamps; block A-band if critical feature stale5 [ ] intent signals decay (e.g. half-life 14–30 days)6 [ ] monthly band→outcome report: meetings, opps, ACV, cycle time7 [ ] shadow mode for new weights before cutover8 [ ] suppressions synced from CRM nightly (customers, opps, unsub)9 [ ] sample 20 A-band accounts for human QA weekly1011 Red flags: A-band win rate ≈ C-band; override rate >15%;12 >20% of A-band missing industry or employee_band.Clay as scoring workspace
Common mistake
“The Clay table is the score — we’ll just filter rows where formula > 80.”
Interview ways — scoring design
- 01Q: How do you stop SDRs from working bad accounts? Suppress Z-band in the sequence engine, not only in a Notion doc. Route B-band to review queues. Publish band→outcome dashboards so culture follows the data. Policy without enforcement is a slide.
- 02Q: Rules vs ML for ICP? Rules first for auditability and cold-start. ML when you have enough labeled outcomes and stable features; keep a rules fallback. Hybrid: ML ranks inside A/B-eligible population defined by hard rules.
- 03Q: Account score vs contact score? Account fit gates budget; contact persona + seniority gates messaging and routing. Multi-thread only inside eligible accounts. Never sequence a perfect persona at a Z-band account.
Suppression as part of scoring (not a side spreadsheet)
- 01Hard suppress — never enroll (unsub, competitor, legal, customer if policy says so).
- 02Soft suppress — cooldown TTL after breakup sequence or “not now.”
- 03Channel suppress — email dead but LinkedIn allowed (explicit policy).
- 04Persona suppress — wrong seniority; keep account eligible for other contacts.
articleClay blog — finding and scoring ICP accountsClaydocsClearbit / Breeze style firmographic enrichment conceptsClearbitdocsHubSpot target account scoring patternsHubSpotdocsSalesforce Einstein lead scoring (conceptual companion)SalesforceICP is a product decision encoded as data. If only founders can explain who you sell to, your scoring service has a single point of failure.
Checkpoint
Your A-band includes any company with “AI” in the About page via an LLM scrape. Win rate is flat vs random. What broke?
Checkpoint
Sales wants permanent override to force any account into A-band. Your design?
Checkpoint
Intent “hiring ops managers” is still scoring full points 5 months later. Fix?
Checkpoint
Interviewer asks where scores should live long-term. Best answer?
Checkpoint
You have 800 closed-won with tags and 40k cold accounts. First scoring approach?
Can you design an ICP scoring service with features, bands, overrides, and anti-rot controls?
Takeaways
- ICP is versioned policy; scoring is a service with features, bands, and reason codes.
- Capacity sets thresholds; overrides need TTL and measurement.
- Decay + calibration fight rot; Clay builds, CRM/warehouse remembers.
- Next: enrichment waterfalls — coverage, cost, freshness (gos-enrichment).
Next lesson: compose enrichment waterfalls that hit coverage targets without melting the budget.
Sources
Free to read · better with Enzo
Learn it with Enzo
Save your progress, answer the checkpoints, and let Enzo quiz you on what you just read.