An ICP fit score is a rating of how closely a lead or account matches your ideal customer profile. It answers one question: if this company wanted to buy, would they be a good customer? It can be a number (0 to 100), a grade (A to D), or a simple label like yes, no, or maybe with a confidence level.
In practice, “ICP fit” means the account has the attributes your best customers share: the right industry, size, geography, business model, and tech stack. It says nothing about whether they are buying right now. That is intent, a different signal.
This guide covers what an ICP fit score is, how it differs from intent, how to automate ICP classification with an LLM (including a prompt and JSON schema you can copy), how to QA the output, and what to do with inbound leads that fall outside your ICP.
In one sentence: ICP fit tells you whether an account is worth selling to; intent tells you whether now is the moment.
What does ICP fit mean?
ICP fit is the degree of match between a company (or person) and your ideal customer profile. If your ICP is “US and UK B2B SaaS companies with 50 to 500 employees running HubSpot,” then a 120-person SaaS company in Austin on HubSpot has high fit, and a 4-person bakery has none.
Fit is usually built from four attribute groups:
| Attribute group | Examples | Where the data comes from |
|---|---|---|
| Firmographic | Industry, employee count, revenue band, country, funding stage | Firmographic data providers, enrichment |
| Business model | B2B vs B2C, ecommerce vs services, subscription vs one-off | Company website text, enrichment |
| Technographic | CRM, ecommerce platform, marketing automation | Technographic enrichment, site scans |
| Persona (for leads) | Job title, seniority, department | Form fields, person-level enrichment |
A fit score combines these into one value. Salesforce Account Engagement calls this concept grading (a letter grade against an ideal profile), while HubSpot calls it a fit score based on property values like job title, company size, or annual revenue.
ICP fit vs. intent
Fit and intent are routinely blended into a single lead score, and that hides important information. Keep them separate.
| ICP fit | Intent | |
|---|---|---|
| Question | Should we sell to them? | Are they buying now? |
| Changes | Slowly (months, years) | Quickly (days, weeks) |
| Inputs | Firmographics, business model, tech stack, title | Website visits, pricing page views, research topics, demo requests |
| Failure mode alone | Chasing perfect-fit accounts that are not in-market | Chasing active researchers who can never buy |
The best queue is the intersection: high fit and high intent. The longer argument is in Fit Is Not Intent.
The timing matters because buyers decide early. The 6sense 2025 Buyer Experience Report, a survey of more than 4,000 buyers, found that 94% of buying groups ranked preferred vendors before first contact, and bought from that favorite 77% of the time. Gartner research shows B2B buyers spend only about 17% of their buying time meeting with potential suppliers. A fit score tells you which accounts deserve attention; intent signals tell you which ones are in that invisible research window right now.
How to calculate an ICP fit score
There are three common methods. Many teams combine them.
1. Rules-based points
Assign points per attribute and sum them. Example for a 100-point fit score:
| Attribute | Points |
|---|---|
| Industry in target list | +30 |
| Employee count 50 to 500 | +25 |
| Country in served markets | +15 |
| Uses a target CRM | +15 |
| Decision-maker title | +15 |
| Non-target industry | −30 |
Rules are transparent and easy to audit, but they break when data is missing or when the attribute that matters (like “sells physical products online”) is not a clean database field.
2. Lookalike or predictive models
Train a model on closed-won vs. closed-lost accounts. This works well once you have a few hundred outcomes, but it can be hard to explain to sales why an account scored 82.
3. LLM classification
Give a large language model your ICP definition plus enrichment data about the company, and ask it to classify fit with a reason. This is especially useful for fuzzy criteria that rules handle poorly: “is this a direct-to-consumer brand?”, “does this agency run paid ads for clients?”, “is this a marketplace or a single-brand store?”
This is why so many teams now see outputs like:
{ "icp fit": "yes", "confidence": "high", "reason": "clearly an online store selling physical products directly to consumers." }
That output is useful, but only if it was produced from real data and checked. The next section shows how to do it properly.
How to automate ICP fit classification with an LLM
Step 1: Write your ICP as explicit criteria
LLMs cannot classify against an ICP that only exists in someone’s head. Write it as must-haves, nice-to-haves, and disqualifiers:
- Must have: sells physical products online directly to consumers; own storefront (not only a marketplace seller); operates in served markets.
- Nice to have: Shopify or similar ecommerce platform; 10 to 500 employees; active paid social.
- Disqualify: B2B wholesale only; digital products only; agencies or consultancies; marketplaces.
If your ICP is still vague, you get “companies fitting undefined ICP”: inconsistent labels that change every time you rerun the prompt. Fix the definition first. The ICP guide walks through building one from closed-won data.
Step 2: Ground the model in enrichment data
The biggest mistake is asking an LLM “Is acme.com a fit?” with nothing else. The model will guess from the name, and guesses sound confident.
Instead, pass structured facts:
- Company name and domain
- Industry, employee count, country (from data enrichment)
- Homepage title, meta description, and a short extract of homepage and about-page text
- Detected tech stack
- For leads: job title and seniority
Tell the model to use only the provided data and to answer maybe with low confidence when data is missing.
Step 3: Use a sample prompt
You are a B2B lead qualification assistant.
Classify whether the company below fits our Ideal Customer Profile (ICP).
Use ONLY the data provided. Do not use outside knowledge or assumptions.
If the data is insufficient, answer "maybe" with confidence "low".
ICP definition:
- MUST: sells physical products online directly to consumers via its own storefront.
- MUST: headquartered in a served market (US, CA, UK, EU, AU).
- NICE: 10-500 employees; uses Shopify, BigCommerce, or WooCommerce.
- DISQUALIFY: wholesale/B2B only, digital-only products, agencies, marketplaces.
Company data:
{company_json}
Return JSON matching the schema exactly. Keep "reason" under 25 words and cite
the specific data field(s) you relied on in "evidence".
Step 4: Enforce a JSON output schema
Use a fixed schema so results can be written straight into CRM fields and routed automatically. Use underscores in keys (icp_fit, not "icp fit") so they map cleanly to property names.
{
"icp_fit": "yes | no | maybe",
"confidence": "high | medium | low",
"reason": "One sentence explaining the decision.",
"evidence": ["homepage_text", "employee_count"],
"disqualifier": "none | wholesale_only | digital_only | agency | marketplace | out_of_market"
}
Example output:
{
"icp_fit": "yes",
"confidence": "high",
"reason": "Homepage sells skincare products with a cart and checkout; 45 employees; US-based; Shopify detected.",
"evidence": ["homepage_text", "employee_count", "country", "tech_stack"],
"disqualifier": "none"
}
Most major LLM APIs now support schema-constrained or “structured” output modes, which reduces malformed responses. Still validate every response in code before writing it to your CRM.
Step 5: Map the output to a fit score
| icp_fit | confidence | Fit score | Suggested tier |
|---|---|---|---|
| yes | high | 90 | Tier 1 |
| yes | medium | 75 | Tier 1 or 2 |
| maybe | any | 50 | Human review |
| no | medium or low | 20 | Tier 3, nurture |
| no | high | 0 | Out of ICP |
Try Leadpipe free with 500 leads →
How to validate LLM ICP classifications
LLM classifiers are fast, but they need QA like any other model.
- Build a labeled test set. Pull 100 to 200 accounts your team has already judged (include wins, losses, and obvious non-fits). Run the classifier and compare.
- Measure precision on “yes”. Of the accounts labeled
yes, how many would your AEs accept? False positives waste sales time; this is the number to protect. - Check “no” for buried winners. Sample accounts labeled
noeach month, especially any that later converted. - Audit the evidence field. If the reason cites data that was not in the input, the model is guessing. Tighten the prompt.
- Test consistency. Run the same 50 accounts twice. Labels that flip indicate an ambiguous ICP definition or insufficient data.
- Re-run after ICP changes. When the definition changes, re-classify, and version your prompt so you know which rules produced each label.
- Keep a human override. Let reps change the label with a reason, and feed those overrides back into the test set.
Good data in is most of the battle. Gartner estimates poor data quality costs organizations at least $12.9 million a year on average. An LLM cannot fix a wrong employee count or a parked domain; it will just explain the wrong answer fluently.
In one sentence: An LLM fit classifier is only as good as the enrichment data you give it and the test set you check it against.
How to handle inbound leads outside your ICP
Every inbound team gets leads from accounts that are outside the ICP. Ignoring them wastes goodwill; routing them all to AEs wastes selling time. The Salesforce State of Sales report found the average seller spends only 40% of their time selling, so routing is where fit scores earn their keep.
Recommended routing rules:
| Situation | Route | Why |
|---|---|---|
| Out of ICP, high intent (demo request) | Self-serve path, pooled inbound rep, or short qualification call | They asked; respond, but do not tie up an AE |
| Out of ICP, low intent | Marketing nurture or no action | Low cost to keep, low value to chase |
| Out of ICP but a partner’s sweet spot | Partner or referral program | Creates value for someone who can serve them |
maybe fit |
Human review queue within 24 hours | Missing data, not a verdict |
| Adjacent segment converting well | Tag and track separately | Your ICP may need to expand |
| Competitor, student, job seeker | Exclude | See negative lead scoring |
Two principles apply everywhere. First, always reply to a human who asked for something, even if the answer is “our self-serve plan is the best fit for you.” Second, measure out-of-ICP deals that close: if a segment keeps converting, your ICP is out of date.
Where ICP fit meets visitor identification
Fit scoring usually starts at the form fill. The problem is that most website visitors never fill out a form, so most ICP-fit accounts researching you are never scored at all.
Visitor identification changes the order of operations. Leadpipe’s person-level identification matches visitors to real people through deterministic matching against its own identity graph, with typical US match rates of around 30 to 40% of traffic. For international traffic, IP-to-company identification identifies the visiting company. You can then enrich and fit-score those visitors automatically, and send only high-fit, high-intent ones to sales. Add Orbit to see person-level intent from research happening off your site.
This is how teams answer the “tool that qualifies leads against my ICP automatically” question in practice: identification to know who is there, enrichment for the facts, a fit classifier for the decision, and routing to act on it. The Leadpipe and OpenAI AI SDR tutorial shows one way to wire it together.
Tools for ICP fit scoring and qualification
The category spans several tool types. Most teams use two or three together.
| Tool category | Role in ICP fit | Examples of what to look for |
|---|---|---|
| CRM and marketing automation | Stores fit scores, runs routing | Native fit or grading scores, workflow triggers |
| Data enrichment | Supplies firmographic and technographic facts | Coverage in your markets, field freshness |
| Visitor identification | Finds ICP accounts that never fill out a form | Person-level vs company-level, match method |
| Intent data | Adds timing to fit | Person vs account level, refresh frequency |
| LLM workflow and spreadsheet tools | Runs classification prompts at scale | Structured output, batch runs, logging |
| ICP analysis tools | Finds patterns in closed-won data | CRM integration, explainability |
An “ICP identification tool” is usually a combination of the first four, not a single product.
FAQ
What is an ICP fit score?
An ICP fit score is a number, grade, or label that rates how closely a lead or account matches your ideal customer profile, based on firmographics, business model, tech stack, and job title. It measures whether a company would be a good customer, not whether they are buying right now.
What does ICP fit mean?
ICP fit means a company shares the defining attributes of your best customers, such as industry, size, geography, and business model. “High ICP fit” means the account looks like the customers who get the most value from your product and stay the longest.
What does “icp fit: yes, confidence: high” mean?
It is typical output from an LLM that classifies leads against an ICP. icp_fit is the verdict (yes, no, or maybe), confidence is how certain the model is given its input data, and reason explains the decision. Treat it as reliable only if the model was grounded in real enrichment data and validated against a labeled test set.
Is there a tool that qualifies leads against my ICP automatically?
Yes, usually as a workflow rather than a single tool: visitor identification or forms capture the lead, enrichment adds company facts, a rules engine or LLM classifies ICP fit, and your CRM routes the result. HubSpot fit scores and Salesforce Account Engagement grading handle rules-based versions natively.
What is the best way to handle inbound leads from accounts outside your ICP?
Route by intent. High-intent out-of-ICP leads get a fast, low-cost response such as a self-serve path or pooled inbound rep. Low-intent ones go to nurture. Partner-fit leads go to referral programs. Track which out-of-ICP segments close, because a segment that keeps converting means your ICP needs updating.
How accurate is LLM ICP classification?
It depends on your ICP definition and your input data. Clear criteria and grounded enrichment data produce consistent labels; vague criteria and domain-only input produce confident guesses. Measure precision on a labeled test set of your own accounts before trusting it in production.
How is ICP fit different from lead scoring?
ICP fit is one component of lead scoring. A full lead score combines fit (who they are) with engagement and intent (what they are doing), minus negative signals like bounces or competitor domains. Keeping fit as its own score makes routing decisions clearer.
Related Articles
- What Is an ICP? Meaning in Sales, Examples and Template
- Fit Is Not Intent
- Negative Lead Scoring: Examples and Best Practices
- Lead Scoring with Visit Behavior and Intent Data
- Firmographic Data Explained
- Auto-Route Visitors to Sales Reps
Find the ICP-fit buyers already on your website. Start free with 500 identified leads, no credit card.




