If you’ve tried running cold outreach at scale, you know the pain. Most lead databases don’t have enough data for niche industries. Manual research eats up your entire day. And by the time you’ve built a decent list, half the emails bounce anyway.
I’ve been there. After burning through multiple tools and a lot of trial and error, I landed on a stack that actually works. This guide walks you through exactly how to set it up.
The Problem With Most Cold Email Setups
Most people do cold email wrong. They buy a list from some sketchy provider, blast out the same generic template to everyone, and wonder why they’re getting 0.5% reply rates and landing in spam.
The issue isn’t cold email itself. It’s the approach.
You need three things to make cold outreach work:
- Quality data that’s actually accurate and relevant to your ICP
- Personalization that doesn’t feel like a mail merge from 2010
- Deliverability so your emails actually reach the inbox
Most tools force you to pick one or two. The setup I’m about to show you nails all three.
The Stack
Here’s what we’re working with:
- Apify for scraping company and contact data from anywhere
- Clay for enrichment, qualification, and AI personalization
- Smartlead (or Instantly) for warming, sending, and managing replies
Each tool does one thing extremely well, and they integrate natively so you’re not duct-taping everything together with Zapier.
- Apify
- Clay
- Smartlead or Instantly (Email Sequencing Tools)
Step 1: Scraping Data With Apify
Apify is basically a marketplace of web scrapers. You can find pre-built “actors” that pull data from LinkedIn, Google Maps, company websites, job boards, basically anywhere.
Why not just use traditional lead databases? Because they have gaps. If you’re targeting a niche industry, specific geography, or smaller companies, pre-built databases fall short. Apify lets you go directly to the source.
Some actors I use regularly:
- LinkedIn Company Scraper – pulls company descriptions, employee counts, industries, headquarters
- LinkedIn Profile Scraper – gets individual contact details
- Google Maps Scraper – great for local businesses
- Website Crawlers – pulls text from company about pages, team pages, etc.
The key here is you’re not limited to what some database decided to track. You can scrape whatever signals matter for your ICP.
Setting Up an Apify Actor (Monthly Free $5 Usage)
- Create an Apify account
- Go to the Apify Store and find the actor you need
- Click “Create Task” to add it to your library
- Configure your search parameters (location, industry, keywords, etc.)
- Run the actor and let it collect your data
You can run these manually or schedule them to pull fresh data on a regular basis. The output is structured data you can export as JSON or CSV.
But here’s where it gets good – you don’t need to export anything manually.
Step 2: Enrichment and Qualification in Clay
Clay is where the magic happens. It connects directly to Apify, so you can run actors from inside your Clay table. No exporting, no importing, no copy-pasting between tools.
But enrichment is where Clay really shines. It has access to over 150 data providers. Instead of picking one and hoping it has what you need, you can “waterfall” through multiple sources until you get a hit.
What Clay Can Enrich
- Verified email addresses (waterfalling through Hunter, Clearbit, Prospeo, etc.)
- Direct phone numbers
- Tech stack (what tools the company uses)
- Funding data and investor info
- Recent hiring activity
- News and press mentions
- Social profiles
And if a standard provider doesn’t have what you need, Clay has an AI agent called Claygent that can scrape any website and pull custom data points you define.
Setting Up the Apify Integration in Clay
- In Clay, go to Settings > Connections
- Add your Apify API key
- In any table, click “Add enrichment” and search for Apify
- Select “Run Apify Actor” and choose which actor to run
- Map the input fields and run it
Your scraped data flows directly into Clay columns. From there you can add enrichment steps to fill in emails, phones, and whatever else you need.
Qualifying and Scoring Leads
This is where most people stop, but you shouldn’t. Having data isn’t enough. You need to filter it.
Clay lets you build AI-powered columns that run prompts against each row. You can:
- Score companies against your ICP (1-10 fit score)
- Flag disqualifiers automatically (“too small,” “wrong industry,” “no budget signals”)
- Tag leads by segment for different messaging tracks
Set up a formula column with a prompt like:
“Based on this company’s description, employee count, and industry, rate their fit for [your product] on a scale of 1-10. Only companies in [target industries] with [X-Y employees] should score above 7. Return just the number.”
Now you can filter your table to only show leads that score 7+. You’ve just automated what would take a human hours of research.
Step 3: AI-Powered Personalization
Generic emails don’t work anymore. But manually researching every prospect and writing custom intros doesn’t scale.
Clay fixes this. You can create columns that use GPT to write personalized content for each lead based on the data you’ve collected.
Writing Personalized First Lines
Add an AI column with a prompt like:
“Write a casual, 1-sentence opening line for a cold email to [first name] at [company]. Reference something specific from their company description: [company description]. Don’t be cheesy or use buzzwords. Keep it natural.”
This generates a unique opener for every single lead. Not “I saw you’re in the [industry] space” garbage – actual personalization based on real data.
Writing Full Email Drafts
You can take it further and have AI write entire email bodies. Feed it your value prop, the lead’s context, and any relevant signals (recently raised funding, hiring for specific roles, using a competitor tool), and let it draft a customized email.
I’d still recommend reviewing these before sending, but it cuts your writing time by 80%.
Step 4: Pushing to Your Sending Tool
Once your leads are enriched, qualified, and personalized, you need to actually send the emails. Clay doesn’t send emails itself, but it integrates natively with the best sending tools.
I use Smartlead, but Instantly works just as well. Both handle:
- Inbox warming
- Multi-inbox sending
- Automated follow-up sequences
- Reply detection and management
- Deliverability monitoring
Setting Up the Integration
In Clay, add an enrichment step and search for Smartlead (or Instantly). You’ll need your API key and campaign ID.
Map your columns to the email tool fields:
- Email address
- First name
- Company name
- Your custom personalization fields (first line, body, etc.)
Run the enrichment and your leads get pushed directly into your campaign. No CSV exports, no manual uploads.
Step 5: Deliverability (Don’t Skip This)
This is where most cold emailers blow it. You can have perfect data and amazing copy, but if you’re landing in spam, none of it matters.
Warm Your Inboxes First
Before you send a single cold email, warm your inboxes for 2-3 weeks minimum. Both Smartlead and Instantly have built-in warming that sends emails between real accounts to build sender reputation.
Don’t skip this. Don’t rush it. A warmed inbox can send 50 emails per day reliably. A cold inbox will hit spam almost immediately.
Use Multiple Domains
Never send cold email from your main domain. If that domain gets flagged, you’ve killed your entire company’s email reputation.
Instead, buy 3-5 similar domains. If your company is acme.com, grab:
- acme-mail.com
- getacme.com
- acmehq.com
- tryacme.com
Set up inboxes on each, warm them all, and spread your volume across them. If one gets burned, you’ve got backups.
Monitor Your Metrics
Keep an eye on:
- Bounce rate – keep under 3%
- Spam complaints – anything above 0.1% is a problem
- Open rates – below 30% usually means inbox placement issues
- Reply rates – your actual success metric
If bounce rate spikes, your data quality is bad. If spam complaints rise, your copy is too aggressive or you’re hitting the wrong people. If open rates tank, you’re landing in spam.
Putting It All Together
Here’s the full workflow:
- Apify scrapes companies matching your criteria
- Clay pulls that data into a table automatically
- Clay enriches with emails, phones, tech stack, signals
- Clay’s AI scores leads and filters out bad fits
- Clay’s AI writes personalized openers for each lead
- Clay pushes qualified, personalized leads to Smartlead
- Smartlead sends warmed, sequenced emails across multiple domains
Once this is set up, it runs on autopilot. You can schedule Apify to scrape weekly, Clay to enrich automatically when new rows come in, and leads flow into your campaigns without you touching anything.
Expected Results
With this setup running properly, you should see:
- 40-60% open rates (vs. 15-20% with generic approaches)
- 5-15% reply rates (vs. 1-3%)
- 80%+ inbox placement (vs. landing in spam)
The difference is quality over quantity. You’re sending fewer emails to better-fit prospects with relevant messaging. That’s what actually books meetings.
Quick Start Checklist
If you want to get this running fast:
- Sign up for Apify and Clay and Smartlead/Instantly
- Buy 3-5 secondary domains for sending
- Set up inboxes and start warming (2-3 weeks)
- While warming, build your first Clay table
- Connect Apify and run your first scrape
- Add enrichment columns for email and key signals
- Add AI columns for scoring and personalization
- Connect Clay to your sending tool
- Start with 20-30 emails/day per inbox and scale up slowly
Tools Mentioned
Apify – Web scraping platform with pre-built actors for LinkedIn, Google Maps, and more.
Clay – Data enrichment and workflow automation. 150+ providers, AI personalization, native integrations.
Smartlead – Cold email sending with built-in warming, multi-inbox management, and deliverability tools.
Instantly – Alternative to Smartlead with similar features. Some people prefer the UI.
Got questions about any part of this? Drop a comment below or hit me up directly. Happy to go deeper on whatever piece you’re stuck on.
