Glossary · Targeting and signals

What is an ideal customer profile (ICP)?

The short answer

An ideal customer profile (ICP) is a description of the companies most likely to buy what you sell, succeed with it and stay: their industry, size, location, technology and activity. Sales and marketing teams write it as search filters to build target account lists, and use it to decide which companies to skip.

Updated
Read
4 min
Written by
Antoine Blitz
On this page8 sections
  1. Real data
  2. What does an ideal customer profile include?
  3. ICP vs buyer persona: what is the difference?
  4. How do you build an ideal customer profile?
  5. Why does one criterion change the size of your market?
  6. How do you find the companies that match your ICP?
  7. Related terms
  8. Questions people ask

Real data

An ICP written as filters, and what one change does to the count

Software companies with 51 to 200 employees, headquartered in the United States: one ICP written as three filters of a company search and counted, then counted again with one criterion changed at a time.

Returned by the BlitzAPI API on

POST/v2/search/companies

The ICP as filters

Industry
Software Development
Size band
51-200
Headquarters country
US
Companies that match
16,142

Each value comes from the accepted list of its filter: "Software Development", not "SaaS"; "51-200", not "50-200"; "US", not "USA".

POST/v2/search/companies

Change one criterion, count again (companies)

The ICP above
16,142
201–500 employees instead of 51–200
4,107
Headquartered in the United Kingdom instead
1,810
IT Services and IT Consulting added as a second industry
36,641

One request per line, read from total_results. Values inside one filter combine with OR, so a second industry widens the list; separate filters combine with AND, so each one narrows it.

What does an ideal customer profile include?

An ideal customer profile (ICP) describes a company, not a person. It usually holds four kinds of criteria:

  • Firmographic criteria: industry, size, headquarters, age and ownership. They define the market, and every company has them. See firmographic data.
  • Technology criteria: the tools a company runs or is adopting, such as a CRM, a data warehouse or a support desk.
  • Activity criteria: what the company is doing now, such as hiring salespeople, opening an office or raising money.
  • Exclusions: the companies to leave out even when they match, such as consultancies, existing customers or markets you cannot serve.

Most ICPs also name the roles inside the account that buy and use the product, which is where the profile meets the buying committee.

The test of a good criterion is simple: can someone check it in data, without asking you? “Fast-growing” fails that test. “Posted five or more engineering roles in the last 30 days” passes it.

ICP vs buyer persona: what is the difference?

An ICP and a buyer persona are often confused because both describe “who we sell to”. They answer different questions.

Ideal customer profile Buyer persona
Describes A company A person inside that company
Built from Your best customers: won deals, retention, revenue Interviews, calls, win and loss notes
Holds Industry, size, location, tools, activity, exclusions Role, goals, pains, objections, how they buy
Used to Choose which accounts to target Choose what to say, and to whom

You need the ICP first. A persona tells you how to talk to a RevOps manager; the ICP tells you which companies are worth calling at all.

Which is which?

Six lines from the same go-to-market plan. Does each one belong in the ICP or in a buyer persona?

  1. Software companies with 51–200 employees, headquartered in the US

  2. A RevOps manager who owns the CRM and reports to the CRO

  3. Runs a CRM and posted sales roles in the last 30 days

  4. Worries about duplicate records before every quarterly review

  5. Not a consultancy, not an existing customer

  6. Prefers a short demo to a long free trial

Show the answers
  1. Software companies with 51–200 employees, headquartered in the USICPIndustry, size and location describe a company, and each one becomes a filter you can run.
  2. A RevOps manager who owns the CRM and reports to the CROBuyer personaA role, its responsibilities and its manager describe a person inside the account.
  3. Runs a CRM and posted sales roles in the last 30 daysICPTechnology and hiring are traits of the company, read from data about the account.
  4. Worries about duplicate records before every quarterly reviewBuyer personaA pain and the moment it hurts belong to a person; no company filter can find them.
  5. Not a consultancy, not an existing customerICPExclusions are part of the ICP: they remove companies before anyone writes to them.
  6. Prefers a short demo to a long free trialBuyer personaA buying preference is personal: two people in the same company can differ.

How do you build an ideal customer profile?

To build an ideal customer profile, start from evidence, not from ambition: study your best customers, find the traits they share, write each trait as a filter value, then count and read the market those filters return before you build anything on it.

  1. LearnList your best customersThe ones that bought fastest, use the product most and renewed
  2. CompareFind what they shareEnrich them with the same fields; keep the traits that repeat
  3. TranslateWrite traits as filters"SaaS" becomes "Software Development"; "about 100 people" becomes "51-200"
  4. SizeCount the marketRun the filters and read the total
  5. CheckRead a sampleLabels are self-chosen: add exclusions until a sample looks right
An ideal customer profile is built backward from the customers you already win, and checked forward on the list it produces.

Why does one criterion change the size of your market?

One criterion can change the size of your market because every filter cuts it, and some cut much deeper than others. The counts above show it on one ICP.

Moving the size band from 51–200 to 201–500 employees leaves 4,107 companies instead of 16,142. Keeping everything but the country, and choosing the United Kingdom, leaves 1,810. Adding a second industry does the opposite and lifts the count to 36,641, because two values inside the same filter are alternatives, not conditions.

That is why an ICP is worth testing before it is agreed on. A market of 1,810 companies supports a different plan than one of 36,641: different headcount, different channels, different message. Change one criterion at a time, read the count, and keep the version whose size matches what your team can work. The full method, from criteria to a total addressable market, is in the TAM guide.

How do you find the companies that match your ICP?

You find the companies that match your ICP with a company search that takes the same criteria as filters. Company Search in BlitzAPI takes industry, size band, headquarters, founding year, funding and keywords, and returns the matching companies with their domain and company page, ready for the next step. The build a TAM use case chains it with hiring data, for criteria a company page cannot show.

The ICP also has a people side: the job titles to look for inside each account. That is what BlitzAPI’s Waterfall ICP refers to, and it is the next step once the list of companies is right.

Sources and method

Written by
Antoine Blitz, Founder, BlitzAPI
Published
API calls run on

The calls ran on October 28, 2026 through the BlitzAPI MCP server, which calls the same endpoints; they are shown here as the equivalent REST requests.

Industry and size band are the labels each company publishes on its own page: a filter keeps the companies that chose that label, whatever they actually do.

The counts are companies, read from total_results on that day; they move as companies edit their pages.

Questions people ask

What does an ICP look like?

A short list of criteria that someone outside your team could apply without asking you. For example: software companies with 51 to 200 employees, headquartered in the US, running a CRM, hiring salespeople, with a sales leader in place. A useful ICP also names its exclusions, such as consultancies, existing customers or regions you do not serve.

What is ICP in marketing?

The same ideal customer profile, used to decide where marketing effort goes: which accounts to target with ads and content, which inbound leads to pass to sales, and what to say to them. Marketing teams usually pair it with buyer personas, which describe the people inside those accounts.

What is ICP in business?

In B2B sales and marketing, ICP stands for ideal customer profile: the kind of company that gets the most value from a product and is worth the effort of selling to. The acronym has other meanings in other fields, so it helps to write the full term at least once.

How do you enrich B2B account data for an ICP definition?

Start from your customer list. Match each company to a record by its domain or company page, then add the fields your criteria need: industry, size band, headquarters, email provider, hiring activity. The traits your strongest customers share are the first draft of your ICP; run them as filters across the market to see how many companies match.

With BlitzAPI

Put it to work

For builders

The calls behind the real data on this page, as REST requests. Send them with your API key, from any language or workflow tool.

The ICP as a company search

curl -X POST https://api.blitz-api.ai/v2/search/companies \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "company": {
      "industry": {"include": ["Software Development"]},
      "employee_range": ["51-200"],
      "hq": {"country_code": ["US"]}
    },
    "max_results": 1
  }'

API reference

The same ICP with a second industry (the other variants change one value the same way)

curl -X POST https://api.blitz-api.ai/v2/search/companies \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "company": {
      "industry": {"include": ["Software Development", "IT Services and IT Consulting"]},
      "employee_range": ["51-200"],
      "hq": {"country_code": ["US"]}
    },
    "max_results": 1
  }'

API reference

Data shouldn't be
the problem

Grab. Connect. Build.