Your first list should not start with a database subscription. At a company under fifty people, the fastest way to build a B2B lead list is to export the accounts you already closed and work outward from what they have in common.
That export is not a list yet. Contacts are stale, the industry column is free text, and revenue data is missing entirely. Four passes fix it: enrich the accounts, qualify them against your ICP, rank the result, then push the top slice to your CRM and a sequence.
To work through it on your own accounts, connect your CRM to a free workspace and pull the closed-won list in.
Build a B2B lead list from lists you already have
Most b2b lead list building advice opens at a data source database. Set your filters, pick a headcount band, export a hundred thousand contacts. That approach works and plenty of teams run it well. It is also the point where a founder without a data budget closes the tab.
There are four or five lists sitting in systems you already pay for, and each one carries more signal than a filtered database query.
Seed list | Where it lives | Why the signal is good |
|---|---|---|
Closed-won accounts | CRM | The only sample where you know the outcome |
Closed-lost, over a year old | CRM | Budget, tooling, and champions have all moved since |
Sign-ups that never converted | Product database or CRM | They chose to try you once already |
Event scans and webinar lists | A CSV on someone's laptop | Self-selected interest, decaying fast |
Churned accounts | CRM plus your support desk | You know exactly what broke |
Export the accounts you already know, and start with closed-won. Not because those companies will buy twice, but because they define the pattern everything else gets measured against. Closed won lookalike accounts are the rest of the market filtered by the traits your paying customers turned out to share, which beats the ICP written on slide nine of the seed deck.
Say your first list comes out of a sign-up table nobody has opened in months. The qualification pass can cut a large share of it before anyone writes a single email, which feels wasteful right up until the replies start coming back from the accounts that survived.
While we are here: the TAM spreadsheet needs to stop. Forty thousand rows, eleven filter tabs, a headcount column nobody trusts, and no evidence anyone ever worked past row 300. It is planning theater. A ranked list of 200 accounts with a written reason attached to each one is worth more than the whole file.
What the export needs before you build a B2B lead list
Match rates and score quality are both decided by what you bring, not by which data source runs. Pull these columns out of the CRM:
Company domain. The single most important column. "Acme Inc." is a string thousands of companies share a version of; acme.example is an identifier that data sources can actually match on.
Outcome and close date. Won, lost, or churned, plus when. This is the evidence the AI pass reads later.
What they paid. Contract value or MRR if your CRM holds it. If it does not, connect your billing tool as a second source and the number appears on that account anyway.
Any contact, even a stale one. A name from three years ago still tells you which job title bought.
Load the export next:
Connect your CRM as a source and filter to the outcome you want, or import the export file directly if you would rather work from the CSV. The same path covers a conference list, and the mechanics are the same ones in how to enrich a CSV of leads.
Once the accounts are in, open the company domain column's header menu and choose Remove duplicates, so a company that appears as three deals becomes one account. The first row of each duplicate is kept.
Keep the outcome fields visible. Most people drop them at import and then wonder why the scoring pass has nothing to reason from.
Enrich every account with firmographics and contacts
A lead list from CRM data is mostly holes at this point. Old contacts, missing headcounts, no current tech stack. This pass turns those accounts into contacts you can actually reach.
No single data source covers everyone, so the waterfall asks data sources one at a time and stops at the first one that returns an answer. You do not build the chain. Data sources are ordered by accuracy and hit rate, the most accurate one runs first, and a lookup that finds nothing costs nothing. Checking an email address is a separate step, Verify email, which sits beside the lookup.
Enrichment | Up to, per match | Up to, per 500 accounts |
|---|---|---|
Company firmographics, from a domain | 15.0 credits | $150 |
Person enrichment, from an email | 10.0 credits | $100 |
Work email plus Verify email | 10.8 credits | $108 |
Phone number | 39.4 credits | $394 |
At $0.02 a credit, each 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. The total appears before the run, so an expensive enrichment can be dropped while dropping it is still free.
Two sources most people forget on this pass: your billing tool, which puts real contract values on your closed-won accounts and makes the ICP definition quantitative instead of vibes, and your support desk, which knows which of the churned accounts left angry and which just ran out of runway. Both connect the same way the CRM did.
Qualify the lead list against your ICP with AI
Now the pass that changes the list rather than widening it. You describe your ideal customer once, in a sentence or two, and AI scores every account against that description.
Holding every account to the same written standard is the part that matters. Eyeballing one company at a time can tell you it has 80 employees, but your standards drift somewhere around row 50. Scoring each of the 400 accounts against the same description is what makes a sort by score mean something.
Write the description from evidence, not aspiration. 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, and pays us above $8,000 a year." Every clause in that sentence should trace back to something you've actually enriched.
What comes back is a score and a reason for each account. The reason reads like a note from a junior analyst: this one matches on size and category but has no CRM in its stack, that one is a category fit but has fewer than ten employees. Reps skim scores and act on reasons, which is also how you catch a scoring rubric that has quietly gone wrong.
Rank the list and cut the accounts not worth working
Sort by score and the shape of the list appears immediately. There is usually a clear top band, a long middle, and a tail of accounts that got into the export because someone once scanned a badge.
Cut the tail. Then read ten reasons from either side of wherever you drew the line, because that is where the model's judgment is weakest and where you will find out whether your ICP sentence said what you meant.
Back to the domain for a second, because it matters again here. Accounts that missed enrichment come back unscored, not low, because there was nothing to score. Filter for empty scores and empty firmographics before you cut anything, fill the domains by hand, and re-run enrichment on just those accounts. It is the one manual hour in this whole guide worth spending.
Build a B2B lead list your CRM and sequencer can use
Push the finished list to your CRM and sequencer. A ranked list nobody works is a nicer version of the spreadsheet you started with, so the last pass gets it back out:
To the CRM. Create score, reason, and tier properties in the CRM once, then map them. Re-running the export writes fresh values to them rather than leaving them frozen at export time. The same write-back pattern powers HubSpot lead scoring.
To a sequence. Enrol the top slice in email and LinkedIn steps on one canvas. Start from a campaign the agent tailors to that slice, or build the steps yourself. All the research that ranked the account also writes the opening line of the message that reaches it. If the team already sends from Instantly, Smartlead, or lemlist, export the list and import it there instead.
On a schedule. Re-run enrichment monthly. People change jobs, companies raise rounds, and the list decays whether or not you look at it.
Export your closed-won accounts and run them through. The free plan covers 200 credits a month and three tables of up to 100 rows, which is enough to score a real sample end to end, and credits never expire. Get started free and rank your first 100 accounts.

