Lead scoring

ICP scoring with AI: rank every account

ICP scoring that explains itself: enrich every account, have AI score each one from 0 to 100 with a reason, then sort the list and sync it to your CRM.

Photo of Utku Zihnioglu

By

ยท CEO & co-founder

Updated Oct 16, 2026

ยท 13 min read

Prices restated per rung, scorer inputs described accurately, sample row fixed, FAQs retitled

Free plan: 200 credits a month, 3 integrations, no card

Guide cover: Every account ranked on one ICP sentence, beside the HubSpot, Salesforce, and Stripe logos

In short

An ICP score rates how closely an account fits the customers you already win: fit, not interest.

Derive the criteria from closed-won, churned, and no-decision accounts, then write them as one plain sentence.

The ICP scorer returns a band (strong 70+, possible 40 to 69, poor under 40), a 0 to 100 score, and the facts behind it.

An account with too little data comes back unscored, not low: fill the domain and re-run before you cut it.

ICP scoring rates every account on how closely it matches the customers you already win, so your reps call the best fits first. Most guides build it as a points table: twenty points for headcount in range, fifteen for funding stage, ten for the right CRM in the stack, threshold at 70. It takes an afternoon and it beats working a TAM list alphabetically. Then a rep opens the result, finds an account at 71 sitting above an account at 68, and has no way to tell which of the two is worth the morning.

This guide builds the version that answers that. Derive the criteria from accounts you already closed, enrich the whole list from data sources and from your own billing and product systems, then have AI score every account against the same description with a written reason attached. Sort by the score, write each score with its reason back to the CRM, and put the top band into a sequence.

To score your own accounts as you read, bring them into a free workspace first.

ICP score meaning: fit, not interest

An ICP score rates how closely an account fits the customers you already win. It measures fit, not interest.

Say a company has never opened one of your emails. It can still score 88. The inbound lead who booked a demo yesterday can score 30, and both numbers are right.

Oneprofile's ICP scorer returns three things for each account:

  • A band. Strong at 70 or above, possible from 40 to 69, poor under 40.

  • A score from 0 to 100, calibrated to the band.

  • The two or three facts that drove it, each naming the field it came from.

Interest is the other half of prioritising, and how lead scoring models combine fit and intent is a subject of its own. This guide stays on fit.

Define your ICP scoring criteria from closed-won accounts

Criteria should come from outcomes you already know rather than from the personas doc. Pull every closed-won account from the last 12 to 18 months. Twenty accounts is enough to see a pattern. Fifty is better.

For each one, record:

  • Company domain. The identifier every later step matches on.

  • What they pay, and since when. Contract value or MRR plus start date. If the CRM does not hold it, your billing tool does, and it connects as a source rather than an export.

  • How fast they closed. Cycle length separates accounts that fit from accounts you dragged over the line.

  • Whether they stuck. A renewal or a seat expansion is the strongest fit evidence you own, and the field most ICP work leaves out because it arrives a year after the deal.

  • Who signed. Title and team. This is usually where a second segment shows up.

Then run the same pull on churned accounts and on deals that died at "no decision". If wins and losses look identical on headcount and industry, those were never really your criteria, whatever the scorecard template says.

Write what you find as a sentence, not a spreadsheet. Something like: "Seed to Series A B2B SaaS, 20 to 150 employees, sells to sales or marketing teams, already runs a CRM and a billing tool." Every clause traces back to a field you can enrich on a company you have never sold to, which is the test that matters. Contract value and renewals told you who belongs in the sentence; they cannot be in it, because a prospect has neither.

If you have no account list to score yet, building a B2B lead list from a CRM export is the step before this one.

Where a points-based account scoring model runs out

Weighted scorecards are not useless. A scorecard in a Google Sheet is usually right about the obvious accounts, which is most of them. An account scoring model built from weights hurts in three specific places.

  • The weights are guesses wearing a number. Nobody derived "funding stage = 15 points" from anything. It felt like about half of headcount, so it got half.

  • A missing field scores like a bad field. An account with no employee count on record loses the same twenty points as one with the wrong employee count, and 400-account lists always have holes.

  • The output cannot be argued with. A rep who thinks account 71 is wrong has nothing to push against. Ideal customer profile scoring only changes behaviour when the reason travels with the number.

There is a fourth thing, and it is the one that matters most. A ranking only means something if every account was judged by the same standard. Fixed weights are how a scorecard tries to get there, and the weights are exactly the part nobody trusts.

What to enrich before ICP scoring: firmographics and your own revenue data

A score is only as good as what it reads. Bring your account list in to enrich first: connect your CRM as a source or import a CSV, then click Filter, pick the company domain column in One row per, select all the rows, and click Delete duplicates, so a company that appears as three deals is one account before anything gets scored.

Enrich every account with the data the score needs before you run it, from data sources and from the systems you already run.

Source

What it adds

Why it matters for fit

Waterfall of data sources

Industry, headcount, location, founded year

The baseline fit check every model starts from

Technographics

Tools detected on the domain

Integration fit and switching friction

Billing

Plan, MRR, renewal date

Turns "resembles a customer" into "pays like one"

Support desk

Ticket volume, escalations

Fit that only showed up after the sale

Product database

Seats in use, last active date

Whether the fit held once they were live

The bottom three are the ones no data company can sell you, because that data only exists inside your own stack. Each one is a lookup from a tool you already connected: you pick the key to match on, such as an account ID or an email address, and the record comes back through your own connection.

The top two come from a waterfall of data sources ordered by accuracy, not price. You do not assemble the chain. The waterfall asks data sources one at a time, most accurate first, stops at the first one that returns an answer, and a lookup that finds nothing costs nothing.

Step

Up to, per account

Up to, per 400 accounts

Company profile from a domain

15.0 credits

6,000 credits

Technologies on a domain

5.8 credits

2,320 credits

ICP scorer

3.0 credits

1,200 credits

Each enrichment figure is the most a matched account can cost, and an account is charged the price of the data source that answered it. No list matches every account. Every enrichment shows its cost before you run it, so an expensive one can be dropped while dropping it is still free. Extra credits are $20 per 1,000 on every paid plan. The mechanics are on Oneprofile's data enrichment page.

Run ICP scoring across every account

Paste the description you wrote in the first section into Ideal customer profile in your business context. Then add the ICP scorer and point it at the company domain, plus whatever you enriched: description, industry, headcount, company type, who they sell to. That is the whole configuration, at 3 credits an account.

The built-in scorer reads those firmographic inputs. To weigh technologies, billing, support, or usage in the score too, apply the ICP scorer as a template under Agents and add those columns as inputs; otherwise they sit beside the score for the rep to read.

Score every account with AI from there. The scorer reads each account against your description on its own. Every account gets a band (strong, possible, or poor), a score from 0 to 100, and the facts that drove it. Sort by the score and the list is ranked.

One standard is what makes the ranking mean anything. Ask a chat window about one company and it can tell you the company has 90 employees and raised a Series A last spring. Ask it about 400 of them over a week and the bar moves every time you rephrase the prompt. The scorer holds every account to the same description and the same bands, so an 84 and a 71 were measured the same way.

Look at where the scores fall. Say your first run bunches between 40 and 65: that says the ICP is looser than the team believed, with a strong top band and a long tail of plausible companies.

Read the reasons behind each ICP scoring result

Every account comes back with a score and the two or three facts that drove it, each naming where it came from. The reasons read like notes from a junior analyst who went through the list overnight: this one matches on size and industry but sells to consumers, that one is the right kind of company at a quarter of the headcount. Add billing and usage as inputs and they go further: this one pays like a target account but has not logged in since June.

Reps skim scores and act on reasons, which is the same argument behind lead scoring that explains the score at contact level. The auditing argument is better:

  • Check the boundary. Read ten reasons either side of wherever you drew the tier line. That is where the model's judgment is weakest and where you find out whether your ICP sentence said what you meant.

  • Check the top. If the top twenty reasons all cite the same attribute, your description is leaning on one clause and the rest is decoration.

  • Check the empties. An account with too little to judge comes back with no band and no score, rather than a low score. Filter for those before cutting anything, fix the domains by hand, and re-run enrichment and scoring on just those.

That last one is the manual hour in this guide worth spending. It is also where you go back and rewrite the criteria sentence from earlier. Nobody gets the description right first time, and once the enrichment is done, a re-score is 3 credits an account.

Write ICP scores back to your CRM and build segments

A ranked list nobody opens is a nicer spreadsheet. Create the properties below in your CRM once, then map the output onto them. Run the export after each scoring pass. With Skip unchanged rows on, it leaves out accounts whose values are the same as last time. Turn on Schedule refreshes for the CRM import that brought the accounts in, so the next scoring pass reads the latest deals. To score leads rather than accounts, the HubSpot and Salesforce lead scoring guides apply the same idea inside each CRM.

CRM property

Type

Example value

icp_score

Number

84

icp_reason

Single-line text

B2B SaaS (Company type), 90 employees (Employees), sells to businesses (Sells to)

icp_tier

Single-line text

strong

plan_mrr

Number

1450

Tier is worth writing separately from score. Views, list membership, and routing rules are all easier to build on three values than on a number with a threshold buried in the filter, and a tier survives a re-score that shifts every number by two points.

From there the top band has somewhere to go. Enrol it in an email and LinkedIn sequence built from the same enriched list, so the research that scored the account also writes the opening line of the message that reaches it. The poor band stays saved rather than deleted, because the next re-score will move some of it up.

Then set the cadence: monthly on the accounts you are actively working, quarterly on the rest. Companies raise rounds, buy tools, and lose the champion who would have taken the call. ICP scoring that ran once in March is describing a market that no longer exists.

Bring in your own account list and score it against the criteria your closed-won deals already prove. The Free plan gives you 200 credits a month, up to 3 integrations, and 3 tables of up to 100 rows. At 3 credits an account, that scores 66 accounts that already carry their firmographics, which is enough to see whether the reasons change who you call first. Start a free workspace and score your first accounts.

Do this in Oneprofile

A band, a score, and the facts behind it

The ICP scorer reads each account against the ideal customer in your business context and returns strong, possible, or poor with a 0 to 100 score and its reasons.

  • HubSpot logo
  • Salesforce logo
  • Stripe logo
  • Oneprofile logo

5 steps to build it

Before you start

Your closed-won, churned, and no-decision accounts from the last 12 to 18 months

Your ideal customer written as one sentence in the workspace business context

Score, reason, and tier properties in your CRM, created once

1

Define your ICP scoring criteria from closed-won accounts

Pull every closed-won account from the last 12 to 18 months with contract value, cycle length, and renewal status. Add churned accounts and no-decision deals for contrast. The differences between the two sets are your real criteria.

2

Bring your account list in to enrich

Connect your CRM as a source, or import a CSV. Keep one row per company domain and delete the duplicates, so one company that appears as three deals is a single account before anything gets scored.

3

Enrich every account with the data the score needs

Fill firmographics and technographics from the waterfall of data sources, then connect billing, your support desk, and your product database. Cost is shown before the run and a lookup that finds nothing is never billed.

4

Score every account with AI

Write your ideal customer in a sentence or two under Ideal customer profile in your business context. The ICP scorer reads each enriched account against it and returns a band, a 0 to 100 score and a short reason. Sort by the score to rank the list.

5

Write ICP scores back to your CRM and build segments

Create score, reason, and tier properties in your CRM once, then map the output to them and run the export after each scoring pass. Build views from the tier field and enrol the top band in an email and LinkedIn sequence.

Free plan: 200 credits a month, 3 integrations, no card

5 steps to build it

Before you start

Your closed-won, churned, and no-decision accounts from the last 12 to 18 months

Your ideal customer written as one sentence in the workspace business context

Score, reason, and tier properties in your CRM, created once

1

Define your ICP scoring criteria from closed-won accounts

Pull every closed-won account from the last 12 to 18 months with contract value, cycle length, and renewal status. Add churned accounts and no-decision deals for contrast. The differences between the two sets are your real criteria.

2

Bring your account list in to enrich

Connect your CRM as a source, or import a CSV. Keep one row per company domain and delete the duplicates, so one company that appears as three deals is a single account before anything gets scored.

3

Enrich every account with the data the score needs

Fill firmographics and technographics from the waterfall of data sources, then connect billing, your support desk, and your product database. Cost is shown before the run and a lookup that finds nothing is never billed.

4

Score every account with AI

Write your ideal customer in a sentence or two under Ideal customer profile in your business context. The ICP scorer reads each enriched account against it and returns a band, a 0 to 100 score and a short reason. Sort by the score to rank the list.

5

Write ICP scores back to your CRM and build segments

Create score, reason, and tier properties in your CRM once, then map the output to them and run the export after each scoring pass. Build views from the tier field and enrol the top band in an email and LinkedIn sequence.

Free plan: 200 credits a month, 3 integrations, no card

ICP scoring: common questions

What does an ICP score mean?

It says how closely an account fits the customers you already win, not how interested it is. Oneprofile's ICP scorer puts each account on one 0 to 100 scale with a band: strong at 70 or above, possible from 40 to 69, poor under 40, plus the facts behind it.

How do you build an account scoring model?

Start from closed-won accounts rather than a personas doc. Record what they pay, how fast they closed, and whether they renewed, then write the pattern as a plain-language description of your ideal customer. That description is the model.

Which ICP criteria belong in a score?

Only traits you can check on a company you have never sold to: industry, headcount, location, the tools it runs, and who it sells to. Find them by comparing closed-won accounts with churned and no-decision ones, then write the traits the winners share as one sentence.

Is AI ICP scoring better than a points-based scorecard?

A scorecard is a fine first pass and takes an afternoon. It stops being enough when you need to know why an account scored 71, or which of two similar accounts to call first. AI scores every account against the same description and writes the reason beside each score.

How often should you re-score accounts against your ICP?

Monthly for an active outbound list, quarterly for the full database. Re-score sooner after a pricing change or a new segment landing, because those move what a good account looks like faster than time does.

What does ICP scoring cost?

Scoring is 3 credits an account, so 400 accounts cost 1,200 credits. Enrichment before it is priced per lookup, up to 15 credits for a company profile, and a lookup that finds nothing costs nothing. Every enrichment shows its cost before you run it.

About this article

Photo of Utku Zihnioglu

Utku Zihnioglu

CEO & co-founder

Serial entrepreneur who built infrastructure companies handling billions of requests. Now leads engineering at Oneprofile, which finds the people worth talking to, researches each one, and follows up until they reply.

Drafted with AI from our product docs and code. Utku Zihnioglu answers for what it says.

Rank your accounts against the customers you already win

Enrich the list, score each account with a band and a reason, and write it to your CRM.

Free plan: 200 credits a month, 3 integrations, no card

Rank your accounts against the customers you already win

Enrich the list, score each account with a band and a reason, and write it to your CRM.

Free plan: 200 credits a month, 3 integrations, no card