How to build an ICP your data can actually match

Your ideal customer profile says 'mid-market SaaS'—but your database has no field for that. The result? Your lead generation stalls before it starts, and your sales team wastes hours on contacts who were never a real fit. An ICP is only as good as the filters it can produce.
The Matchability Gap
Most ICPs are written for humans, not for databases. They describe a company in broad, qualitative terms—'innovative,' 'fast-growing,' 'mid-market'—that feel meaningful in a strategy doc but translate to zero filterable criteria. When you try to run a search or build a prospect list, you're stuck guessing which checkboxes approximate your intent.
The fix is to treat your ICP as a query specification. Every criterion should map to a field that exists in your CRM or your prospecting tool. If it doesn't, either rephrase it or accept that you'll need to approximate. The goal isn't a perfect description of your dream customer; it's a workable definition that your data can actually match against.
- Audit your ICP against the fields available in your CRM and data tools.
- For each criterion, ask: 'What filter would I use to find this?'
- Flag any criterion that requires human judgment—those are your approximation candidates.
Firmographics vs Intent Criteria
Firmographic criteria are the easiest to match: industry, employee count, revenue range, location, technology stack. These are structured fields in most databases, so you can filter precisely. Start here to build your base list. Intent criteria—like 'actively evaluating a new CRM' or 'frustrated with current vendor'—are harder to match because they're behavioral and often require inferred signals.
The key is to separate what you can filter from what you can only infer. Use firmographics to narrow the universe, then layer on intent signals from sources like job postings, tech installs, or content engagement. Don't try to encode 'pain' as a filter—instead, find proxy signals that correlate with that pain and accept that you're approximating.
- List all firmographic filters first—these become your base query.
- Identify 2–3 intent signals you can actually track (e.g., hiring for sales roles, recent funding).
- Use intent to prioritize, not to exclude—until you've tested its reliability.

Writing Matchable Filters
Turn each ICP statement into a Boolean or field-based filter. For example, instead of 'mid-market SaaS,' write: 'Industry = Software AND Employee Count between 100 and 500 AND Business Model = SaaS.' For 'companies using HubSpot,' use a technographic filter. For 'recently funded,' use a funding date filter. Write these out explicitly and test them in your tool.
Be wary of over-specifying. Each additional filter shrinks your list—sometimes to zero. Start with the must-haves (3–5 filters max), then add nice-to-haves as optional scoring criteria. Also, define ranges instead of exact values: 'Revenue $10M–$50M' is more matchable than 'revenue around $20M.'
- Convert each qualitative descriptor into a field, operator, and value.
- Limit must-have filters to 3–5 to avoid empty result sets.
- Use ranges and lists instead of exact matches for flexibility.
- Document your filter logic so your team can replicate it.

Testing Your ICP Against Real Data
Before you commit to an ICP, run it against your actual database or a sample from your prospecting tool. Count how many contacts or companies match. If you get zero, your filters are too narrow. If you get thousands, they're too broad. Aim for a list size that your sales team can realistically work in a quarter—often a few hundred to a few thousand.
Then, manually review a sample of 20–30 matches. Do they look like your best customers? If not, adjust your filters. This feedback loop is critical: it turns your ICP from a theoretical document into a practical targeting tool. Repeat this test whenever you change your criteria.
- Run your filter set and check the total match count.
- Manually review a random sample for quality and relevance.
- Adjust filters based on false positives and false negatives.
- Re-test quarterly as your data and market evolve.
When to Widen, Not Narrow
It's tempting to keep adding filters to get the 'perfect' list, but that often leads to paralysis. If your match rate is too low, widen your criteria. For example, if 'industry = SaaS' yields too few results, expand to 'industry = software' or include adjacent tech sectors. If 'employee count 100–500' is too restrictive, try 50–1000.
Widening is also smart when you're testing new markets. Start broad, then narrow based on response rates. Remember, lead generation is iterative: you can always refine your filters after you see which segments convert. The goal is to keep your pipeline moving, not to achieve filter perfection.
- If match count is under 100, relax one or two filters.
- Expand ranges incrementally rather than jumping to all-inclusive.
- Use response data to guide narrowing—don't guess.
- Keep a 'broad' and 'narrow' version of your ICP for different stages.
Accepting Approximation
No data source is perfect. You'll always have missing fields, outdated info, and ambiguous categories. Accept that your ICP will be an approximation—and that's okay. The key is to be transparent about which criteria are precise and which are inferred. For example, you might filter by 'technology = HubSpot' precisely, but infer 'marketing sophistication' from job titles and content engagement.
Document your approximations so your team knows the limitations. When you reach out, use personalization to verify fit—a quick question in your outreach can confirm whether a prospect truly matches your ICP. Over time, this feedback improves both your data and your criteria.
- Label each criterion as 'exact' or 'approximate' in your ICP doc.
- Use outreach to validate approximated criteria.
- Update your ICP as you learn from sales conversations.
- Don't let perfect data stall your prospecting—start with what you have.
Building a matchable ICP isn't about lowering your standards—it's about making your standards actionable. Start by translating your criteria into filters, test them against real data, and adjust as you learn. Your pipeline will thank you.
Useful links
FAQ
How do I know if my ICP is too narrow?
If your filtered list yields fewer than 100 contacts or companies, it's likely too narrow. Try relaxing one filter at a time—especially ranges—until you reach a workable list size. Also, check if your must-have criteria are truly non-negotiable or just preferences.
Can I use intent data to build an ICP from scratch?
Intent data is best used to prioritize, not to define your ICP. Start with firmographics to build your base list, then layer intent signals to rank prospects. Relying solely on intent data often leads to inconsistent results because intent signals are noisy and hard to verify.
What if my data doesn't have a field for a key criterion?
You have two options: approximate it with a proxy signal or accept that you can't filter on it. For example, if you can't filter by 'pain point,' look for related signals like job postings or tech stack gaps. Document the approximation and validate it through outreach.
See the data behind this
- B2B data coverage by industry and country
- Verified contacts in United States
- Verified contacts in Germany
- Verified contacts in Poland