EngageBizDev
← All resources

Guide · 13 min read

How to Build an ICP (with B2B SaaS, Agency and Pro-Services Examples)

Most B2B companies think they have an ICP. What they have is a market. A real Ideal Customer Profile is precise enough that a stranger could pull a clean list in an hour and you'd recognise every name as fit. This guide gives you the template we use with every [outbound lead generation client](/outbound-lead-generation-services) at EngageBizDev, plus three completed ICPs from real verticals.

Why most ICPs are wrong

'B2B SaaS, 10-200 employees, US-based' isn't an ICP. It's roughly 80,000 companies. You can't write a message that resonates with 80,000 companies — you'd have to write to the lowest common denominator, which is exactly the generic outreach buyers ignore.

A working ICP narrows the pool to a few hundred named accounts that share enough that one well-crafted message can land for most of them. That's the bar.

The four-layer ICP framework

Layer 1 — Firmographic: industry, sub-industry, revenue band, employee count, geography, business model.

Layer 2 — Persona: exact job title, reporting line, tenure, decision authority, the metric they own.

Layer 3 — Trigger: what happened in the last 90 days that makes them more likely to buy now? Funding round, new exec hire, expansion announcement, regulatory change, competitor news.

Layer 4 — Behavioural signal: what observable behaviour tells you they're in-market? Engaged with a competitor's content, downloaded a relevant report, posted about the problem on LinkedIn, hiring for adjacent roles.

Most companies do layer 1 only. The compounding wins are in layers 3 and 4.

Example 1: B2B SaaS (revenue ops platform, $30k ACV)

Firmographic: B2B SaaS companies, $5M-$50M ARR, 50-300 employees, US/UK/Canada, Series A or B.

Persona: VP RevOps, Director of Revenue Operations, Head of Sales Operations. Tenure 12-36 months. Reports to CRO or COO. Owns funnel conversion metrics.

Trigger: raised a Series A or B in the last 6 months, hired a VP Sales in the last 90 days, or posted about scaling the sales team.

Behavioural signal: posted on LinkedIn about CRM data quality, attended Pavilion or RevOps Co-op events, follows Asia Orangio or Mary Grothe.

Result: a list of ~250 named accounts, not 80,000.

Example 2: B2B agency (digital marketing agency, $60k average engagement)

Firmographic: DTC e-commerce brands, $5M-$50M revenue, US-based, Shopify Plus or BigCommerce.

Persona: Head of Marketing, VP Marketing, CMO. Tenure under 24 months (they're still building, not defending).

Trigger: raised growth-equity in the last 9 months, launched a new product line in the last 90 days, or named in retail trade press for expansion.

Behavioural signal: hiring for a paid social or lifecycle role, posting about Q4 planning, engaging with founder content from peer brands.

Result: ~180 named accounts with high signal density.

Example 3: Professional services (fractional CFO firm, $100k+ engagements)

Firmographic: VC-backed startups, Series A or B, $5M-$30M ARR, no full-time CFO, US.

Persona: Founder/CEO at companies without a CFO. COO if present.

Trigger: raised in the last 6 months, posted about FP&A pain, opened a board observer seat, board meeting in the next 60 days.

Behavioural signal: engaged with content from CFO thought leaders, posted about audit prep or 409A.

Result: ~150 named accounts, all with clear timing.

Validating the ICP

An ICP is a hypothesis until your last 10 closed-won deals validate it. Pull your CRM, look at the last 10 wins, and ask: how many fit the ICP you just wrote? If fewer than 7, your ICP is either wrong or aspirational.

If your ICP describes who you want to sell to but your wins describe who actually buys, trust the wins. Then expand the ICP deliberately, one segment at a time.

Building the list from the ICP

Tools: Apollo, Clay, LinkedIn Sales Navigator, ZoomInfo, Cognism, Bombora for intent. Combine firmographic filters with persona filters, then layer trigger data (Crunchbase funding, news feeds, hiring signals).

Or skip the tooling overhead and let us build it — prospect list building is one of the most leveraged things we do.

Common ICP mistakes

Defining ICP by who you can sell to easily rather than who you can serve well. Skipping the trigger layer entirely. Picking too many personas at once. Conflating ICP with TAM. Refusing to revisit the ICP after 90 days of campaign data.

Your ICP is a living document. Re-tune it every quarter based on what's converting and what isn't.

Frequently asked questions

What's the difference between ICP and TAM?

TAM (Total Addressable Market) is everyone you could theoretically sell to. ICP (Ideal Customer Profile) is the subset that converts best and stays longest. TAM is for board decks; ICP is for sales execution.

How narrow should an ICP be?

Narrow enough that 200-500 named accounts represent your immediate prospect universe. If your list is 5,000+ names, your ICP isn't an ICP yet — it's a market segment.

How often should I update my ICP?

Review every quarter. Make sure 70%+ of your last 10 closed-won deals match the current ICP. If they don't, the ICP needs revision.

Can I have multiple ICPs?

Yes, but treat each as a separate campaign with its own messaging, list and tracking. Most B2B companies under $20M ARR should focus on one ICP at a time.

What if I'm too early to have an ICP?

Run 90 days of structured outbound across 2-3 hypotheses. Watch which segment replies, books, and closes. That's your ICP — earned, not declared.

What tools do I need to build an ICP list?

Apollo or Cognism for firmographic + contact data, LinkedIn Sales Navigator for persona, Crunchbase for funding triggers, Bombora or G2 for intent. Or outsource the whole stack.

Stop reading. Start booking.

Want EngageBizDev to run this for you?

Book a 20-minute call with Kelly. She'll look at your current outbound and tell you honestly what she'd change.

Book a Strategy Call