Most B2B SaaS revenue teams have an ICP document. It lives in a Notion page, gets updated once a year during planning season, and lists firmographic boxes: company size 50–500 employees, industry vertical, tech stack markers. The document is accurate in a static sense. The problem is that buying intent is not static, and a firmographic snapshot tells you almost nothing about when an account is actually in motion.
The shift from ICP-as-document to ICP-as-signal-model is the most underrated operational improvement available to most outbound teams. This piece walks through how to build a signal stack that scores accounts on a rolling cadence — not just who fits your profile, but who is behaviorally showing up right now.
Why the Static ICP Breaks Sequencing
When your ICP definition only filters on firmographics, you end up enrolling accounts that technically qualify but have no active buying motion. Your sequence cadence runs its full course — six steps across email, LinkedIn task, and call touches — and your reply rate on the final tally hovers around 1.8%. That's not a messaging problem. You can rewrite subject lines indefinitely and not move the needle if the underlying account pool isn't in a buying window.
The deeper issue is timing correlation. Outbound reply rate is partly a function of relevance, but it's heavily a function of whether the prospect is thinking about the category at all. First-party intent signals — pricing page visits, docs searches for integration keywords, feature comparison page views — are far stronger leading indicators of an active evaluation than any firmographic filter you can apply.
We're not saying firmographic filters are wrong. They're a necessary prerequisite. But treating them as sufficient is where most ICP definitions fail as operational tools.
The Three Signal Tiers
A functional signal stack layers three types of data, with different freshness windows and reliability levels for each.
Tier 1: First-Party Intent
This is data you own: website visits, in-app behavior, CRM activity, form fills, email opens. First-party intent is the highest-fidelity signal you have — it's real behavior, real accounts, no sampling or panel inference. The catch is that it only covers accounts already aware of you. For top-of-funnel account selection, first-party intent expands your ICP but doesn't define it.
In practice, first-party intent feeds your suppression logic (don't contact existing trials or active deals) and surfaces warm re-engagement windows for churned accounts showing renewed interest.
Tier 2: Third-Party Intent
Third-party intent platforms — the three most commonly evaluated are 6sense, Demandbase, and Bombora — aggregate content consumption signals across B2B publisher networks to surface accounts showing elevated research activity around keyword clusters aligned to your category. These platforms use panel-based inference and statistical modeling, which means the signal is probabilistic, not deterministic.
The signal-to-meeting conversion on raw third-party intent is often disappointing when used in isolation. An account showing "intent" on a Bombora cluster for "sales engagement" might be a student doing research, an analyst writing a report, or a competitor doing competitive intelligence. The value of third-party intent is in narrowing an ICP-filtered universe to a higher-probability active cohort — not in replacing ICP qualification.
Tier 3: Trigger and Event Signals
These are discrete events that indicate business change: new funding rounds, executive hiring (especially Sales, RevOps, or Marketing leadership), technology stack additions detected via job description language, product launches that suggest scaling pressure. Clay enrichment workflows are particularly well-suited to assembling these signals at scale using waterfall logic — running multiple data enrichment providers in sequence and taking the first successful match.
Trigger signals are high precision but require operationalization. A new VP of Sales hired at an ICP-fit account is a strong signal. But it takes someone (or an agent) to detect it, enrich the record, confirm the fit, and route it into the right outreach workflow before the window closes.
Building the Scoring Model
A signal stack without a scoring model is just a pile of data. The objective is to produce an account score that reflects current buying probability and drives which accounts enter your active sequence cadence this week.
A practical starting model uses a weighted combination across signal tiers, refreshed weekly:
- ICP firmographic fit (binary gate, not a score): does the account meet minimum criteria? If not, it doesn't enter scoring.
- Third-party intent score from your chosen platform (normalized 0–100, weight ~30% of composite)
- Trigger events present in the last 45 days (binary flags, additive weight: +15 for new sales hire, +10 for funding event, +12 for relevant technology stack addition)
- First-party engagement within last 90 days (weight ~40% when present, defaults to 0 for unknown accounts)
This is not a regression model. It's a simple additive score with explicit weights you can tune. The goal is directional ranking, not actuarial precision.
A Scenario: DevTools SaaS, 60-Person Company
Consider a 60-person PLG SaaS in developer tooling — call it a continuous integration platform selling to engineering teams at mid-market companies. Their ICP in 2024 was "growth-stage tech companies with 50–500 engineers, raised at least one institutional round." That document was accurate. Their reply rate on cold outreach was 2.3%.
After rebuilding their ICP signal stack with a tier-2 third-party intent layer from Bombora targeting clusters around "CI/CD pipeline," "DevOps automation," and "deployment frequency," and adding Clay waterfall enrichment to flag accounts that had posted VP Engineering or Platform Lead roles in the prior 30 days, their active account pool dropped from ~4,000 accounts to ~280 per rolling 30-day window. Reply rate on that narrowed cohort: 6.1%. The sequence cadence itself didn't change. The targeting did.
Pipeline attribution in the following quarter showed that 68% of new SQLs had at least one tier-2 or tier-3 signal match in the 45 days before first contact. That's not causation — the signal doesn't create intent, it detects it — but it validates the model's directional accuracy.
The Maintenance Problem Nobody Talks About
Signal stacks decay. Technology stack markers become stale. Bombora's intent cluster taxonomy doesn't perfectly match your category's language. Third-party platforms recalibrate their models. And your product evolves — the signals that predicted buyers 12 months ago may not predict them now if your positioning shifted.
Building the stack is a one-time project. Maintaining the scoring model is an ongoing RevOps function. In practice, this means quarterly review of score-to-meeting correlation by signal tier, and recalibration of weights when you see one tier consistently producing false positives or over-suppressing real opportunities.
The teams that get sustained value from signal stacks treat them as living instrumentation, not infrastructure you build and forget. The teams that get disappointed after the first quarter treated it as a one-time setup task.
Compliance and Suppression Are Not Afterthoughts
Any system that scores and enrolls accounts at volume has to account for suppression list integrity. Accounts that have previously unsubscribed, domains on your hard-bounce list, contacts covered under CASL opt-out requirements if you're reaching into Canadian markets, and contacts who have invoked GDPR unsubscribe rights across your sequences — all of these need to be excluded before an account enters active outreach, regardless of its intent signal score.
Signal scoring is a prioritization tool. CAN-SPAM and GDPR compliance are non-negotiable constraints on who you can contact. They need to be applied in sequence: score first, then filter for legal exclusions before enrollment. A high-scoring account that's on your suppression list is not an opportunity — it's a legal risk.
Getting this plumbing right in your CRM field mapping — whether you're on HubSpot or Salesforce — is the unglamorous work that makes the signal stack actually operational rather than theoretically elegant.