Playbooks
ICP Modeling Playbook
How to turn sales history into a targeting model the team can actually use

Juzefin Gjecaj
Co-Founder | Head of GTM

What this playbook is for
Most ICPs are built from opinion. Someone describes the companies they believe are a good fit, the team turns that description into filters, and outbound starts. When the results are weak, nobody can tell whether the problem is the market, the message, the list, or the sales process.
This playbook takes a more reliable route. It starts with accounts that already went through your sales process and compares the ones you won with the ones you lost. You then enrich those accounts, look for patterns, turn the patterns into three tiers, and test the model against historical and fresh data before putting it into production.
The goal is not to create a perfect description of your market. The goal is to create a repeatable targeting model that tells the team which accounts deserve the most attention, which accounts can be handled through automation, and which accounts should be excluded.
The output you should expect
At the end of the process, you should have four things:
Output | What it contains |
Tier 1 definition | The narrow profile of accounts most likely to become valuable customers. |
Tier 2 definition | A broader profile that is still worth pursuing but does not justify the same level of manual effort. |
Tier 3 definition | The minimum qualification boundary for accounts that are not an obvious mismatch. |
Backtest and operating rules | Evidence that the model behaves sensibly on historical data, plus a clear routing rule for each tier. |
The model should be written as explicit criteria, not as a paragraph such as “fast-growing B2B SaaS companies.” A useful criterion says what counts: industry, headcount, location, funding, technology, revenue, hiring activity, or another observable attribute.
Step 1: Build the historical dataset
Export both closed-won and closed-lost accounts from the CRM. The source playbook names HubSpot, Salesforce, and Attio, but the principle applies to any CRM that contains reliable account and deal history.
Use the last 12–18 months as the starting window. Older deals can be included when the sales motion and product have remained stable, but older data should not automatically be mixed with current data. A company that was a good fit two years ago may no longer resemble the market you sell to today.
At a minimum, include the following fields:
Field | Why it matters |
Account name and domain | Provides the identity key for enrichment and deduplication. |
Deal status | Supplies the win/loss outcome the model is trying to explain. |
Deal value or ACV | Helps distinguish commercially valuable wins from low-value wins. |
Sales cycle | Shows whether certain account types move efficiently through the process. |
Close date | Allows the analysis to be limited to a relevant period. |
Owner and segment | Helps identify territory or rep effects that may distort the pattern. |
Clean the export before analysis. Remove duplicate accounts, standardize domains, separate genuinely lost deals from no-decision or unqualified records where possible, and flag records with missing outcome data. A model built on inconsistent labels will produce confident but unreliable conclusions.
Step 2: Enrich every account
Historical CRM data usually tells you what happened, not why. Enrichment adds the variables needed to compare accounts properly. Run the account set through Clay and collect three categories of information.
Firmographics describe the company: industry, headcount, funding, location, and revenue. Technographics describe the technology environment, including relevant tools and infrastructure identified through BuiltWith. Account-fit signals describe what the company is doing now, such as hiring activity, job postings, web traffic, or signs of growth.
Do not enrich only the closed-won accounts. Every closed-lost account needs the same treatment. If the wins receive more complete data than the losses, the analysis will mistake data availability for a commercial pattern.
The purpose of enrichment is not to collect every possible field. Collect fields that could plausibly affect purchase need, ability to pay, urgency, implementation fit, or access to the buying team. Record the source and date of important enrichment values so the team knows how current they are.
Step 3: Analyze the dataset
Feed the enriched dataset into Claude Code using the Freckle Claude Code skill referenced by the original playbook. Ask the analysis to compare wins and losses rather than simply describe the average customer.
The analysis should answer three questions:
1.Which traits appear repeatedly among accounts that became customers?
2.Which traits appear repeatedly among accounts that did not become customers?
3.Which negative indicators should disqualify an account or reduce its priority?
Treat the output as a set of hypotheses, not as the final ICP. A pattern is useful only when it makes commercial sense and survives testing. For example, a technology may appear frequently among wins because it is common in the entire market, not because it creates a better fit. Likewise, a location may look negative because a particular rep did not work that region effectively.
Separate fit variables from process variables. Industry, headcount, and technology are fit variables. Rep, territory, response speed, and campaign source may affect the sales outcome without describing the customer itself. Both matter, but they should not be confused..
Step 4: Define Tier 3 first
Tier 3 is the broadest acceptable segment. It is not your ideal target list. It is the baseline answer to the question: “Is this account worth any outreach at all?”
The source playbook gives an example of a Tier 3 boundary that includes B2B SaaS or adjacent businesses, any VC-backed round, selected English-speaking or Western markets, and particular headcount bands. Your own criteria should come from your analysis rather than copying those examples.
Keep Tier 3 broad enough to avoid excluding plausible opportunities, but clear enough to remove obvious mismatches. If everything qualifies for Tier 3, the boundary is not doing useful work.
Step 5: Define Tier 1 from the best wins
Select the 150 best closed-won accounts. The source recommends looking at highest ACV, fastest close, and strongest product fit. Add any metric that matters to your business, such as retention, expansion, referenceability, or implementation success.
Review what those accounts share. Tier 1 might be defined by a combination of industry, funding stage, geography, headcount, technology, and an account-fit signal such as a sales team of a certain size. The important point is that Tier 1 should represent a real concentration of commercial value, not a wish list of attractive characteristics.
Do not make Tier 1 so narrow that the team can find only a handful of accounts. The model needs to create a usable market, not just describe your top ten logos.
Step 6: Design Tier 2 as the bridge
Tier 2 fills the space between the high-confidence Tier 1 profile and the broad Tier 3 boundary. It should be broader on variables such as location, funding, and headcount, while still preserving enough evidence of fit to justify outreach.
The routing rule is simple: Tier 1 receives manual outreach; Tier 2 goes into automated sequences. If your team has more capacity, you can add a review queue for Tier 2 accounts showing strong intent. Keep the tier definition separate from the execution rule so it is easy to change one without rewriting the other.
Step 7: Backtest before rollout
Run the scoring model across the closed-won and closed-lost data in Clay. You are looking for a sensible distribution: wins should be concentrated toward Tier 1, while losses should be more common toward Tier 3. The model does not need to classify every record correctly, but it should improve prioritization compared with a random list or a broad industry filter.
Then test the model on fresh account samples from Apollo, AI Ark, Ocean.io, Discolike, and Clay. Check whether the resulting accounts look like the segments the model claims to represent. If the sample produces obviously poor accounts, revise the criteria before launch.
Operating rules and ownership
Decision | Recommended owner | Standard |
Historical data quality | RevOps | Outcome labels, domains, dates, and deal values are usable. |
Pattern review | RevOps and Sales leadership | Patterns make commercial and operational sense. |
ICP approval | GTM leadership | Tiers match capacity and revenue priorities. |
Model implementation | RevOps | Criteria are encoded consistently in Clay or the CRM. |
Backtest review | RevOps and sales managers | Historical and fresh samples support the model. |
Ongoing maintenance | RevOps | Criteria are reviewed when the market or product changes. |
Common mistakes to avoid
Do not build the model from wins alone. Do not treat a correlation as a reason without checking whether the field is common across the wider market. Do not change the criteria every time one rep has a poor week. And do not launch the scoring model without defining what each tier does next.
A useful ICP model is not a static document. It is a working decision system that improves as new wins, losses, sales cycles, and expansion outcomes are added.
You might also like…

Playbooks
Creating An Irresistible Cold Traffic Offer Playbook
It seems like every day there is a new niche or service that has become 'saturated' and is no longer a viable space to build an agency in. But the thing is, there's no such thing as saturated niches or services but rather saturated offers.

Juzefin Gjecaj
Co-Founder | Head of GTM

Playbooks
How To Craft High Quality Lead Lists For Cold Email | Playbook
You can have the best cold email script on the planet but if you aren't sending it to the right people, you'll never be able to print meetings on demand. Not only will you fail to book the number of calls you want but you also risk damaging your deliverability as more people mark you as spam.

Juzefin Gjecaj
Co-Founder | Head of GTM

Playbooks
ICP Modeling Playbook
How to turn sales history into a targeting model the team can actually use

Juzefin Gjecaj
Co-Founder | Head of GTM

Playbooks
Competitor Company Page Followers Playbook
How to turn competitor-page attention into a qualified, tiered account list

Juzefin Gjecaj
Co-Founder | Head of GTM

Playbooks
Automated Outbound Playbook
How to build an outbound system that can scale without turning into list spam

Juzefin Gjecaj
Co-Founder | Head of GTM