Nose for Leads

How to Clean a Scraped Lead List Before Cold Email

The question nobody has answered well

A recent r/localseo thread asked it plainly: when you export a Google Maps, Outscraper, Apify, or similar lead spreadsheet, what do you actually do before importing it into your sender? The thread got replies, but no single trusted checklist. That gap is the reason this page exists. If you scrape or buy local business leads and you are staring at a raw CSV wondering where to start, here is the full sequence.

This is not a light task. One r/LeadGeneration thread on Google Maps scraping, one user's reported experience, said that even with solid search keywords, "a big chunk of the results (like 75-80%) were totally off," a number specific to that person's run but consistent with what shows up across similar threads: most of what a raw scrape hands you needs cutting before it is safe to send to. A separate r/LeadGeneration thread on the same broader topic put it bluntly: "building local business lead lists takes way longer than the outreach." That is the reality of working from raw data, and it is worth doing right, because a dirty list does not just waste your time, it burns your sending domain.

Step 1: Dedupe the export

Scrapers pull from overlapping sources: Google Maps listings, directory sites, business websites. Same business, three sources, three slightly different rows. Sort by email address first since that is what actually determines a duplicate send, then check business name and phone number as secondary signals. A spreadsheet's built-in unique-values function catches exact matches. Near-duplicates ("ABC Plumbing" vs "ABC Plumbing Inc") need a manual pass or a fuzzy-match tool.

A faster version of this step: drop the CSV into the free email list cleaner. It runs the dedupe, role-address, and junk-row checks in your browser, and the file never leaves your machine.

Step 2: Filter out wrong-fit rows

Category and city filters are blunt instruments. A search for "plumbers in Austin" returns plumbing supply wholesalers, plumbing schools, and businesses that closed months ago but never updated their Google listing. Pull a sample of 30-50 rows and manually spot-check them against your actual ICP: right category, right size, still operating. If your target criteria go beyond category and city (independents versus chains, businesses without a website, review count thresholds), this is the step where you apply those filters too. Cutting a bad-fit row here is cheaper than paying to verify its email in the next step, and cheaper still than a wasted send.

Step 3: Verify every email address

This is the step raw scrapes skip entirely, and it is the single biggest lever on your bounce rate. Export your deduped, filtered list and run it through a bulk email verification tool like ZeroBounce or NeverBounce. The process is the same across most of these tools: upload the CSV, map the email column, run the batch, and review results.

Verification tools sort results into valid, invalid, risky (catch-all or accept-all domains), and unknown. Drop invalid rows outright. Keep valid. Risky and unknown need judgment. Skipping this step is how a "cheap" scrape stops being cheap. One user's reported experience of a $30 scrape turning into a $90 bill once verification got added is worth a look if you want the specific math: Outscraper's hidden verification costs walks the full breakdown.

Step 4: Scrub against your suppression list

Before anything gets re-imported, run it against your suppression list: past unsubscribes, bounced addresses from earlier campaigns, and role-based addresses (info@, sales@, admin@) that rarely reach an actual decision-maker. If you track do-not-contact requests or run under CAN-SPAM and CCPA obligations, this is also the point to check those flags.

Step 5: Format-check before import

Confirm your sender's required fields are populated and correctly formatted: first name, company, custom fields your sequence references. A merge-tag failure ("Hi ") in a live send is one of the fastest ways to tank reply rates and signal "mass blast" to both recipients and spam filters.

Step 6: Send a small test batch first

Import the cleaned list and send to a small batch first, 50-100 contacts, especially if your sending domain is still warming. Watch bounce rate and complaint rate before scaling to the full list. A clean list still benefits from a cautious ramp. If you're not sure what full volume should be, the cold email capacity calculator turns a send target and domain age into inboxes, domains, and a week-by-week ramp.

What this actually costs

Run by hand, this is real work. An hour or more per list, depending on size, plus whatever the verification tool charges per email checked. None of that is unreasonable. It is just the cost of using raw scraped data responsibly. A r/sales thread on fixing a messy lead list put the alternative in plainer terms, one user's reported experience: after realizing "the problem might be the data itself, not the copy," they described the fallout as emails that "bounce or just vanish into nothing." Skip the checklist, and that is what you are trading cleanup time for.

Or skip the manual pass

Every step above exists because scrapers and list brokers hand you data before checking whether it works. Nose for Leads runs the ICP filter and the email verification as part of finding the leads, before you are charged. A row that fails either check is cut, never billed, and shown to you on a receipt. There is no separate cleanup pass to run, because the list only ever contains what already passed.

If you already have a list you scraped elsewhere and just need it cleaned, this checklist still applies. If you would rather not build the list from raw data at all, see the pricing model: 25 free validated leads at signup, then credit packs where cut leads never cost you anything.

FAQ

How do you scrub an email list? Run it through a bulk verification tool to catch invalid and risky addresses, then cross-reference it against your suppression list (past unsubscribes, bounced addresses, role-based inboxes) before importing it into your sender.

Is email scraping illegal? Scraping publicly available business contact data is generally legal in the US, but how you use it is governed by CAN-SPAM (commercial email) and, for California residents, CCPA. Honor opt-outs, identify your business in every send, and maintain a suppression list.

What are some common cold email mistakes? Sending to an unverified list, skipping the ICP re-check so off-target businesses get emailed, going straight to full volume on a cold or newly warmed domain, and broken merge tags that make an email look like a mass blast instead of a real message.

Is cold email still effective in 2026? Yes, when the list is clean and targeted. Most of what kills cold email performance is not the channel, it is bad data: bounces, wrong-fit recipients, and spam-trap hits from stale or purchased lists. Fix the list before you touch subject lines or copy. That order matters more than people think.

You describe. The hound tracks it down.

25 free leads to start. Your first list in minutes.