Building an ICP from your CRM in 30 minutes (without a data scientist)
Most teams describe their ICP from gut. The fast version: take closed-won deals from the last twelve months, find the four traits they share, and turn that into a signal-mining query the same afternoon. Step by step.
By Bora Esen

Most teams describe their ICP from gut. “Mid-market SaaS, EU, technical buyer, growth stage.” That sentence sounds rigorous; it is mostly a story the founder is telling themselves. The fast version of the same work uses your CRM as the ground truth. Take closed-won deals from the last twelve months. Find the four traits they share. Turn those into a signal-mining query. Total time: thirty minutes. Total cost: zero.
Step 1: pull the last 12 months of closed-won
Export from your CRM. Limit to deals that are closed-won, not closed-lost, not active. Exclude trials and free-tier upgrades — you want commercial customers who paid. If you have fewer than 30 closed-won deals in the period, drop the period to whatever volume gets you to 30. Below 30, the pattern is too noisy.
Pull the basics: company name, company domain, industry, headcount, country, deal size, source channel, time-to-close. If your CRM has tech-stack data (Built With, Wappalyzer integration), pull that too.
Step 2: find the four traits
Open the export in any spreadsheet. Run four counts.
- Industry distribution. Sort the deals by industry. Look at the top two or three industries that account for >50% of your closed-won. Those are your ICP industries.
- Headcount distribution. Bucket the deals into headcount bands (1–10, 11–50, 51–200, 201–1000, 1000+). Look for the band(s) that account for >60%. That is your ICP size band.
- Geography distribution. Top three countries. Often the result here is uncomfortable — many teams discover they are selling to one country whose addressable market they have already half-saturated.
- Tech-stack pattern (if available). Tools your closed-won deals share. If 70% of your closed-won runs Postgres + Stripe, “Postgres + Stripe” is part of your ICP and a powerful enrichment trigger.
Most teams find one or two of these traits are tighter than they expected and two are wider. The narrow ones define the ICP. The wide ones tell you where to look for adjacency later.
Step 3: write the one-line ICP
Compress the four traits into a single sentence. For Leafer, the sentence reads: “B2B SaaS companies, 11–50 employees, EU + Türkiye, running Postgres + Stripe.”
The sentence has to be specific enough that you can hand it to someone who has never met your product and they can find a hundred matching companies. If the sentence is “mid-market B2B,” it is not done yet.
Step 4: turn the sentence into a signal query
This is where the work pays off. Each trait becomes a filter on your signal-mining tool.
- Industry. SIC / NAICS code filters in Google Maps + LinkedIn search.
- Headcount. LinkedIn employee-count filter, validated by an enrichment vendor.
- Geography. IP-to-country lookup plus a city/region filter.
- Tech-stack. BuiltWith / Wappalyzer lookups for the company domain. Leafer pulls these inline so the queue automatically prioritises matches.
Plug those filters into your signal source and the “maybe-fit” pool shrinks 10–30× compared to running the same source on a generic ICP. The hit rate on the smaller pool goes up commensurately.
What the result looks like
A team that does this exercise for the first time typically discovers two things. First, the ICP they have been describing is two or three traits too generic — they are paying for a wider pool than they need. Second, the actual ICP is sharper than the gut version, which means reply rates jump when the messaging gets tuned to it.
Reply-rate lift after an ICP tightening: usually 30–50%, sometimes 2×. The reason is not magic. The message is the same; the pool is just better.
When to redo this
Once every six months in early stage. Once every twelve months in steady state. Sooner if you change the pricing or the positioning. The exercise is cheap. The mistake of running outbound on a stale ICP is expensive.
Leafer keeps a running ICP fingerprint based on your closed-won data and flags drift when it appears. If you would rather build the fingerprint by hand using the steps above, the recipe is the same. The point is to let the CRM tell you the truth instead of guessing.
Try it
Ready to run this in your workspace?
Start free for 14 days. $99/month after — transparent tiers.
Start free trial

