Ideal customer profile (ICP): what it is and how to build one
An ideal customer profile (ICP) is a description of the companies most likely to buy, get value, and stay, written as concrete, checkable attributes like industry, size, tech stack, and the situation that creates the need. It is the first decision in any GTM strategy, and the one most teams leave vague.
This guide covers what ICP means in sales and marketing, how an ICP differs from a buyer persona, how to build one from the deals you actually won, a template you can copy, a worked example, and how to turn the profile into a scored account list.
Key takeaways
- An ICP describes companies. A buyer persona describes people inside them. You need both, and they answer different questions.
- Build it from closed-won and closed-lost deals. Opinions about who should buy are where vague ICPs come from.
- Write every field so a database can check it. "Fast-growing tech companies" fails that test; "software, 50 to 500 employees, hiring SDRs" passes.
- Disqualifiers matter as much as qualifiers. Remove those accounts before you score anything.
- An ICP becomes useful when it turns into a ranked account list, with buying signals deciding who gets contacted this week.
What ICP means in sales and marketing
ICP stands for ideal customer profile. In B2B it describes an account, meaning a company, and the profile is only useful if two people reading it would pick the same companies.
In sales, the ICP decides where reps spend their time. It sets which accounts get assigned, which inbound leads get a fast reply, and which deals get qualified out early. A rep with a sharp ICP spends their week on accounts that can close.
In marketing, the same profile chooses ad audiences, the account lists behind ABM, and the topics content is written about. When marketing and sales keep separate versions, marketing fills the funnel with leads sales will never call. Keep one document and let both teams edit it.
Some companies say "ideal client profile" instead, especially services firms. It means the same thing.
ICP vs buyer persona
| Aspect | Ideal customer profile | Buyer persona |
|---|---|---|
| Describes | A company | A person at that company |
| Answers | Which accounts should we go after? | Who do we talk to there, and what do we say? |
| Built from | Firmographics, technographics, trigger events, won and lost deals | Interviews, call recordings, job descriptions, reply data |
| Example field | Software company, 50 to 500 employees, uses Salesforce | VP of Sales, measured on pipeline coverage, worried about rep ramp time |
| Used for | Account lists, scoring, territory planning, ad audiences | Messaging, sequences, content, discovery questions |
Pick the accounts with the ICP first, then choose the people with the persona. Doing it the other way round gets you a list of VPs of Sales at companies that will never buy.
How to build an ICP from closed-won data
Most ICPs are written in a workshop from memory. The better source is your CRM, because it already records who bought and who walked away.
- Pull the deals. Export closed-won and closed-lost opportunities from the last 12 to 24 months. Add churned customers if you have them, since a customer who left after a year is a weak fit you would otherwise count as a win.
- Enrich every account. Fill in industry, employee count, region, funding stage, and tech stack with a data enrichment tool. CRM fields entered by reps are often blank or wrong.
- Find what was true before they bought. Look at the 90 days before each deal opened. Did they raise a round, hire a new leader, post a run of sales jobs, or switch tools? Those are your triggers.
- Compare won against lost. A trait that shows up in 80 percent of wins and 80 percent of losses tells you nothing. The useful fields are the ones where the two groups differ.
- Write the disqualifiers. List the account types that look right on paper and never close: too small to have budget, already running a competitor under contract, selling the same thing you sell.
- Turn every line into a filter. If a field cannot be checked in a database or a data provider, rewrite it until it can. Then count how many accounts pass. A few hundred is a niche; tens of thousands usually means the ICP is still too broad. The TAM calculator estimates what enriching that list costs.
No closed-won data yet? Write the ICP as a hypothesis from the problem you solve, test it with a small outbound list per segment, and rebuild it from replies and meetings after the first 90 days.
What goes into an ideal customer profile
| Category | Examples | Where the data comes from |
|---|---|---|
| Firmographics | Industry, business model, employee count, revenue band, region, funding stage, ownership | Company databases, LinkedIn, funding data |
| Technographics | CRM, data warehouse, cloud provider, the tool you replace or plug into | Tech stack tracking tools, job postings |
| Team shape | Size of the team that would use the product, whether a specific role exists | Headcount by department, title search |
| Triggers and signals | New funding, a leadership hire, hiring for a role, a tool change, a product launch | Buying signals, job posting data |
| Disqualifiers | Competitors, too small, wrong business model, existing contract, regions you cannot serve | Your CRM, exclusion lists, company descriptions |
Ideal customer profile template
Copy this table into a doc or spreadsheet and fill in the middle column. The right-hand column is the test: if you cannot name where the data comes from, the field is not finished.
| Field | Your answer | How you will check it |
|---|---|---|
| Industry and business model | Industry code, company description | |
| Company size | Employee count or revenue band | |
| Region | Headquarters or employee location | |
| Stage or ownership | Funding data, PE ownership | |
| Tech stack | Tech detection, job postings | |
| Team shape | Headcount by department, title search | |
| Trigger events | Signal sources, with how recent counts | |
| Disqualifiers | Exclusion list, CRM status, description keywords | |
| Buyer and user titles | Title search at each account | |
| Accounts that pass | A count from your data provider |
ICP example: a B2B SaaS company
A made-up company that sells contract management software to in-house legal teams. Its closed-won deals clustered at mid-size software and services companies that had just hired their first or second lawyer, and its losses were mostly very large companies already locked into an enterprise suite.
| Field | Example answer |
|---|---|
| Industry and business model | B2B software and professional services companies that sign many customer and vendor contracts |
| Company size | 150 to 2,000 employees |
| Region | United States and Canada |
| Stage or ownership | Series B and later, or PE-backed |
| Tech stack | Salesforce or HubSpot, plus an e-signature tool; no enterprise contract suite |
| Team shape | An in-house legal team of one to five people |
| Trigger events | First General Counsel hired in the last six months, a legal operations job posted, or a funding round in the last 90 days |
| Disqualifiers | Law firms, companies over 5,000 employees, current customers of the two main enterprise suites |
| Buyer and user titles | Buyer: General Counsel or Head of Legal. Users: legal counsel, sales operations |
| Accounts that pass | Around 6,000 before triggers, a few hundred in any given month once a trigger is required |
Notice the last row. The ICP alone gives a list too large to work by hand. The trigger cuts it to the accounts worth contacting this month, which is the job of signals.
From ICP to a scored account list
A written ICP does nothing until it ranks real companies. The steps below take the profile from a document to a list a rep can work.
- Pull every account that might fit from a company database using the hard filters: industry, size, region.
- Remove the disqualified ones. Disqualifiers are gates. An account that sells what you sell gets removed, not scored low, or it will creep back to the top on size alone.
- Score fit from 0 to 100 over the durable attributes: stage, team shape, stack, industry tier. Weight the fields that separated won from lost deals the most.
- Add signals for timing. Fit says whether you should ever talk to an account. A buying signal says whether to talk to them this week. Keep them as separate fields so one burst of activity does not inflate an account for months.
- Find the people. Use the buyer persona to pick titles at the top-scored accounts, then verify emails before anything is sent.
- Check the score against reality. Run your closed-won accounts through the model. If your best customers do not land in the top tier, the weights are wrong.
The GTM playbook covers what happens next: sequences, routing, and how to measure each segment.
How OneGTM uses ICP scoring in outbound
Every outbound system I build starts with the client's ICP written as code: the filters, the exclusion list, and a fit score stored next to each account. A few rules come from doing this many times.
Disqualify before you score. Industry codes often cannot tell a customer from a competitor, since both file under the same category. I match on what a company says it does in its own description, and keep that check separate from the score.
Show the gaps. When an input cannot be read, say the stage is unknown or the homepage will not load, that part of the score gets half credit and is stored on its own. A missing field stays visible instead of hiding inside a total.
Measure team shape directly. "Lean sales team" sounds like a judgment call, but headcount by department turns it into a number: sales and marketing headcount as a share of the company. I compare that number within a segment only, because services firms and software companies count their people differently.
Pair fit with a signal. High fit decides who is on the list. A signal decides who hears from us this week. For Antimetal, a fit score ranked every account by size, engineering footprint, and how much reliability matters to them, and signals decided when reps reached out.
If you want to see where your own targeting stands, the free GTM scorecard grades it along with the rest of your go-to-market setup, and the GTM glossary defines the terms used here.
Common ICP mistakes
- Describing a vibe ("innovative mid-market teams") instead of writing filters.
- Building the ICP from the logos you want rather than the customers who renewed.
- Skipping disqualifiers, then wondering why competitors and tiny companies keep showing up in the list.
- Mixing the ICP and the persona into one document, so nobody knows whether "VP of Sales" is a company filter or a contact filter.
- Writing it once. Your best customers change as the product changes, so the profile should too.
Ideal customer profile FAQ
What does ICP mean in sales?
What is the difference between an ICP and a buyer persona?
What does ICP mean in marketing?
How do you define an ICP?
What should an ideal customer profile template include?
How often should you update your ICP?
Want your ICP turned into a scored account list and live signals?
Talk to OneGTM about your ICP
Tell me what you're building. I reply the same day.
Pick a time
Nothing works? Write team@getaob.com and I'll find one.
Book a timeGrid not loading? Open the booking page
Rather do it the old way? team@getaob.com LinkedIn