How do I define an ICP for B2B (firmographics + triggers)?
Turn your ICP into a queryable filter, not a one-pager: firmographics, revenue, and buying triggers you can apply in your CRM today. Framework inside.

Nicolas Heath
RevOS™ Director, Swivel

A B2B Ideal Customer Profile is a queryable filter, not a mission statement: a short list of firmographic rules (industry, size, revenue, geography) plus the behavioral triggers that separate a company that fits on paper from one that's actually ready to buy. If a criterion can't be applied directly in your CRM, ad platform, or enrichment tool, it isn't part of the ICP — it's a wish.
Most ICP write-ups stop at firmographics and call it done. That's the version that reads well in a slide and does nothing in a CRM. Here's how to build one that actually filters.
1. Start with firmographics — but write rules, not adjectives
Firmographics are the floor, not the finish line: industry, employee count, revenue, geography, business model. The test for each one is whether it's checkable without a judgment call.
Here's Swivel's own filter, as an example of what "checkable" looks like in practice:
Primarily B2B revenue (B2B/B2C mixed models qualify if B2B is the primary model; B2C-only does not)
Not government, education, or non-profit; full-service marketing/creative/PR/media-buying agencies excluded; martech and ad-tech SaaS companies qualify
More than 10 employees — or, when headcount isn't published, 20+ inferred from multiple departments, office locations, or a team page
$3-5M+ in annual revenue
US-based and US-serving (US address, phone number, or .com domain with a US location, unless the site states otherwise)
Every line above is something you could paste into a filter field today. That's the bar.
2. Add the behavioral triggers firmographics can't see
Two companies can pass every firmographic rule and be nowhere near equally ready to buy. Triggers are the layer that tells you when, not just who: a funding round, a new VP of Sales or RevOps hire, a job posting for a role your product supports, a tech-stack change, a recent expansion. Firmographics describe the shape of a company. Triggers tell you whether this is the moment.
Weight triggers deliberately rather than as a bonus checkbox — a firmographically-perfect account with zero trigger signal is often a worse near-term target than a good-fit account showing three.
3. Write the whole thing as one filterable sentence
If you can't compress your ICP into a single operational sentence, it's still a mood board. Something like: US-based B2B [industry] companies, [employee range], $[X]–[Y]M revenue, showing [trigger type] in the last [timeframe], where the buyer is a [title]. Every clause should map to a field you can actually query — in your CRM, your enrichment vendor, or your ad platform's targeting. Drop any clause you can't operationalize; it's not helping you, it's just padding the description.
4. Turn the filter into a score, then a tier
A binary ICP (fits / doesn't fit) is a blunt instrument once you have more qualifying accounts than you can treat identically. The next step is scoring each account against the filter — firmographic fit plus trigger signal — and collapsing the scores into tiers so effort scales with likelihood to convert. We've written up how we do this at scale, including tiering roughly 17,000 companies into a five-tier model, in a separate breakdown.
5. Revisit it on a cadence, not once
An ICP built from last year's closed-won data quietly goes stale as your product, market, and best customers change. Treat it as a versioned model: review it on a regular cadence, and be willing to tighten or loosen a clause when the accounts converting today don't match the filter you wrote a year ago.
The bottom line
An ICP is only doing its job if someone outside the room who wrote it could apply every clause without asking a follow-up question. Firmographics set the shape; triggers set the timing; writing both as one filterable sentence is what makes the whole thing usable instead of aspirational.
Want your ICP built as a real, working filter?
Turning firmographics and buying triggers into a filter your team can actually run — and scoring and tiering the accounts that pass it — is exactly the kind of system work Swivel does. Book a short call and we'll walk through what that would look like for your market.
Frequently asked questions
What's the difference between an ICP and a buyer persona?
An ICP describes the company — the account-level fit. A buyer persona describes the person inside that account — their role, priorities, and objections. You need the ICP to know which companies to target, and personas to know how to talk to the people inside them.
What should a B2B ICP include besides company size and industry?
Firmographics (industry, size, revenue, geography) set the floor, but a usable ICP also includes behavioral triggers — funding events, hiring patterns, tech-stack changes — that indicate timing, not just fit. A profile with firmographics alone tells you who could buy, not who's close to buying.
How is an ICP different from a TAM?
A TAM is every company that could plausibly buy — the full universe. An ICP is the filter that says which of those companies are actually worth prioritizing right now. In practice, you build the ICP first, then apply it to score and tier your TAM.
How often should a B2B ICP be updated?
Treat it as a living, versioned model rather than a one-time exercise. Revisit it on a regular cadence and adjust when the accounts actually converting no longer match the filter as written — product changes, new markets, and shifting buyer behavior all move the target.
How do you turn an ICP into an account score?
Score each account against the firmographic filter plus any trigger signal you can detect, weighting deliberately so a big company in the wrong segment doesn't outscore a smaller, better-fit one. Collapse the scores into a small number of tiers so effort — 1:1, 1:few, or 1:many — scales with likelihood to convert.
