I recently revisited the “Vault” email sequence for the Maintainable Software Podcast. In 2025, we set up 27 emails, each featuring a popular past episode, and sent one every three weeks. I needed to find out how far subscribers had gotten, whether anyone had reached the end, and whether it was time to write new emails. And, while I was in there, I figured I’d review the whole thing.
At first glance, everything looked fine. Nobody had reached the end yet, so we didn’t need to write any new emails at the moment. But I still wanted to make sure every email matched our current formatting and that all the images and links worked.
Doing that across 27 emails would have taken too long, so I connected Claude to our Kit account to help me audit it. Here’s what we checked, what it caught, where it got things wrong, and what I’d check in any long-running email sequence.
What AI missed in the first pass
The first thing Claude flagged was the report showing zero recipients for the last 9 emails in the sequence. From my own check, it looked like it was running as intended and no one had reached that point in the sequence yet. So I asked, just in case something was broken, whether I needed to fix or restart the sequence somewhere. It checked a long-time subscriber’s history, and that showed emails still going out every 21 days, past the point where Claude expected the sequence to end. So its second theory was that the sequence was looping and resending old emails (which would have been so annoying).
Both theories were wrong.
I opened that same subscriber's profile in Kit and sent Claude a screenshot of their email history, which settled it right away. The sequence was fine; original subscribers hadn't reached the end yet. (Thanks for scaring me for no reason…)
So we got off to a rough start, but it got better.
Next, it caught and fixed a first-name greeting issue
Most of the emails open with "Hey {first name}," so anyone who signed up without a name would see "Hey ,". The standard fix is a default value, like "Hey there,". When Claude looked at the subscribers list, only one person had no name on file (and it looked like a bot). The real problem was the names that were showing up- people type their name into a signup form however they like, and Kit stores it exactly as typed.
So the list had greetings like these:
- "Hey Jane Smith," (a full name)
- "Hey jack," (all lowercase)
- "Hey james.lee@example.com," (an email address in the name field)
Claude made suggestions and gave me a list of names that I double-checked against their original sign-up info. I saved a copy of every original name so any change could be undone. There were a couple of anomalies, and I always ask Claude to check with me first when there’s an inconsistency, not guess, because things come up like this: It suggested using one subscriber's middle name, since that’s probably what he goes by, but flagged it as a guess. I said leave it alone- I think that guy knows his name.
Small fixes I would have missed
I ran a full QA on the entire sequence, and Claude caught a few smaller things.
- Subject lines used two different prefixes.
- One email had no preview text.
- The episode numbers in the headers were formatted inconsistently with our newer format.
- One header linked the wrong episode.
- A couple of episode images weren’t clickable.
- Every footer still linked to an account we don't use, and none linked to an account we do use.
The subject lines and preview text were simple. Claude updated those directly in Kit. The header and footer fixes lived inside the body of each email. Claude could have edited all 27 at once through the Kit connection. But Kit flagged that converting the emails for that kind of edit would drop a few settings: the spacing on mobile, a tag that's applied when someone clicks the logo, and a centering style.
Kit warned about this before anything changed, so nothing would have broken silently. I also didn't know whether anything depended on that tag.
Since the fix was cosmetic, I made those edits by hand in Kit's editor instead, where nothing gets stripped. It took a little longer, but it's the same trade-off we talk about with legacy Rails apps. The sweeping change is tempting, but sometimes, small, careful changes are the better option.
After I made all the manual changes, I ran another audit; Claude flagged a couple of inconsistencies, and then voilà! Everything was organized, correct, and consistent. Just the way I like it.
What I'd check for other long-running email sequences
- Check one real subscriber's history before trusting the reports. A report can say "zero recipients" when the real answer is "chill, we haven't gotten there yet."
- Look at the data the merge tags pull from, not just the tags. A fallback only helps people with no name on file. It does nothing for "Hey james.lee@example.com,".
- Back up before changing subscriber data. Save the original values so any change can be undone. I don’t love asking developers to help me fix something I broke!
- Keep subject lines and preview text consistent. Mismatched prefixes make one newsletter look like two.
- Check every link in the footer. Social accounts change. Old emails don't update themselves.
- Know when the sequence runs out. Ours runs out for the original subscribers in about six months, so we need to write new emails before then.
- Before a bulk edit, find out what else it will change. If the tool warns you, take the warning seriously.
- Verify after manual edits. Check the live version, not just the editor.
The human touch
Nothing was broken, but changes were needed.
Claude made the audit way faster. It read every email and every subscriber record in minutes. (It also got the biggest question wrong twice, but hey...) What made it work was the back-and-forth: it did the reading and checking, and I made the calls about what to change and what to leave alone.
If you want to see the Vault from the inbox side, subscribe to the Maintainable newsletter. New episodes, plus a few (recently audited!) favorites from the archive.