Not a listicle. Our actual stack, fully transparent -- what we use, what we tried, what we dropped, and what it costs.
Rees Bayba
Founder, Astra GTM
TL;DR
We run outbound for 10+ clients simultaneously. That means we have tested nearly every cold email tool on the market -- some for weeks, some for years. This is the exact stack we use today, what each piece costs, and why we chose it over the alternatives. No affiliate links. No sponsored placements. Just what works.
Cold email infrastructure has six layers. You can think of them as a stack -- each layer depends on the ones below it. Skip a layer and the whole thing breaks. Over-invest in one layer and you waste money. Here is how we think about each one.
Data is the foundation. If you start with bad data, every layer above it -- copy, infrastructure, sending -- is wasted effort. The single most important thing we learned: never rely on one data provider. Every provider has gaps. The only way to get 90%+ email coverage is to chain multiple providers in a waterfall.
We run contacts through multiple providers in sequence. Each provider catches emails the previous one missed. After every step, we verify with BounceBan before moving to the next provider. The waterfall runs automatically -- a contact enters at the top and exits with a verified email or gets flagged as unreachable.
| Provider | Cost per contact | Coverage (incremental) | Best for | Weakness |
|---|---|---|---|---|
| Blitz API | $0 (free tier) | 60-65% of emails found | First pass -- largest database, catches the easy ones | Lower accuracy on enterprise domains, stale data on job changes |
| LeadMagic | $0.05 | +15-20% additional | LinkedIn-sourced data, fresh job titles | Smaller database, less coverage on SMB |
| FullEnrich | $0.30 | +10-15% additional | Enterprise catch-all domains (Proofpoint, Barracuda) | Expensive for bulk use, slower response times |
| BounceBan (verification) | $0.003 | Verification layer -- not a data source | Confirming deliverability, catching risky emails | Cannot find emails, only verifies them |
The blended cost comes out to $0.05-0.15 per contact for most lists. Expensive contacts are the enterprise catch-all ones that need FullEnrich. Cheap lists (SMB, well-known domains) are mostly covered by Blitz at zero incremental cost.
Want this built for your team?
We implement these systems end-to-end. First campaigns live in 14 days.
Single providers max out at 60-70%. Our multi-source waterfall catches the remaining 20-30% by using each provider where it is strongest. BounceBan verification after every step ensures every email scores 97+ deliverability.
Raw contact data is not enough. You need context -- what the company does, what signals indicate they are a good fit, and what to actually say in the email. This is where most outbound teams cut corners, and it is where copy quality is won or lost.
Clay is our workflow builder for everything between raw data and campaign-ready contacts. We use it for ICP classification (scoring companies against fit criteria), company research (pulling technographics, news, hiring data), and generating personalization variables that feed into copy templates. Clay connects data sources, runs AI enrichments, and pushes results to wherever they need to go.
Claude powers our copy generation and signal classification. We use Haiku for bulk classification tasks -- categorizing companies, scoring intent signals, routing leads. Cost is roughly $0.001 per contact. We use Sonnet for copy generation where quality matters more -- first-touch emails, personalized opening lines, objection-based follow-ups. The key: good prompts matter more than model selection. A well-structured Haiku prompt beats a lazy Sonnet prompt every time.
Exa is AI-powered web search that finds signals no structured database captures. Recent funding announcements, leadership changes, product launches, conference appearances. We use it for account research and trigger-based personalization. When a company just announced a new market expansion, that is a signal you cannot get from a firmographic database. Exa finds it.
AI-powered classification and copy generation at scale costs almost nothing per contact when batched. The bottleneck is prompt quality, not compute cost. We spend more time tuning prompts than we spend on API fees.
Infrastructure is the layer most people get wrong. It is unsexy. It is technical. And it determines whether your emails reach inboxes or land in spam. We manage 100+ sending domains across all clients. Here is how we think about it.
We buy alternate sending domains for every client -- 3-5 variations of the client's brand. Never send cold email from your primary domain. If something goes wrong with deliverability, you want it contained to an alternate domain, not your company's main email. We buy .com, .co, and .io variants. Cost: $10-15 per domain per year.
Google Workspace at $6 per mailbox per month. Three mailboxes per domain. We have tested alternatives (Microsoft 365, Mailforge), and Google Workspace consistently delivers the best inbox placement rates. Microsoft 365 is a close second and sometimes preferred for campaigns targeting Outlook-heavy industries. Mailforge works for bulk but deliverability is slightly lower than Google Workspace in our testing.
Built into the sending platforms we use (Instantly and SmartLead both include warmup). Minimum 14 days, ideally 21 before sending any cold email. We keep warmup running on all active mailboxes, not just new ones. The networks send and receive emails that mimic real engagement -- opens, replies, rescues from spam -- which builds and maintains sender reputation with mailbox providers.
Thirty emails per day maximum per mailbox. That is our hard ceiling. Some people push 50 or even 100. We do not. The deliverability difference between 30 and 50 emails per day is significant -- we have tested it across thousands of mailbox-months. Here is how the math works for a typical client setup.
| Component | Quantity | Emails per day | Monthly cost |
|---|---|---|---|
| Domains | 10 | -- | $12/yr each ($10/mo total) |
| Mailboxes (3 per domain) | 30 | 30 each = 900 total | $180/mo |
| Warmup | Included | -- | $0 (platform feature) |
| Total capacity | -- | 900 emails/day = ~20,000/month | ~$190/mo |
Scale by adding domains and mailboxes, never by increasing per-mailbox volume. A client that needs 40,000 emails per month gets 20 domains and 60 mailboxes, not 10 domains sending 60 emails each.
Tested across thousands of mailbox-months. The difference between 30 and 50 per day is measurable: higher bounce rates, lower inbox placement, and faster reputation degradation at 50. Scale by adding mailboxes, not increasing volume per mailbox.
We have used four sending platforms extensively. Each has different strengths. We pick the platform based on the client's needs, not personal preference.
| Platform | Monthly cost | Best for | API quality | Weakness |
|---|---|---|---|---|
| Instantly | $30-80 | Quick setup, client-facing dashboards, simple campaigns | Good -- clean REST API, reliable webhooks | Limited multi-variant testing, fewer advanced sequencing options |
| Lemlist | $59-99 | Multi-channel (email + LinkedIn + phone), sales teams | Decent -- some quirks with contact ownership fields | Per-seat pricing gets expensive for large teams |
| EmailBison | Custom | High-volume multi-variant campaigns, agency operations | Excellent -- most flexible API of any platform we have used | Smaller user community, less documentation |
| SmartLead | $39-94 | Warmup network, multi-client inbox rotation | Unreliable -- webhook delivery issues, API inconsistencies | We moved away after 2 years due to API reliability problems |
CRM depends entirely on the client's existing stack. Most of our clients run HubSpot. Some run Salesforce. A few use Attio or Pipedrive. We do not dictate the CRM -- we integrate with whatever they have.
What we do own is the layer between campaign platforms and CRM. We built a custom system on Supabase (we call it Lead Ops) that tracks every contact, every activity, and every reply across all platforms and all campaigns. When a contact gets an email in Campaign A, gets a reply in Campaign B, and books a meeting through Campaign C, Lead Ops connects all of it. This is the piece most teams skip, and it is the reason most teams cannot answer basic questions like 'how many unique contacts have we reached this month?'
Each client gets 5-15 dedicated domains with 3 mailboxes each. All tracked through Lead Ops. No shared infrastructure between clients -- ever.
Campaign analytics come from the sending platforms natively -- reply rates, bounce rates, sequence completion. We do not build custom dashboards for what the platform already shows well.
What we do build: cross-campaign views in our Supabase dashboard that show aggregate performance across platforms. Slack alerts for positive replies (so clients see them instantly), bounces above threshold, and health checks on sending infrastructure. We monitor deliverability through Google Postmaster Tools for every sending domain. If a domain's reputation dips, we catch it in hours, not weeks.
If you are getting started with cold email and want to do it properly without overspending, here is the minimum stack that works. This handles 150 emails per day with verified data and proper infrastructure.
| Tool | What it does | Monthly cost |
|---|---|---|
| Instantly | Campaign sending + warmup | $30 |
| Google Workspace (5 mailboxes) | Sending infrastructure | $30 |
| 5 alternate domains | Brand-safe sending domains | ~$5/mo ($60/yr) |
| Apollo (free tier) | Basic contact data | $0 |
| BounceBan | Email verification | ~$15/mo (pay per verify) |
| Total | -- | $80-100/month |
This gets you 150 verified emails per day, 5 warm sending addresses, and basic contact data. It is enough to test whether outbound works for your business. The biggest gap: single-source data. Apollo's free tier finds maybe 50-60% of emails. You will miss contacts that a waterfall approach would catch. That is an acceptable trade-off when you are testing.
Here is what we actually spend to run outbound at scale across all clients. This is not a theoretical recommendation -- it is our actual monthly spend broken down by category.
| Category | Tools | Monthly cost |
|---|---|---|
| Data & enrichment | Blitz, LeadMagic, FullEnrich, BounceBan | $400-800 |
| Research & AI | Clay, Anthropic API, Exa | $300-600 |
| Sending infrastructure | 100+ domains, 300+ Google Workspace mailboxes | $800-1,200 |
| Campaign platforms | Instantly, Lemlist, EmailBison | $200-400 |
| Monitoring & ops | Supabase, Slack, Trigger.dev, custom tooling | $100-200 |
| Total infrastructure | -- | $1,800-3,200/month |
That covers 50,000+ emails per month across 10+ clients with 100+ sending domains. The per-client infrastructure cost is $200-400/month -- significantly less than what each client would pay to build and maintain this independently. That is the whole point of an agency model: shared infrastructure expertise amortized across clients.
For 50K+ emails/month, 10+ clients, 100+ sending domains. Per-client cost: $200-400/month. A single company building this from scratch would spend $500-1,500/month and 20+ hours per month maintaining it.
After testing hundreds of tools over three years, we have strong opinions about what is not worth your money. Three categories of tools consistently underdeliver.
Platforms that claim to do data, enrichment, sequencing, CRM, and analytics in one tool. They do everything at a B-minus level and nothing at an A level. Your data is mediocre. Your deliverability is mediocre. Your analytics are mediocre. Best-of-breed tools connected through a workflow builder (like Clay) outperform all-in-ones every time. The convenience of one login is not worth the performance penalty.
Tools that promise to 'write your cold emails with AI.' The output is generic, overly polished, and immediately recognizable as AI-generated. Gmail's spam filters are getting better at detecting AI patterns. More importantly, prospects are getting better at detecting them. AI is excellent for research, signal detection, and first drafts. The final email should sound like a human wrote it because a human reviewed it.
Companies that sell pre-configured sending infrastructure at 3-5x markup. They buy domains for $10, add Google Workspace for $6/mailbox, and sell you the package for $50-100 per mailbox per month. You can do this yourself in 30 minutes per domain. If you want someone to manage it, your agency should include it in their retainer -- not charge you separately at a massive markup.
When a new client starts, we do not give them the full stack on day one. We match the stack to the engagement. A client sending 5,000 emails per month does not need the same infrastructure as one sending 50,000.
The whole setup takes 2-3 weeks. Most of that time is domain warmup. The actual tool configuration is done in the first few days. By week 4, campaigns are live and sending.
The bottleneck is always domain warmup (14-21 days). Tool configuration, copy development, and list building happen in parallel during the warmup period. We do not waste the warmup window.
Email verification. Specifically, BounceBan. If we had to drop every tool except one, we would keep verification. You can recover from bad copy. You can recover from weak personalization. You cannot recover from a destroyed sender reputation caused by bounces.
Every email we send has been verified deliverable with a score of 97 or above. Not 90. Not 95. Ninety-seven. That threshold catches catch-all domains that accept everything but silently discard unknown addresses. Below 97, you are gambling. A single campaign with a 5% bounce rate can take a domain out of commission for weeks. Verification is the cheapest insurance in the entire stack at $0.003 per email.
Don't do this
Skip verification to save $15 on a 5,000-contact list. Five percent bounce. Domain reputation tanks. Three weeks of lost sending capacity across all campaigns on that domain.
Do this instead
Verify every email for $15 total. Remove 200 undeliverable addresses. Zero bounces. Domain reputation stays clean. Every campaign on that domain keeps performing.
How much does a complete cold email stack cost per month?
For a single company running 5,000-10,000 emails per month: $200-500/month covers a sending platform, 5-10 domains, 15-30 mailboxes, basic data, and verification. For an agency running 50,000+ emails across multiple clients: $1,800-3,200/month total, which breaks down to $200-400 per client in shared infrastructure costs.
Do I need Clay for cold email?
Not at the beginning. Clay is a workflow builder that shines when you are running complex enrichment sequences, scoring leads against multiple criteria, or chaining AI research into personalization variables. If you are sending fewer than 1,000 emails per month with a simple ICP, you can do everything manually or with a basic spreadsheet. Clay becomes worth it when the volume and complexity of your data processing exceeds what a human can do in a reasonable time.
Is Google Workspace better than Microsoft 365 for cold email?
In our testing, Google Workspace has slightly better inbox placement rates for cold email to Gmail recipients. Microsoft 365 has slightly better rates for Outlook recipients. If your ICP is heavily Outlook-based (enterprise, government, education), Microsoft 365 is worth testing. For mixed audiences, Google Workspace is our default. The difference is small -- maybe 3-5% in inbox placement -- but it compounds over thousands of emails.
Should I use the same sending platform as my agency?
Not necessarily. A good agency can work with whatever platform you already use. If you are starting from scratch, let the agency pick the platform -- they will choose the one their team operates most efficiently. If you plan to bring outbound in-house eventually, make sure the agency sets you up on a platform your future SDR team can use independently.
How many sending domains do I need?
Start with 5 domains (15 mailboxes, 450 emails per day capacity). Add domains as you need more volume. For reference: 10 domains gives you roughly 900 emails per day, or about 20,000 per month. Most single-company outbound programs never need more than 15-20 domains. Agency operations managing multiple campaigns per client might use 30-50 domains per client.
What is the most common mistake with cold email tools?
Buying too many tools too early. Companies sign up for Apollo, ZoomInfo, Clay, Instantly, Lemlist, and a dozen other tools before sending their first email. Start with the minimum viable stack (one data source, one sending platform, one verification tool, warm infrastructure). Add tools when you hit a specific limitation, not before. We have seen companies spending $4,000/month on tools while sending 500 emails per week. That is a $20 cost per email before you even write the copy.
Do I need a separate tool for email warmup?
Not anymore. Instantly, SmartLead, and most modern sending platforms include warmup built in. Dedicated warmup tools like Warmbox and MailReach still exist and work fine, but paying separately for warmup when your sending platform already includes it does not make sense for most teams.
How do we track attribution across multiple tools?
This is the hardest operational problem in outbound. A contact might be sourced from Apollo, enriched in Clay, emailed through Instantly, reply classified by AI, and meeting booked through Cal.com. We track attribution through our Lead Ops layer in Supabase -- every touchpoint gets logged to a single contact record. Without a unifying layer, you end up with data in six different tools and no way to answer 'which campaign generated this meeting.' Most companies do not solve this until they feel the pain of not having it.
We implement these systems end-to-end. First sends within 14 days.