Home/Thoughts
Thoughts

Never Enrich a Lead You Haven't Killed First

Qualification and exclusion must happen before enrichment - not after. Here's how to stop paying to find emails for porn sites and gambling domains.

Quick Audit
Is Your Lead List Burning Money Before You Send Anything?
Answer 5 questions about how you build outbound lists. See exactly where your budget is leaking - and how much waste you're carrying before the first email goes out.
Question 1 of 5
1. When do you filter out bad domains (porn, gambling, irrelevant keywords)?
2. How do you handle country and market blocks (e.g. Russia, North Korea, markets you cannot close)?
3. Do you check whether a domain is actually alive before spending API credits on it?
4. When do you run AI qualification and email copy generation in your workflow?
5. Roughly what percentage of leads from your raw list do you estimate actually deserve enrichment?
0
/ 10
Estimated Waste on a 100,000-Domain Pull
Leads enriched that should be cut first
Estimated API credit waste
Leads worth enriching
Your Workflow - Where the Leaks Are

We Spent $44 to Learn a $4,000 Lesson

I was on a coaching call recently with a guy building an outbound system for a live chat SaaS product. Smart operator. He'd done the work - pulled a list of over 100,000 domains from BuiltWith, scraped through them using a custom workflow, made 200+ batches of 500 API calls each to figure out where companies were located. Two full days of manual work. Real effort.

And then we started talking about what he actually had.

Porn sites. Gambling domains. Companies in markets they couldn't even sell into. Vietnamese gambling operators. Domains with no live chat widget whatsoever - which is a problem when you're selling live chat software.

He'd spent two days and burned through API credits building location data for leads that never should have made it past step one. The total damage? About $44 in API costs. Not thousands. Not even hundreds - but that's not the point. The point is we wasted every call, every lookup, every minute building location inference on leads that should have been filtered out before any of that started.

That's not a data problem. That's a workflow design failure.

The Backwards Way Most People Build Lead Lists

Here's how most people approach outbound prospecting with tech-stack targeting:

  1. Pull a raw list from a source like BuiltWith
  2. Run the whole list through an enrichment workflow - find the decision-maker name, look up their email, run AI qualification, verify the address
  3. Then start filtering out what you don't want

You can see the problem. By step three, you've already paid for every lookup on every domain you're about to delete. You paid to find the email address for a Vietnamese gambling operator. You paid to run an AI qualification check on a porn site. You paid to verify a contact at a company in a country you can't legally or practically sell into.

This is backwards. Completely backwards.

The right workflow is: kill everything you don't want first. Then enrich only what survives.

I call this the dead-lead-first methodology. Before you spend a single API credit, you build your exclusion list and run it. The leads that get through are the ones worth paying to find.

What Your Exclusion Pass Should Catch

The guy I was coaching had identified three main categories of garbage in his list, and they apply to almost every BuiltWith or Apollo pull you'll ever do:

1. Domain-Level Keyword Exclusions

The fastest filter you can run - before any API touches these leads - is a keyword pass on the domain itself. If the domain contains words like casino, bet, gambling, poker, adult, xxx, crypto (in certain contexts), or similar terms, you cut it before you ever look up who works there.

You don't need AI to tell you a domain called "vegasslots247.com" isn't your ICP. A simple find-and-replace on the spreadsheet handles this in five minutes. Do it before you touch the enrichment workflow. Do it before you send anything to any API. Kill the lead first.

In our call, we figured out that this one step alone would have eliminated a significant chunk of the 100,000-domain list - and saved the two days of location-scraping work that followed.

2. Country and Market Blocks

This one's more nuanced and worth thinking through carefully, but the principle is the same: decide which markets you can actually close before you enrich, not after.

We talked through this on the call. Russia is a hard block - even if you book a meeting, the sanctions environment means US companies typically can't transact with Russian entities. That's a fully wasted meeting slot for your closer. North Korea, same thing. Some markets you block on practicality - you're not going to close a deal if the prospect only does business in their local language and you're sending English outreach.

But here's the nuance my guy brought up, and he was right: if a company in India or the Philippines is paying $100/seat for Intercom or $2,500/month for Drift, the location objection evaporates. Budget signals beat geography. So the country filter isn't a blanket cut on developing markets - it's a targeted cut on markets where you cannot convert even if they respond.

Build your country exclusion list in a spreadsheet. Run it before enrichment. Simple country-code filter does the job.

3. Dead or Irrelevant Installs

BuiltWith doesn't only show you companies actively using a technology right now. It shows you anyone who has ever had that technology installed - or at least detected. So a site that had Tidio installed eighteen months ago and has since moved to something else, or shut down entirely, will still appear in your pull.

The way to handle this before enrichment is a quick domain-alive check. Ping the domain. Does it load? Is there a live chat widget visible on the site? This takes a trivial amount of compute compared to running GPT qualification on every record. Do the cheap check first. Kill the dead domains. Then proceed.

Free Download: 7-Figure Offer Builder

Drop your email and get instant access.

By entering your email you agree to receive daily emails from Alex Berman and can unsubscribe at any time.

You're in! Here's your download:

Access Now →

The Workflow That Actually Makes Sense

Here's what the workflow looked like after we redesigned it on the call:

  1. Pull raw domains from BuiltWith (or via Fiverr freelancer - there are guys who will pull a specific technology's user list for $20-40, which is usually cheaper than a direct BuiltWith plan)
  2. Domain keyword exclusion pass - find-and-replace on the spreadsheet, cut anything that matches your blacklist terms
  3. Country filter - remove hard blocks (Russia, North Korea, markets you've decided not to target)
  4. Domain alive check - cut dead sites
  5. Only now start enrichment - find the decision-maker name, pull email with a tool like Findymail, verify with NeverBounce
  6. AI qualification - only on records with verified emails. Use GPT to confirm they're still at the company, still in the right role
  7. Script generation - only on the AI-confirmed good leads
  8. Export to sending tool - load into Smartlead or Instantly and go

Notice how far enrichment is down the list. You do the cheap, fast, free work first. You kill leads with a keyword search before you pay a single cent to find their email address. By the time you're running GPT calls and email lookups, you're only touching the leads that actually deserve it.

On this guy's list of 100,000 domains, I'd estimate we could have cut the usable universe down to something in the range of 10,000-20,000 qualified, live, relevant domains before touching enrichment. Every API credit spent on the other 80,000+ would have been wasted. That's not a rounding error - that's the entire economics of the campaign.

Why This Matters Even More at Scale

When you're sending to 5,000 leads, over-enriching is annoying. When you're sending to 300,000 leads a month - which is where this guy is trying to get - it becomes the thing that either makes the unit economics work or blows the whole operation up.

The point we kept coming back to on the call: if the ICP signal is strong enough - meaning these companies are already paying $2,500/month for Drift, or $1,800 for a similar solution - then you don't need to infer much. The fact that they're paying for the competitor is the qualification. You don't need AI to tell you a company spending $2,500/month on live chat software is a qualified prospect for a better live chat product. The tech stack data does that work for you.

So the AI calls and the custom enrichment aren't doing the heavy qualification - they're doing the personalization layer. And that's an important distinction. If you're using AI to decide whether someone is qualified, you're using it wrong at scale. Use AI to personalize the message to someone you already know is qualified. Use the cheap filters to decide who's qualified.

This is the same logic behind targeting competitors' customer bases in the first place. If someone is paying Intercom $1,000+ a month, they've already self-selected as a live chat buyer. They've proven budget. They've proven intent. The segmentation work is done for you - as long as you don't undo it by mixing garbage into the list.

The Specific Sources That Actually Have Qualified Leads

On the call, we mapped out which technology-specific lists were most worth pursuing. The logic was simple: the higher the price of the competitor product, the more pre-qualified the lead.

Drift starts at $2,500/month. Intercom charges per resolution - about a dollar per conversation at scale. LivePerson is in similar territory. LiveChat starts around $100/month with mandatory seat minimums. If a company is paying any of these numbers, they've got budget, they've got a use case, and they've already bought into the category. That's your warmest possible cold outreach target.

BuiltWith is one of the best sources for this because you can filter by exact technology - pull everyone using Drift, everyone using Intercom, everyone using LivePerson - and you get a database of companies that are already paying for exactly what you're selling, just from a different vendor. The BuiltWith database for some of these tools can be 14,000+ companies in a single pull, which is massive for a tightly targeted campaign.

The Fiverr play is worth knowing about here too: instead of paying BuiltWith's subscription pricing directly, you can find freelancers who will pull specific technology lists for $20-40 per pull. If you need three lists, you might pay $45 for all three. It's a real option when you're testing before you know which competitor's customer base is converting best.

If you want to build and enrich these lists yourself, ScraperCity's B2B lead database and Apollo scraper are worth having in the stack alongside BuiltWith pulls - especially when you need to cross-reference or verify what the technology data is telling you.

Need Targeted Leads?

Search unlimited B2B contacts by title, industry, location, and company size. Export to CSV instantly. $149/month, free to try.

Try the Lead Database →

The Enrichment Workflow Itself

Once your list is clean, the enrichment side of this is pretty straightforward. Here's what we were running:

The key insight here: you generate the AI-personalized email copy only at the very end, only for leads that have cleared every gate. Not for 100,000 domains. For the 8,000-15,000 that survive the full gauntlet.

That's how your cost-per-qualified-lead stays under control. That's how you keep the unit economics clean when you scale to 300,000 sends a month.

For the sending infrastructure side, make sure your domains are warmed up before any of this goes out. The Cold Email Manifesto covers the warm-up requirements in detail - at minimum two weeks of ramp before you touch real leads, and you scale volume based on deliverability performance, not impatience. You can grab the framework at the Cold Email Manifesto resource page if you need the full methodology.

One More Thing About Stale Data

Even after you've killed the garbage leads and enriched the good ones, there's one more problem lurking in almost every list: stale contacts. I've run Apollo lists that showed 26% of "valid" leads were either using a dead email address or no longer employed at the company. Green checkmark, verified status, completely useless.

The way to handle this at scale is to run a LinkedIn employment check as part of your enrichment flow - after you've found the email, confirm the person is still at the company before you send. If they've moved on, find their replacement in the same role. This sounds like extra work but it's not - it's the difference between a 3% reply rate and a 1% reply rate, which at scale is the entire margin of the campaign.

If you want the full lead validation framework - how to build lists, qualify them before enrichment, and verify before sending - the Best Lead Strategy Guide walks through it.

The Bottom Line

The mistake isn't pulling a dirty list. Dirty lists are inevitable - every BuiltWith pull, every Apollo export, every data purchase has garbage in it. That's just the nature of web-scale data.

The mistake is treating enrichment as the first step instead of the last step. Every API call you make on a lead you're going to delete is money and time you burned for nothing. The exclusion list isn't an afterthought. It's the first thing you build. It runs before anything else touches the data.

Kill the leads you don't want. Then enrich what's left.

If you want to see how to build the full outbound system - the sourcing, the filtering, the enrichment workflow, the sending infrastructure, all of it - that's exactly what we work through inside Galadon Gold. We go hands-on with the actual tools, the actual workflows, and the actual copy - not theory.

The $44 my guy spent learning this lesson was cheap tuition. Make sure yours is too.

Ready to Book More Meetings?

Get the exact scripts, templates, and frameworks Alex uses across all his companies.

By entering your email you agree to receive daily emails from Alex Berman and can unsubscribe at any time.

You're in! Here's your download:

Access Now →