Build lead lists with checks before shipping
The agency's team filled in a form for every list they needed. Claude turned the form into a structured brief, a person approved it in Slack, and the pipeline sourced companies and found a decision-maker at each one. The first version delivered lists for seven of the agency's clients within three weeks. The checks were added as delivered lists came back with wrong names, and they decide what reaches the CRM file.
Works ifYour lead lists go straight into email campaigns and cold calls, and one wrong name costs you trust.
The system
Request form
One row per list
Product, countries, target titles, cap.
Local
Google Maps
Pattern
Apollo + Google search
Preloaded
The client's own list
Check 1
One person, one company
Cross-row duplicates suppressed.
Check 2
Country
Phone code must match, when the brief asks.
Check 3
Current employer
LinkedIn title + Apollo record.
Check 4
10% sample audit
Over 10% misses fails the list.
CRM file
19-column HubSpot import
Email finding
Clay waterfall
Return filtered on domain, status and country.
What it solves
A request from the team's form: the product, the countries, the target job titles and a cap on companies.
Why it matters
The lists go into email campaigns and cold calls. A wrong name, or three people mailed at the same company, looks careless or like spam and costs the agency trust with its own client.
How it works
Approve the brief before spending
Claude reads the form, its comments and notes and writes a brief: countries, target titles, company cap and people per company. The brief lands in Slack, where a person approves, rejects or edits it in the thread. Without a reaction in 30 minutes it goes ahead.
Source, then find the decision-maker
Companies come from Google Maps for local businesses, from Apollo and Google search for a pattern, or from a list the client already has. Apollo, Perplexity and a LinkedIn search propose the decision-maker. Google Places and a scrape of the company's own site add phones and emails.
Check every name that has a profile
One person cannot hold the top spot at two companies on the list. Phones must match the brief's country when the brief asks for it. Claude reads each person's LinkedIn result and Apollo record and returns match, wrong employer or uncertain. Then 10% of rows are re-checked with the team's own manual searches, and more than 10% misses fails the list.
Ship a file the CRM accepts
Rows are ranked and trimmed to the brief's cap and written as a 19-column HubSpot import file, posted to Slack. Only a list that passes goes to Clay for email finding. On the way back, emails on another domain, invalid emails and foreign mobiles are dropped.
Build notes
- The first finder marked a person verified as soon as any LinkedIn profile with that name existed. The employer check was run outside the pipeline, list by list, five weeks in a row before it became a default step.
- Rows carried over from an earlier delivery skipped the LinkedIn check. After rows were flagged on the delivered sheet, the lookup on the 11 carried-over rows found 7 pointing to the wrong person. The rule became: check every row, including rows from a previous list.
- The maps data gave one fallback phone number to 29 different companies. The fix was to take the office phone from each company's own contact page, which had a number for 51 of 60.
- A strict verified-only filter dropped all 119 rows on one small-business brief, because Apollo had no LinkedIn URLs for those owners.
- Most deliveries ran as short per-list scripts on the same library, because the LinkedIn audit and the Clay return filters ran there and not in the scheduled flow.
Questions
Why check the employer when the tool already says the LinkedIn profile is verified?
That flag only means a profile with the name exists. The check reads Google's indexed LinkedIn title and Apollo's current employer for the person and asks whether they work at this company today. The first audit flagged 6 of 77 LinkedIn URLs as someone else.
What happens to a company where no name passes?
It ships without a name, with the company's general contact details, so the list still covers it. An earlier version dropped those rows silently and lost 8 of the 19 companies on the client's source list.
More builds
All builds →Find contacts at companies with 2 to 10 staff
Your buyers work at companies too small for contact databases to cover.
Detect 163 B2B tools from a company's website and DNS
Your product replaces, integrates with or sells to users of specific tools.
Turn a vertical database into a 3-touch outbound engine
A vertical database already lists your buyers with contacts, and a founder will make the closing calls.
The next step