AGT-201 — ICP scorer
Layer 2 · ICP & lead management · Event-triggered on new lead + re-scores on enrichment update
v1.0 built
Layer 2
Schema v17
Role & constraints
6-dimension 0–100 score with T1/T2/T3 tier output. Every account in the system carries an ICP score. Score drives routing priority, outreach depth, and ABM eligibility. Not a binary in/out gate — the score expresses degree of fit.
Segment is a routing input, not a scoring input. The ICP score measures fit independent of deal size. Segment is determined by employee count and used downstream by AGT-202 Lead Router. Conflating segment fit with ICP fit produces systematically wrong scoring — this is locked.
Auto-recalculates when enrichment updates scored fields. AGT-204 Lead Enrichment writes to Accounts. When a scored field changes (tech stack, growth signal, intent score), ICP scorer fires automatically. Re-route check: only if first_contact_timestamp = NULL — active leads are not re-routed mid-sequence.
Vertical taxonomy locked to TerritoryDefinitions 8-vertical standard. FinTech, HealthTech, SaaS, RetailTech, HR Tech, EdTech, Cybersecurity, Logistics. Consistent taxonomy across ICP scoring, territory routing, and TAM/SAM sizing prevents mapping errors.
Segment bands (v17 update): SMB = 5–200 employees · Mid-Market = 201–2,000 employees · Enterprise = 2,001+ employees. These replaced the original bands to align with territory routing logic. Segment is derived from Accounts.employee_count at routing time — it is not an ICP scoring dimension.
Six scoring dimensions — 100 points total
20
Dimension 1 — Firmographic fit
Employee count band match, revenue estimate alignment, HQ geography match to served markets. Employee count feeds segment classification but is also an ICP fit signal (some products fit SMB better, others Enterprise). Highest weight category — a bad firmographic fit rarely recovers.
20
Dimension 2 — Industry/vertical match
Account's primary industry matched against 8-vertical taxonomy. Exact match scores max. Adjacent vertical scores partial. Horizontal/generic scores near zero. Informed by AGT-204 enrichment. Vertical is the single most predictive fit dimension for product-market alignment.
15
Dimension 3 — Revenue/budget signal
Revenue estimate, funding stage, recent funding round size, and recency. Series B+ = strong budget signal. Bootstrapped or pre-revenue = low. Recently funded accounts (within 6 months) receive a recency bonus — post-funding evaluation windows are real. From AGT-204 firmographic enrichment.
15
Dimension 4 — Tech stack compatibility
Technographic enrichment from AGT-204. Cloud provider match, CRM stack, complementary tools present or absent. Compatible stack = higher probability of integration success. Competitor detected in stack = lower score (displacement play, not greenfield). Feeds AGT-403 competitor pre-population at deal open.
15
Dimension 5 — Growth signals
Headcount growth trend (LinkedIn employee count change), hiring velocity (open roles in relevant departments), recent news triggers (expansion, new leadership, product launch). Growing accounts have higher adoption potential and larger eventual ACV. From AGT-204 enrichment + news signals.
15
Dimension 6 — Engagement intent
Intent signals from Bombora/G2 or similar (intent_score, intent_topics from EnrichmentLog). Web visit signals if available. LinkedIn engagement. Accounts actively researching relevant topics score higher — indicates active buying cycle. Decays if no new signal within 72 hours (same decay formula as AGT-206).
Three output tiers
T1 — High fit
75–100
ABM eligibility unlocked. Priority routing via AGT-202. 2hr SLA for rep contact. Deeper enrichment passes by AGT-204 and AGT-301. Tracked in TargetAccountList for ABM program consideration.
T2 — Moderate fit
50–74
Standard routing. 24hr SLA. Standard outreach sequences. Eligible for re-tier to T1 if enrichment updates increase score above 75. No ABM eligibility unless SLM nominates (SMB exception).
T3 — Low fit
0–49
Routes to Marketing Nurture (AGT-304) on exhaustion of standard sequence. No active SDR/AE sequence. Can re-enter sales motion if score improves above 50 on enrichment rescore.
Schema — Accounts extension
| Table | Status | Key fields added |
| Accounts |
extended |
icp_score (0-100), icp_tier (T1/T2/T3), icp_scored_at, dimension_1_firmographic (0-20), dimension_2_vertical (0-20), dimension_3_revenue (0-15), dimension_4_techstack (0-15), dimension_5_growth (0-15), dimension_6_intent (0-15), icp_score_previous, icp_tier_previous, rescore_trigger (event that caused last rescore) |
Dependencies
AccountsreadsAll firmographic and enriched fields. Source data for all 6 dimensions.
EnrichmentLog (AGT-204)readsIntent signals, technographic data, growth indicators. Triggers rescore when scored fields update.
TerritoryDefinitions (AGT-106)reads8-vertical taxonomy for Dimension 2 matching. Must stay in sync with territory carve vertical list.
Accounts (icp_score/tier fields)writesScore, tier, dimension scores, prior values, rescore trigger.
AGT-202 Lead RouterdownstreamICP tier determines routing SLA (T1=2hr, T2=24hr) and ABM check.
AGT-203 ABM Target SelectiondownstreamT1 accounts are ABM-eligible. Score informs initial 1:1 vs 1:few placement.
AGT-206 Account Prioritizationdownstreamicp_score feeds fit dimension (40% weight) in priority composite score.
v38.5 update — gtm_motion_class for developer-led / consumption-pricing platforms
Why. The 6-dimension ICP scoring above is designed to predict fit (T1/T2/T3 tier). For developer-led / consumption-pricing platforms with multi-tier product mix, the load-bearing axis that predicts which sales motion to use is not firmographic — it's level of control / technical sophistication. Customers cluster into three sub-businesses sharing infrastructure: fully-managed (ML-naive teams wanting quick results — competes against hyperscaler bundle), off-the-shelf (differentiated workflows needing more control — mid-market AI-native), and low-level-control (custom alignment / RL / bespoke research — frontier AI-native developer tools). Each cluster has different competitor sets, different price points, and different sales-motion shape. Rep cadence, technical-win criteria, and BYOC migration path differ materially across the three.
v38.5 extends AGT-201 with a parallel classification output (not a score): gtm_motion_class. Independent of T1/T2/T3 fit-tier. T1 fit + low_level_control motion uses the AE pool with technical-depth-first cadence (paired with AGT-602 early); T1 fit + fully_managed motion uses a different pool with shorter sales cycle, less technical involvement.
| gtm_motion_class | Customer profile | Sales motion shape | Routing |
fully_managed | Team wants quick results with proven methods. Provides data, hyperparams, model selection — platform handles the rest. ML-team-naive or ML-team-thin. | Short cycle. Demo-led. Standard SDR + AE handoff. Hyperscaler-bundle is the primary competitor. | Standard segment-band routing. Cadence: AGT-302 default templates. |
off_the_shelf | Building differentiated workflows. Wants cookbook-style paths (SFT / DPO / GRPO / RL). Has ML capacity but doesn't want custom training loop. | Mid-length cycle. Workshop-driven discovery. AE + Solutions Engineer. Vertical-AI-native or domain-AI-native competitors. | PLG-warm-friendly. AE pool with workflow-pattern-recognition skills. Cadence: technical content + workshop invites. |
low_level_control | Custom loop behavior in Python. forward / forward_backward / optim_step exposure. Bespoke research, custom alignment, novel reward shaping. Frontier AI-native developer tools. | Long cycle, technical-depth-first qualification. AE leads with engineering team alongside. Self-hosted vLLM + frontier-model-provider direct are competitors. | PLG-warm-priority. AE pool with deep technical context, paired with AGT-602 from week 1. Cadence: research-paper-citation + co-engineering. |
Classification rules
Classification is rule-based, not LLM-derived. Reads from AGT-208 production_signal dimension + EnrichmentLog tech-stack data + ConvIntelligence call-pattern data. Threshold-based assignment:
| Class | Required signals (any one strong, OR multiple weak) |
low_level_control | Custom training-loop / RL / fine-tuning research signal in conv intel; OR > 8 distinct deployment-tier-inference events trailing 30d; OR ML / Research engineering team identified in EnrichmentLog; OR explicit BYOC discussion in ConvIntelligence. |
off_the_shelf | Workflow-pattern signal (SFT / DPO / fine-tuning) in conv intel; OR product-deployment evidence (dedicated tier present, not BYOC) without custom-loop signals; OR mid-market AI-native firmographic match. |
fully_managed | No production-signal evidence; OR shared-tier-only consumption; OR demo-driven sales process indicators; default fallback when no other class matches. |
Classification reconfiguration. Customer can move along the control axis (e.g., from off_the_shelf to low_level_control as their team grows research capacity). Reclassification triggered by AGT-208 production_signal threshold breach, ConvIntelligence pattern shift, or RevOps manual override. AGT-503 v38.5 picks up reclassification events as a candidate signal for parallel tier_migration_axis = control plays (see AGT-503 v38.5 update).
Schema extension: Accounts gains gtm_motion_class ENUM(fully_managed, off_the_shelf, low_level_control, unclassified) and gtm_motion_class_last_evaluated TIMESTAMPTZ. AGT-202 v38.5 reads this field for motion-aware routing alongside the existing v38 motion=plg-warm flag from AGT-208.
Optionality: classification is opt-in per company config. Traditional B2B SaaS without consumption-pricing tiered product mix uses AGT-201's existing 6-dimension scoring without the classification. Turning it on requires (a) AGT-208 deployed (since AGT-201 reads its signals) and (b) per-class AE-pool definition in AGT-106 TerritoryDefinitions.
System prompt skeleton
You are AGT-201, the ICP Scorer for a B2B SaaS GTM OS.
ROLE: Score accounts 0–100 across 6 dimensions. Assign T1/T2/T3 tier.
Segment is NOT a scoring input — it is determined by employee count and
used by routing agents. Never include segment as a scoring factor.
VERTICAL TAXONOMY (Dimension 2 — exact match only):
FinTech, HealthTech, SaaS, RetailTech, HR Tech, EdTech,
Cybersecurity, Logistics. Adjacent vertical = 50% score. No match = 5%.
SCORE 6 DIMENSIONS (100 pts total):
D1 Firmographic fit (20 pts): employee band, revenue estimate, geo match.
D2 Industry/vertical match (20 pts): 8-vertical taxonomy match quality.
D3 Revenue/budget signal (15 pts): funding stage, amount, recency.
D4 Tech stack compatibility (15 pts): cloud provider, CRM, integration fit.
Competitor in stack → reduce score, flag for AGT-403.
D5 Growth signals (15 pts): headcount growth, hiring velocity, news triggers.
D6 Engagement intent (15 pts): intent_score, intent_topics, decay applied.
Intent signal >72hrs old → apply e^(-hours/72) decay.
TIER ASSIGNMENT:
75-100: T1 — ABM eligible, 2hr SLA routing
50-74: T2 — Standard routing, 24hr SLA
0-49: T3 — Marketing nurture on sequence exhaustion
TRIGGERS:
New account ingested → score immediately.
AGT-204 updates any scored field → rescore. Set rescore_trigger = field_name.
Re-route check: only if first_contact_timestamp IS NULL.
WRITE to Accounts: icp_score, icp_tier, dimension scores, icp_scored_at,
icp_score_previous (prior value), rescore_trigger.