Step 1 of 4The Target
One line in: a niche and a city. Out: a plan for where those businesses actually live online, so the scraper is not guessing.
| PASTE THIS INTO CLAUDE CODE You are a B2B lead researcher. My target is: [NICHE] in [CITY]. e.g. dentists in Austin Build me a source plan, not the list yet. Return: 1. The public places this business type is listed: directories, association sites, map listings, and their own websites. Rank each by how complete it is and how easy it is to pull from. 2. For each source, the fields I can expect to get: business name, website, phone, email, contact name. 3. A realistic total count I should expect in this city. 4. One search I can run to reach each source. Use only publicly available sources. If a source's terms forbid scraping, flag it so I skip it. |
|---|
| Why a plan first Point a scraper at the wrong sources and you get fifty junk rows and a blocked address. Ten minutes of planning is the whole difference between a scrape and a clean list. |
Step 2 of 4The Scraper
Claude writes the scraper and runs it in front of you. No paid API, no monthly seat. You watch a real file fill up with businesses.
| PASTE THIS, THEN THE SOURCE PLAN FROM STEP 1 Using the source plan below, write and run a Python scraper in this project that collects [NICHE] in [CITY]. Rules: - Free libraries only (requests, httpx, beautifulsoup, playwright). No paid APIs, no keys I have to buy. - Respect robots.txt. Add a 1 to 2 second delay between requests and a normal user agent. Do not hammer a site. - Write results to leads.csv with columns: business, website, phone, email, source, scraped_at. - Skip duplicates by website domain. - Print a running count. If a source blocks you, stop cleanly instead of retrying forever. Show me the code, run it, then show the first 10 rows. SOURCE PLAN: [paste from step 1] |
|---|
| You are watching it work Claude does not hand you a script to run later. It runs it in front of you and the row count climbs live. That number climbing is the same thing the paid tools charge you a monthly seat to watch. |
Step 3 of 4The Verifier
A list of emails is worthless if half of them bounce. This fills the gaps and throws out the dead ones, so every row is a real inbox.
| PASTE THIS, THEN POINT IT AT leads.csv Turn leads.csv into a clean, verified list. For each row: 1. If email is missing, find it on the business's own site (contact, about, and footer pages, plus common patterns like info@ or the owner's name). 2. If a contact or owner name is public on the site, add it to a contact_name column. Do not guess names. 3. Validate every email: real format, a live mail domain (MX record), and flag role addresses (info@, admin@). Add a status column: valid / risky / dead. 4. Move dead rows to leads_removed.csv with the reason, so I can see exactly what got cut. Save the clean set to leads_verified.csv and tell me how many valid, risky, and dead you found. |
|---|
| Why you keep the dead pile Every paid tool inflates its count with addresses that bounce. A status column and a removed pile are how you trust the number. A hundred verified leads beat five hundred maybes. |
Step 4 of 4The Writer
One blast to everyone gets ignored. This writes a different opening line for every business, pulled from something real on their own site.
| PASTE THIS, THEN POINT IT AT leads_verified.csv Write a cold email for each row in leads_verified.csv. For each business: 1. Pull one specific, true detail from its website (a service they push, their location, a recent post) and use it as the first line, so it cannot read like a template. 2. Keep the body to 4 short sentences: the detail, the one problem I solve, the proof, a soft ask for a reply. 3. Subject under 6 words. No hype, no all caps. 4. My offer is: [ONE SENTENCE]. My name is [NAME]. My calendar link is [LINK]. 5. Add a real unsubscribe line and my business address (required by law for cold email). Output per row: subject, first_line, full_email. Do not send anything. I review before a single one goes. |
|---|
| The line that does the work The whole difference between a reply and the trash folder is that first line being true. Claude reading each site and writing a real opener is the part a $2,000 list can never give you, because a list is just rows. |
Free, for your email
Get the full setup steps + the copy-paste setup prompt
The rest of this guide (5 more sections) opens right here. The setup prompt, one paste into Claude that sets it all up, comes by email only. Use your real address.
Unlocks: Bonus, Not in the Video · The deliverability cheat sheet · What This Replaces · The math · Honest Notes
50,000+ follow where these guides come from. No spam, reply “unsubscribe” any time.