How to Clean Your Apollo.io Export Before Loading into Instantly
Your Apollo export just landed in your Downloads folder. 5,000 contacts, filtered by title, industry, and company size. Looks clean. It’s not.
Independent testing puts Apollo’s real-world email accuracy between 65% and 80%, despite their claimed 91%. That means 1,000 to 1,750 of those 5,000 addresses will bounce, trigger spam traps, or hit dead inboxes. Load that file straight into Instantly and you’re looking at a bounce rate north of 15%. The industry standard is under 2%, and Google starts throttling senders whose spam complaint rate crosses 0.3%. Your sending domain won’t survive the first sequence.
This is the exact workflow I use to clean every Apollo export before it touches Instantly. No theory. Just the steps.
What Apollo Actually Exports
When you export contacts from Apollo, you get a CSV with columns like First Name, Last Name, Email, Title, Company, LinkedIn URL, Phone, City, State, Country, and Industry. You can customize which columns export through Apollo’s CSV Export Settings, but those are the defaults most SDRs work with.
The column that matters most: Email. And the problem is what Apollo doesn’t tell you about that column.
Apollo tags emails with statuses: “Verified,” “Likely to Engage,” “Unverified,” “Update Required,” and “Bounced.” Apollo recommends you only sequence contacts marked “Verified” or “Likely to Engage.” But “Verified” in Apollo doesn’t mean what you think it does. Apollo runs a 7-step verification process at enrichment time, not at export time. That contact’s email could’ve been valid months ago when Apollo last checked it. People change jobs. Domains go offline. Inboxes get deactivated.
The result? Even Apollo’s “Verified” emails bounce at 8-15% in real campaigns according to practitioner reports. “Unverified” emails are far worse, hitting 25-35% bounce rates based on user reports across Reddit and G2 reviews.
Step 1: Export and Prep Your CSV
Pull your list from Apollo. Go to your saved search or list, select all contacts, and hit Export. Choose CSV format.
Before you do anything else, open the file and check for basics.
Remove any rows missing an email address entirely. Apollo sometimes exports contacts where it couldn’t find an email, leaving that cell blank. These are dead weight.
Check for obvious duplicates. Apollo’s deduplication isn’t perfect, especially if you’ve run multiple searches against overlapping company lists. Sort by email column and scan for repeats.
Strip any columns Instantly won’t need. Instantly accepts Email (required), First Name, Last Name, Company Name, and up to 50 custom variables. Everything else is clutter. Keep your CSV lean: Email, First Name, Last Name, Company Name, and any personalization columns you’ll use in your sequences.
One formatting note that trips people up: Instantly requires UTF-8 encoding, column headers in the first row, column names under 20 characters, no duplicate column names, and no empty columns. If you’re on Excel, save as “CSV UTF-8 (comma delimited)” specifically. Not just CSV. The encoding matters. Also, Instantly’s variable matching is case-sensitive. {{firstName}} and {{firstname}} are two different variables.
Step 2: Run Every Address Through Validation
Stop the bleeding right here. Before that list gets anywhere near Instantly, validate every single address.
Upload your CSV to MailCop’s bulk validator. MailCop runs three-layer verification on each address: syntax check, MX record lookup, and SMTP handshake. That third layer is what separates real validation from Apollo’s surface-level checks. It actually connects to the recipient’s mail server and confirms the mailbox exists.
For a 5,000-contact list, bulk validation takes about 10-15 minutes. You’ll get back a results file with each address categorized: deliverable, undeliverable, risky, or unknown.
If you’re running this workflow regularly (you should be), MailCop’s API lets you automate the whole thing. Export from Apollo, hit the API, get results, filter, import to Instantly. No manual CSV juggling.
Step 3: Filter Your Results
Here’s where the real decisions happen. Not every category is black and white.
Hard bounces (undeliverable). Delete these. No exceptions. These addresses don’t exist, the domain is dead, or the server explicitly rejected the address. Sending to these destroys your sender score. One campaign with a 5%+ hard bounce rate and mailbox providers start throttling your domain.
Deliverable addresses. These passed all three validation layers. The mailbox exists, the server accepted it, and MailCop confirmed it’s active. These go straight into your Instantly import file.
Role-based addresses (info@, sales@, support@, team@). Remove them. Role-based addresses generate spam complaints at 3-5x the rate of personal inboxes because multiple people monitor them. These addresses also change hands frequently, so recipients often have no idea why they’re getting your email. One person marks you as spam and your complaint rate spikes. Not worth the risk for cold outreach.
Disposable and temporary addresses. Delete on sight. These are throwaway inboxes from services like Guerrilla Mail or Temp Mail. They’ll be dead within hours.
Catch-all and risky addresses. This is the gray zone. Catch-all domains accept mail to any address at that domain, whether the specific mailbox exists or not. Your validator can’t confirm these either way. For a full breakdown of how to handle these, read catch-all domains in outreach.
My rule: if catch-all addresses make up less than 20% of your cleaned list, include them but send from your strongest sending domain. Keep daily volume to these addresses low (10-15 per domain per day). Monitor bounce rates from that segment separately. If bounces spike past 3%, pull them immediately.
Step 4: Format and Import into Instantly
Your cleaned CSV needs specific formatting before Instantly will accept it.
Rename your columns to match Instantly’s expected headers. Email stays as “Email.” Map First Name, Last Name, and Company Name to those exact header names with capital first letters. Any personalization fields become custom variables, but keep those column names under 20 characters.
Remove any Boolean values (true/false) from your data. Instantly chokes on these. Convert to text or delete the column.
Double-check for merged cells, extra whitespace, and hidden characters. A stray space after an email address will cause a bounce that has nothing to do with the recipient.
Now import. In Instantly, go to your campaign, click “Upload Leads,” and drop your cleaned CSV. Map each column to the right variable. Confirm the preview looks correct. Hit import.
The Numbers After Cleaning
What does this workflow actually produce?
From a typical 5,000-contact Apollo export, I see roughly 3,200-3,800 deliverable addresses after validation. That’s a 24-36% reduction. Sounds painful. It’s not. Those 1,200-1,800 removed contacts would’ve destroyed your sending domain.
Instantly’s 2026 Cold Email Benchmark Report confirms what I’ve seen firsthand: campaigns using verified lists get 2x the reply rate of unverified ones and 5-6x the reply rate of purchased lists. The average cold email reply rate sits at 3.4% in 2026. Verified senders hit 5-8%. Top performers running clean lists and proper warm-up clear 10%.
Bounce rates tell the story even more clearly. Unverified lists average 7.5% bounces across the industry. Verified lists stay under 1.5%. The difference between those two numbers is the difference between a domain that lasts and one that burns in a week.
Why Apollo’s “Verified” Tag Isn’t Enough
A common question: if Apollo already marks emails as “Verified,” why run them through a separate validator?
Three reasons. First, Apollo verifies at enrichment time, not export time. Their database refreshes on a schedule, not on demand. If someone left their job two weeks after Apollo last checked, that “Verified” tag is stale. Second, Apollo’s 7-step verification relies on a mix of pattern matching, historical data from their contributory network, and selective server checks. That’s fast and cheap at scale, but it misses a lot. Third, Apollo claims a unique ability to verify catch-all domains using traffic data from connected inboxes and CRMs. That’s useful, but it’s still probabilistic, not a direct confirmation that a specific mailbox accepts mail today.
Apollo did roll out waterfall enrichment updates in late 2025 and early 2026, claiming 45% fewer bounces and better data freshness. That’s progress. But “fewer bounces” relative to their previous baseline still doesn’t guarantee the accuracy you need for cold outreach at scale.
MailCop’s three-layer approach catches what Apollo’s bulk verification skips. Syntax validation, DNS/MX lookup, and a live SMTP connection to the actual mail server. That third layer confirms the specific mailbox accepts mail right now, not whenever Apollo last ran its enrichment cycle.
Re-validate Before Every Major Send
Lists decay. B2B email data loses roughly 2-2.5% of valid addresses every month. Some industries churn faster. A list you cleaned 60 days ago has already lost 4-5% of its accuracy. ZeroBounce’s analysis of 11 billion+ emails found that at least 23% of any email list degrades annually.
If you exported from Apollo three months ago, don’t assume your cleaned list still works. Re-validate before loading into Instantly. Every time. The $0.003-0.01 per address is nothing compared to the cost of a burned sender domain.
My cadence: re-validate any list older than 30 days. If you’re running weekly Apollo exports into Instantly, validate each batch fresh. Don’t reuse last month’s results.
Sound paranoid? The teams running 10%+ reply rates in 2026 aren’t doing anything clever. They’re just disciplined about list hygiene. Clean list in, clean sends out. That’s the whole game.