← back

How to Get Out of Spam Jail

Getting put in spam jail can feel like an injustice. What was your crime? Why does it feel like a black box?

The standard fixes are getting a new domain (which doesn't fix the root problem) or paying a "deliverability vendor" (one quoted us about $40K a year). I spent a lot of time going deep and solving it myself.

Deliverability isn't magic. The problem lives in one of seven measurable places. With Claude Code and APIs we already paid for, we found ours and got out of spam jail in six weeks.

2% 4% 6% 8% 2% = healthy 6.6% Jun 8 Jul 6 Aug 3 2.4% Aug 17

Weekly bounce rate on the sales team's 1:1 email.

7.4% → 2.5%
Bounce rate in six weeks
16,000
Dead emails removed
50
Sales reps

The rap sheet

I identified seven places a deliverability problem can live. Each area can be measured.

PlaceInstrumentWhat ours said
Domain authdig (SPF, DKIM, DMARC)No SPF record at all. DMARC reporting to nobody
BlocklistsSpamhaus, SURBL, BarracudaClean
List healthMillionVerifier bulk check12.8% of 125,000 emails dead
Mailbox healthPer-rep bounce pull from the CRMA few reps over 20% bounce, others at 2%
Sending behaviorAsking the repsAddresses sourced from ChatGPT, Grok, Gemini
Provider verdictGoogle Postmaster ToolsSpam rate 0.4-0.7% vs the 0.3% ceiling. Reputation HIGH
Email contentReading the actual sendsMostly plain text. One mailbox: 190 same-subject sends in a day

1. Domain auth

What it is. Three DNS records that prove your email actually comes from you. SPF lists which servers may send for your domain. DKIM signs each message. DMARC tells receivers what to do when a message fails, and where to send reports.

Good vs bad. Good: all three records live, and DMARC reports going to an inbox a human reads. Bad: missing records, or DMARC set to "do nothing and report to nobody."

What we found. One dig command, five minutes. Our domain had no SPF record at all. DKIM was fine. DMARC was reporting to nobody. Wrong for years, because nobody owned it.

The fix. SPF live the same week. DMARC reports now file to a monitored inbox. Once the reports stay clean for a few weeks, the policy tightens to quarantine.

2. Blocklists

What it is. Public lists of known spam senders (Spamhaus, SURBL, Barracuda) that mail providers check before delivering you.

Good vs bad. Good: not listed. Bad: listed. If you're on one, everything else waits until you work the delisting process.

What we found. Clean on all three. Ten minutes, one suspect ruled out.

The fix. Nothing to fix. But check this first anyway, because being listed changes the whole plan.

3. List health

What it is. The share of addresses in your CRM that are real, live mailboxes. Every dead one becomes a bounce, and bounces tell Google you don't know who you're emailing.

Good vs bad. Good: every address verified before anyone sends to it, bounce rate under 2%. Bad: a double-digit dead rate. Ours was double digit.

What we found. We ran all 125,000 CRM emails through MillionVerifier. 12.8% were dead. Sixteen thousand addresses that bounce every single time.

The fix. Purged all 16,000, with the original value backed up on each record. Bounce rate fell from 7.4% to about 5% in two weeks. New lists now get verified before a rep ever sees them.

4. Mailbox health

What it is. The same domain looks different sender by sender. Each mailbox has its own bounce rate, volume pattern, and warmup score.

Good vs bad. Good: every mailbox under 2% bounce, human-shaped sending. Bad: one mailbox blasting 190 copies of the same subject line in a day, or bouncing a fifth of its sends.

What we found. The per-rep pull settled the biggest question fast. A few reps were bouncing over 20% of their sends. Others on the same domain ran clean at 2%. The domain wasn't rotting. Specific mailboxes were.

The fix. A per-rep scorecard shared with sales leadership, bounced addresses purged on a schedule, and warmup scores tracked weekly so a sliding mailbox shows up before Google notices it.

5. Sending behavior

What it is. How addresses get into your CRM and how reps actually send. No tool measures this one. You find it by asking.

Good vs bad. Good: addresses come from verified sources. Bad: addresses come from guessing.

What we found. After the purge, bounces kept coming, and the new ones were hitting contacts that didn't exist at purge time. Something was refilling the database. So I asked the high-bounce reps where their addresses come from. All four gave the same answer: when a website doesn't list an email, they ask ChatGPT, Grok, or Gemini and send to whatever comes back. Not a rogue rep. The standard workflow. No DNS record fixes that.

The fix. A verify-before-send tool that keeps their hunting workflow: paste an address, get SAFE TO SEND or DO NOT SEND. Google SSO, so every check is attributed. 49 reps used it in the first two weeks.

6. Provider verdict

What it is. Google Postmaster Tools is Google's own scorecard on your domain: your actual spam-complaint rate and a domain reputation grade. It's the only ground truth for Gmail placement. Free, and most teams never set it up.

Good vs bad. Good: spam rate under Google's 0.3% ceiling, reputation HIGH. Bad: over the ceiling with reputation LOW. That's spam jail with the door closing.

What we found. Spam rate 0.4-0.7%, over the ceiling. But domain reputation still HIGH. Translation: the domain was saveable. No migration needed. That one answer changed the whole plan.

The fix. There's no direct fix. This number moves when everything above it moves. You watch it.

7. Email content

What it is. The emails themselves. Filters read everything: the subject line, the links, the images, the HTML weight, and how many identical copies you send.

Good vs bad. Good: plain text that reads like one person wrote it to another, one link at most. Bad: image-heavy HTML, embedded videos, stacks of links, designed templates. A newsletter-style email from a rep's mailbox reads as mass mail, because it is.

What we found. The sends were mostly plain text, but the CRM's Gmail integration adds an open-tracking pixel and signature images to every message. The bigger content problem was repetition: one mailbox sent 190 copies of the same subject line in one day. Identical content at volume is its own spam signal.

The fix. Blasts stopped. The rule now is simple: plain text, short, one link.

The dashboard is how we stay out

Every check above now lives on one page. It pulls the full email stack: CRM engagement data, mailbox warmup scores, Postmaster, the verifier, the transactional stream, raw DNS on every sending domain. It refreshes itself daily and answers "is the domain getting healthier" in ten seconds.

email healthrefreshed daily
Verdict
Getting healthier
Bounce 2.4%, down from 7.4%.
All fixes holding.
Bounce trend
11 weeks, one direction.
Provider verdict
Reputation HIGH
Postmaster spam rate 0.3%,
at the ceiling. Watching.
Domain auth
primary domainSPF DKIM DMARC
satellite 1SPF DKIM DMARC
satellite 2SPF DKIM DMARC
One broken record, caught same day.
Bounces by rep
rep 01
22%
rep 02
16%
rep 03
7%
rep 04
3%
rep 05
2%
List health
125K contacts verified.
Dead ones stay out.

A mockup of the dashboard. The real one is password gated and pulls live from seven sources. Want this for your own domain? I made a free DIY version you can fill in yourself.

That visibility is the whole win. Problems show up while they're small: a rep's bounce spike, a broken SPF edit, a warmup score sliding. We see it and fix it the same week, instead of finding out months later when replies dry up.

The receipt is the chart at the top of this page. 7.4% bounce in early July, 2.5% by mid August. The vendor's model projected 3.0% after a year on their platform.

How it's built

Stack

Dashboard
Python pull scripts + one static HTML page, password gated
CRM email data
HubSpot engagements API, sent/bounced by rep by week
Warmup scores
EmailBison API
Gmail truth
Google Postmaster Tools API

 

Verification
MillionVerifier
Cold baseline
Smartlead API
DNS checks
dig: SPF, DKIM, DMARC on every sending domain
Verify tool
FastAPI on Railway, Google SSO, per-rep usage log

Note

Sender reputation recovers on Google's schedule, not yours. Plan in weeks. And this covers sales-sent 1:1 email. Cold outbound and marketing email are separate streams with their own tooling. No product to install here. The rap sheet above is the whole method.