To build a B2B lead list with AI, turn your ICP into explicit filters, find matching companies first, identify the right buyer at each account, enrich only the fields you need, verify every contact and reject records that lack evidence. The model can coordinate the work. Your acceptance rules decide whether the output is safe to use.
I tested that idea with one sentence in GPT Astra. It returned 428 US software companies and 2,412 people with work emails. The LinkedIn post reached 22,976 impressions, 253 reactions and 90 comments. The result shows speed in one run. It does not establish that every record was unique, current or ready for outreach.
in
“I asked GPT Astra for a lead list. It gave me 2,412 people. Here's the exact sentence I typed:”
How to Build a B2B Lead List in Five Steps
- Write the target market as filters a researcher can test.
- Build the account set before choosing individual contacts.
- Define the buyer role and fallback titles for each account.
- Enrich and verify the minimum fields required for outreach.
- Sample the output, reject failures and save an evidence trail.
That is the complete loop. A prompt can make the first pass dramatically faster, but speed moves the bottleneck into review. If the acceptance test is vague, a large answer looks impressive while hiding duplicates, stale titles, weak company matches and emails that should never enter a sequence.
1. Turn the ICP Into Executable Filters
My source prompt was: US software companies, 50 to 500 people, hiring salespeople right now. Give me the head of sales. It has four useful filters: geography, industry, headcount and a current hiring signal. It also names the person to find. That is far stronger than asking for promising SaaS leads.
The sentence still leaves decisions open. What counts as software? Which job postings prove active sales hiring? How recent must the signal be? Does head of sales include a vice president, chief revenue officer or founder? Write those definitions before the run. Two researchers should reach similar answers from the same brief.
Add an output contract beside the prompt. I want company name, domain, employee band, hiring evidence URL, observed date, contact name, current title, profile URL, work email, verification state and source for each field. A blank cell is acceptable when the source is missing. An invented value is never acceptable.
OpenAI describes GPT-6 Astra as a model for multistep professional work. That supports using it to coordinate research. It does not certify any contact record the model returns.
2. Build Accounts Before People
Start with one row per company and a stable key, usually the normalized domain. Company names change spelling. Brands and parent companies create duplicates. The domain gives the workflow a durable key before each account becomes several contacts.
Then test the account against every filter. A careers page can support the hiring signal. A company page can support the industry and headcount band. Save the URL and observation date beside the value. If the evidence conflicts, mark the row for review instead of letting the model choose the answer that keeps the count high.
Only after the company passes should you search for people. Choose one primary role and a short fallback ladder. For this example I would use head of sales, vice president of sales, chief revenue officer, then the founder for a smaller company. Keep every matched person, but label which rule selected them.
3. Make the AI Show Its Work
The useful AI job is orchestration. It can translate the brief into searches, collect candidate accounts, normalize domains, resolve titles and call an enrichment source. Each step should return evidence and a status. A record can be accepted, rejected or sent to review. It should never disappear silently because one source failed.
The relationship between 428 companies and 2,412 people deserves a check. That is about 5.6 people per company. The number may be intentional if the list keeps several buyers. It may also signal broad title matching or duplicate identities. Ask for the distribution per account before celebrating the total.
The source post says no tool, export or CSV was opened. That removes several handoffs during discovery. Persistence still matters. Save the final table, prompt, run time, source links, rejected rows and deduplication key. Otherwise the next run cannot tell which records are new, corrected or repeated.
4. Enrich and Verify the Smallest Useful Record
A lead list does not need every field a provider can sell. It needs enough information to qualify the account, reach the right person and explain why the timing is relevant. Every extra field adds cost and another chance to preserve stale data. Start with the fields the campaign will actually use.
In a separate Growth Cab benchmark, the same 600 leads went through eight providers and an outside email check. Prospeo had 394 independently confirmed emails from 395 it labelled valid. Apollo had 408 confirmed from 432 labelled valid. Prospeo sent one dead email in that sample; Apollo sent 24. This was one fixed test and cannot establish a universal ranking.
The full eight-provider lead database benchmark keeps coverage, verified accuracy, mobile coverage and cost separate, including the sample limits and Prospeo sponsorship disclosure.
Coverage and precision answer different questions. A provider can find more addresses while producing more failures. Another can return fewer addresses with a cleaner valid bucket. Measure verified contacts divided by the target sample, then measure failures inside the provider's accepted bucket. Keep both numbers beside the price.
Prospeo markets bulk finding and verification as one workflow. Treat capability and pricing statements as vendor claims until your sample confirms them. Coverage, refresh timing and credit rules change. Re-run the same representative set before a major campaign.
Prospeo's current bulk email finder guide explains its own workflow and claims. The vendor page is useful for product scope; it is not independent evidence of accuracy.
5. Put a Gate Before Outreach
- Account matches every required ICP filter with dated evidence.
- Domain is normalized and unique inside the run and CRM.
- Contact owns the target role under the written title rules.
- Work email has a current verification state and source.
- Hiring signal is recent enough for the campaign thesis.
- Suppression, opt-out and existing-customer checks pass.
- A human reviews ambiguous records before any message is sent.
Keep list building separate from sending. Finding a public business address does not create permission to ignore the rules that apply to commercial email. The campaign still needs accurate sender information, honest subjects, a postal address and a working opt-out process. Your suppression list must win over every new enrichment result.
The US Federal Trade Commission's CAN-SPAM compliance guide says the law covers commercial B2B email and keeps the sender responsible even when another company handles the work.
Deliverability adds another acceptance layer. Gmail asks bulk senders to authenticate mail, keep user-reported spam rates below 0.1 percent and prevent them from reaching 0.3 percent. A verified address can still belong to the wrong person or receive an irrelevant message. Data quality protects the start of the workflow; relevance and sending controls protect the rest.
Google's current email sender guidelines FAQ documents the authentication, unsubscribe and spam-rate requirements for bulk senders to personal Gmail accounts.
Run a QA Sample Before You Trust the Count
Review at least 30 records before the list moves. Stratify the sample across company size, industry edge cases and title fallbacks. Open the evidence links. Check whether the company is genuinely hiring salespeople, whether the contact still holds the role and whether the email status matches an independent verifier or a controlled validation method.
Report ICP match rate, role accuracy, verified coverage, duplicate rate and review minutes per accepted record. If ten of thirty rows fail the ICP, a 2,412-person headline is a warning. If twenty-nine pass with current evidence, the system has earned a larger run.
Price the accepted record. Add model usage, data credits and review labor, then divide by records that pass every gate. About one cent per email was the observed data cost in the source example. It was not the full cost of a campaign-ready lead because qualification, review, compliance and maintenance still carry time and money.
What the Astra Example Proves
It proves that a founder can describe a market in plain English and receive a large structured candidate set inside one conversation. It also shows the value of connecting a strong model to current data and a clear provider. That compresses the mechanical work that used to consume a Monday.
It does not prove Astra found every matching company, that 2,412 contacts were all current or that the list booked meetings. The post reports one run and a separate provider benchmark. I would preserve both as useful observations and refuse to turn either into a controlled performance claim.
Where AI Lead Lists Break
The first failure is an attractive but ambiguous ICP. The second is stale evidence. The third is title inflation, where broad matching turns one buyer into six contacts. The fourth is silent retries that duplicate records or burn credits. The fifth is treating a valid email as proof that outreach is relevant or permitted.
The fix is operational discipline: stable keys, dated sources, explicit states, idempotent runs and human ownership of edge cases. The model should make the pipeline faster and easier to inspect. If it produces a giant opaque answer, you have automated the least trustworthy version of list building.
Use the B2B data enrichment workflow to define field ownership, verification rules and the handoff from an accepted lead list into a campaign.
The Decision Rule
Judge the system by accepted records instead of rows returned. A good B2B lead list has a clear reason for every account, one defensible buyer rule and fresh contact evidence. It contains zero unresolved duplicates and includes a documented stop before sending. Astra can remove hours from the build. The gate turns that speed into an asset your sales team can trust.
Disclosure: the source post featured Prospeo, a data provider Growth Cab uses and partners with. The 600-lead comparison used the same sample and an outside email check, but the relationship still matters. The method in this article works with any data source that exposes evidence, verification state and enough detail to rerun the test.

