DEV Community

Michael O
Michael O

Posted on • Originally published at xeroaiagency.com

How to Automate Your Newsletter with an AI Agent

Most people who try to automate their newsletter end up with something that sounds like it was written by a committee of robots. Technically correct. Completely dead.

The goal isn't to automate the newsletter. The goal is to automate everything except the parts that make it yours.

Here's how I set up the newsletter pipeline for Xero, what actually runs on autopilot, and where I stay in the loop.


Why newsletter automation fails for most people

The pattern I see: someone plugs their newsletter into an AI tool, tells it to write weekly emails, and the output is generic enough to work for literally anyone in their category. Which means it's actually useful to no one.

The problem is identity. Generic AI output has no point of view. No specific examples. No real opinions. Readers tolerate it for a few issues, then unsubscribe.

The second problem is trust. If you're running a fully autonomous newsletter with zero human review, one bad issue goes out, you look like you don't care, and unsubscribes spike. I've seen this happen. The agent isn't trying to damage your brand. It just doesn't know that this particular week, you don't want to reference a competitor that just did something sketchy.

The third problem is no system for what to write about. "Write me a newsletter" produces the worst output. "Here are three specific things that happened this week, here's my take on each one, now format this into an issue" produces something worth reading.

Get those three things right and automation stops being a liability and starts being a real time saver.


What should actually be automated

An AI agent can reliably handle:

Research. Sourcing recent news, product updates, Reddit threads, and industry developments relevant to your audience. This is the most time-consuming part of newsletter prep and the least creative. Hand it off entirely.

Summarization. Taking 10 sources and pulling the 3 most relevant points. The agent doesn't decide what matters to your readers — you set those criteria once in its system prompt.

First drafts. Given your voice doc, your format template, and this week's source material, an agent can produce a draft that's 70-80% there. The remaining 20% is your actual opinion and the details only you know.

Formatting and scheduling. Subject lines, preview text, section headers, send time, MailerLite integration. All mechanical. All automatable.

What should not be automated without review: the final send. I have a rule that no newsletter goes out without me reading it once. Not editing heavily, just reading. Takes five minutes and has caught several things I wouldn't have wanted to send.


The architecture: how the Xero newsletter pipeline runs

The newsletter agent runs on a weekly cron. Here's what happens in sequence.

Monday afternoon: source gathering

The agent pulls from a fixed set of sources. RSS feeds from relevant sites I've curated. Recent Twitter threads from accounts I track. The week's Reddit threads that got traction in relevant subreddits. Any product updates or announcements I've manually flagged during the week.

I have a simple system for flagging things mid-week. When I see something worth covering, I save it with a one-word tag in a running note. The agent picks that file up on Monday. It's maybe 10 minutes of passive curation across the whole week.

Monday evening: draft generation

The agent scores the gathered sources by relevance to the issue theme, then writes the first draft.

The prompt includes:

  • My voice doc (real examples of my writing, specific phrases I use, things I never say)
  • The section template (intro hook, three items with my take, CTA)
  • This week's sources with my notes where I left them
  • Examples of the five best previous issues ranked by open rate

The output lands in a Telegram message for my review. Not a formatted email, just the draft text. I read it on my phone during downtime, make notes if anything needs changing, and tap approve.

Tuesday morning: formatting and send

Approved drafts get formatted by a second agent step: sections, links, subject line variants, preview text. It runs through MailerLite's API and schedules the send for 9 AM Tuesday.

The whole pipeline from cron trigger to scheduled send takes under three hours with zero active time from me, except the five-minute review.


Building your own version

You don't need my exact stack. The architecture is what matters.

Step 1: Define what you're not automating

Before you build anything, write down the parts of your newsletter that are genuinely yours. A specific recurring segment? Your actual opinion on something? Examples from your own experience? Those stay manual. Everything else is a candidate for automation.

Step 2: Build a voice doc

This is the single most important file in your newsletter system. Pull 8-10 paragraphs from your best previous issues. Note what makes them sound like you. Specific phrases. The way you open. The way you end. Whether you use contractions. What you absolutely don't say.

Your agent will produce slop without this. With it, the output is actually editable.

Step 3: Create a source list

Write down 10-15 specific sources you already check when preparing your newsletter. RSS feeds, Twitter lists, specific subreddits, newsletters you read yourself. This is your agent's research brief. It searches these sources, not the whole internet.

Adding the whole internet as a source scope is what produces generic output. Constraining it to the 15 sources you actually care about produces relevant output.

Step 4: Define your issue template

What does a good issue look like? How many items? What's the standard CTA? Does it have a recurring segment? Write this as a template with placeholders. The agent fills in the template, not a blank page. Filling in a template produces far better output than generating freeform.

Step 5: Build the review gate

A human approval step before every send. Non-negotiable. Telegram works well for this — the agent sends the draft, you reply with "approve" or "edit + [notes]". The agent waits.

This isn't about distrust. It's about the 5% of cases where something is off in a way the agent can't detect.

Step 6: Wire the send step

MailerLite, ConvertKit, Beehiiv — all have APIs. The agent formats the draft, creates the campaign via API, schedules it. You never log into the dashboard unless something breaks.


The voice problem, specifically

Every automated newsletter eventually hits the same wall: the agent loses your voice somewhere around week three or four.

The cause is usually drift in the source material. Early issues are based on examples of your actual writing. Over time, if the agent is using its own previous output as reference, the voice drifts. It starts producing a voice based on a voice based on a voice — a copy of a copy.

The fix is refreshing your voice doc. Every month or two, pull new examples from your recent best issues, replace the old ones in the voice doc. Keep it current. The agent should always be calibrating against your actual recent writing, not stale examples.

The second fix is reading every issue before it goes out. Not because you don't trust the agent, but because you catch drift before it compounds.


Metrics to watch

Once the pipeline is running, track three things:

Open rate trend. If it's declining week over week, the content is losing relevance or the voice has drifted. Don't wait six months to investigate. Look at the last three issues and compare them to the three before. You'll usually see exactly when it changed.

Click rate. Are people actually following the links? Low click rate usually means the CTA is weak or the content isn't specific enough to make people want more.

Unsubscribe spikes. These are signals, not failures. A single issue that drives five unsubscribes is telling you something specific about that issue. Look at what was different.

The newsletter is the clearest signal you have that your agent is producing work people actually want to read. Treat these metrics as feedback on the automation, not just the content.


What this looks like at scale

The Xero newsletter runs three issues a week, each with a different focus: Monday news, Wednesday tool spotlight, Friday take. Each issue has its own source list and template. The same pipeline runs all three, with different prompts.

Total active time on my end: maybe 20 minutes a week. That's three reviews plus occasional source flagging. A newsletter that used to take 3-4 hours per issue now takes the pipeline 2-3 hours and me 7 minutes.

The quality hasn't dropped. The open rates have actually gone up since I systematized the format and made the CTAs more specific.

The reason it works is the human review gate and the voice doc. Every newsletter automation failure I've seen comes down to skipping one of those two things.


How this connects to an AI co-founder system

A newsletter pipeline is one module of a larger AI co-founder setup. The same architecture that runs the newsletter also runs social media, Reddit replies, SEO content, and analytics monitoring — all in one system with shared memory and a single identity layer.

If you're building toward a system like that, the Build an AI Co-Founder guide covers the full architecture. It's the reference for how to connect these pieces into something that actually runs your business while you're doing other things.

The newsletter is a good starting point because the feedback loop is clear and the stakes are low. Get this module right and the pattern applies to every other repeating task in your company.

For the AI agent structure that makes this kind of system possible — identity files, memory, guardrails — the AI agent architecture guide goes deep on the technical side.

Build the review gate first. Add automation second. Your readers will never know the difference, and you'll get your Tuesday mornings back.


Start Building Your Own AI System


Want to build your own AI co-founder?

I'm building Xero in public — an AI system that runs distribution, content, and ops while I work a full-time job.

Originally published at xeroaiagency.com

Top comments (0)