Wie man seinen Newsletter mit einem KI-Agenten automatisiert
Ein Claude-Agent liest meine Content-Queue, wählt den stärksten Blickwinkel der Woche, entwirft einen Newsletter in meiner Stimme, segmentiert die Liste nach Engagement-Stufe und plant den Versand über die Kit-API — alles ohne dass ich einen Editor öffne. Ich überprüfe eine gerenderte Vorschau und klicke auf Genehmigen. Die harte kreative Arbeit gehört mir; die mechanische Ausführung gehört dem Agenten.
Jeden Mittwoch. 28.400+ Experten. Kein Füllstoff.
✓ Prüfen Sie Ihr Postfach — klicken Sie auf den Bestätigungslink, um die Anmeldung abzuschließen.
✓ Sie sind angemeldet!
✓ Sie stehen bereits auf der Liste.
Inhaltsverzeichnis
Aktualisiert Juni 2026.
TL;DR: Ein Claude-Agent liest meine Content-Queue, wählt den stärksten Blickwinkel der Woche, entwirft einen Newsletter in meiner Stimme, segmentiert die Liste nach Engagement-Stufe und plant den Versand über die Kit-API — alles ohne dass ich einen Editor öffne. Ich überprüfe eine gerenderte Vorschau und klicke auf Genehmigen. Die harte kreative Arbeit gehört mir; die mechanische Ausführung gehört dem Agenten.
[Operator-Lektüre] Ein Newsletter, der konsistent versendet wird, schlägt einen, der “besser” ist, aber nur versendet wird, wenn die Inspiration kommt. Die Einschränkung war der Ausführungsaufwand, nicht die Ideen. Ich hatte Ideen; ich hatte nicht die Kapazität, sie jede Woche zu formatieren, zu planen und zu segmentieren. Der Agent hat diese Lücke beseitigt.
Der tatsächliche Engpass in den meisten Newsletter-Workflows
Die meisten Newsletter-Automatisierungsratschläge konzentrieren sich auf das Falsche: Willkommenssequenzen, Automatisierungen, Tagging-Logik. Das ist in Ordnung, aber es löst nicht das wöchentliche Erstellungsproblem.
Das eigentliche Problem ist folgendes: Sie wissen, was Sie sagen wollen, aber sich hinzusetzen, um es zu formatieren, die Betreffzeilen-Varianten zu schreiben, das richtige Segment auszuwählen und es zur richtigen Zeit zu planen, kostet 2-3 Stunden Kontextwechsel pro Woche. Multipliziert mit 52 Wochen haben Sie eine ganze Arbeitswoche damit verbracht, Newsletter zu versenden.
Der Agent übernimmt jeden Schritt nach “Ich weiß, was der Blickwinkel dieser Woche ist.”
Der Stack, den ich verwende
- Kit (früher ConvertKit) — die E-Mail-Plattform. Exzellente API, solides Abonnenten-Tagging, saubere Analytik. Die agentenfreundliche API hat mich überzeugt.
- Claude (Anthropic SDK) — die Generierungsschicht
- Cloudflare Workers — geplanter Auslöser (läuft jeden Dienstag um 8 Uhr CT)
- Airtable — Content-Queue und Genehmigungs-Posteingang
Wenn Sie nicht auf Kit sind, funktioniert dasselbe Muster mit jeder Plattform, die eine REST-API zum Erstellen und Planen von Broadcasts hat.
Schritt 1: Die Content-Queue
Der Agent braucht eine Wahrheitsquelle dafür, “worüber wir schreiben.” Meine ist eine Airtable-Tabelle mit Spalten:
Topic— der Blickwinkel oder die FrageStatus— Queue / Approved / SentTier— ob dies für alle Abonnenten oder nur für engagierte istNotes— alle Einschränkungen (diesen Ton vermeiden, diesen Link einfügen, usw.)
Jede Woche verbringe ich 10 Minuten damit, 2-3 Themen zur Queue hinzuzufügen. Das ist mein kreativer Input. Der Rest ist die Aufgabe des Agenten.
Schritt 2: Der Entwurfs-Agent
// workers/newsletter-agent/index.ts
import Anthropic from "@anthropic-ai/sdk";
import Airtable from "airtable";
const client = new Anthropic();
const VOICE_SYSTEM = `You are writing a weekly newsletter for Alejandro Rioja's subscribers.
His audience: founders and operators interested in AI agents, SEO, and growing a one-person business.
Voice: direct, first-person, practitioner. No hype, no "exciting times," no excessive bullet lists.
Structure every newsletter as:
1. One-sentence hook (the problem or observation)
2. The core insight (3–5 paragraphs, no headers, conversational)
3. One concrete action the reader can take this week
4. A short sign-off (2 sentences max)
Subject line: specific, outcome-oriented, under 50 chars. No clickbait.
Return JSON: { "subject": "...", "preheader": "...", "body": "..." }`;
async function getNextTopic(): Promise<{ id: string; topic: string; notes: string; tier: string }> {
const base = new Airtable({ apiKey: process.env.AIRTABLE_API_KEY }).base(process.env.AIRTABLE_BASE_ID!);
const records = await base("Newsletter Queue")
.select({ filterByFormula: "{Status} = 'Queue'", sort: [{ field: "Created", direction: "asc" }], maxRecords: 1 })
.firstPage();
if (!records.length) throw new Error("Queue is empty. Add topics.");
const r = records[0];
return { id: r.id, topic: r.get("Topic") as string, notes: (r.get("Notes") as string) ?? "", tier: (r.get("Tier") as string) ?? "all" };
}
async function draftNewsletter(topic: string, notes: string): Promise<{ subject: string; preheader: string; body: string }> {
const msg = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 2048,
system: VOICE_SYSTEM,
messages: [{ role: "user", content: `Write this week's newsletter on: "${topic}". Additional notes: ${notes || "none"}` }],
});
const text = (msg.content[0] as any).text.replace(/```json\n?/, "").replace(/```/, "").trim();
return JSON.parse(text);
}
async function scheduleWithKit(draft: { subject: string; preheader: string; body: string }, tier: string): Promise<string> {
const segmentId = tier === "engaged" ? process.env.KIT_ENGAGED_SEGMENT_ID : null;
const sendAt = new Date();
sendAt.setDate(sendAt.getDate() + ((4 - sendAt.getDay() + 7) % 7)); // next Thursday
sendAt.setHours(9, 0, 0, 0); // 9am CT
const payload: any = {
broadcast: {
subject: draft.subject,
content: draft.body,
description: draft.preheader,
send_at: sendAt.toISOString(),
email_layout_template: "minimal",
},
};
if (segmentId) payload.broadcast.segment_id = segmentId;
const res = await fetch("https://api.kit.com/v4/broadcasts", {
method: "POST",
headers: { "Content-Type": "application/json", "X-Kit-Api-Key": process.env.KIT_API_KEY! },
body: JSON.stringify(payload),
});
const data = await res.json();
return data.broadcast?.id ?? "";
}
export default {
async scheduled(_event: ScheduledEvent, env: Env) {
// Inject env vars
Object.assign(process.env, env);
const { id, topic, notes, tier } = await getNextTopic();
const draft = await draftNewsletter(topic, notes);
const broadcastId = await scheduleWithKit(draft, tier);
// Mark as Approved in Airtable (not Sent — human reviews the Kit preview before confirm)
const base = new Airtable({ apiKey: env.AIRTABLE_API_KEY }).base(env.AIRTABLE_BASE_ID);
await base("Newsletter Queue").update(id, { Status: "Approved", KitBroadcastId: broadcastId });
console.log(`Scheduled broadcast ${broadcastId} for topic: ${topic}`);
},
};Schritt 3: Der Genehmigungsschritt
Der Agent erstellt den Broadcast im Entwurfsstatus von Kit und markiert den Airtable-Eintrag als “Approved.” Kit sendet mir eine Benachrichtigung mit einem Vorschau-Link. Ich klicke darauf, lese es, und wenn es richtig aussieht, bestätige ich den Versand. Wenn ich Änderungen möchte, bearbeite ich direkt in Kit.
Das ist das Tor, das verhindert, dass der Agent beim ausgehenden E-Mail vollständig autonom wird. Ich vertraue den Entwürfen etwa 90% der Zeit. Die 10%, die ich bei der Überprüfung entdecke — ein leicht falscher Ton, eine Statistik, die ich verifizieren möchte, ein Link, den ich hinzufügen möchte — sind die 3-minütige Überprüfung wert.
Was der Agent übernimmt, das ich nie wieder tun möchte
- Betreffzeilen-Varianten schreiben und die beste auswählen
- Den Preheader-Text formatieren
- Die richtige Versandzeit berechnen (mein Publikum öffnet donnerstagmorgens; der Agent weiß das)
- Korrekt nach dem Tier des Themas segmentieren
- Alles in Airtable protokollieren, damit ich eine Aufzeichnung habe
Was mir noch gehört
Die Idee. Das Thema in der Queue ist meins. Der Blickwinkel ist meiner. Der Agent ist ein großartiger Ausführender eines klaren Briefings; er ist keine Strategieschicht. Wenn ich ein schlechtes Thema in die Queue stelle, bekomme ich einen gut geschriebenen Newsletter über ein schlechtes Thema.
Außerdem: das erste Überprüfungstor. Jeder einzelne Versand wird von mir überprüft, bevor er rausgeht. Das wird sich nicht ändern.
Das Fazit des Operators
Wenn Sie mehr als eine Stunde pro Woche mit Newsletter-Mechanik verbringen — Formatierung, Planung, Segmentierung — sollten Sie es automatisieren. Die Kit-API ist sauber, der Worker-Cron-Auslöser ist felsenfest, und die Claude-Entwurfsqualität ist hoch genug, dass ich ~90% der ersten Entwürfe unverändert genehmige. Bauen Sie die Queue in Airtable, verbinden Sie den Worker und kehren Sie zur Ideengenerierung zurück, anstatt Versendungen auszuführen.
Jeden Mittwoch. 28.400+ Experten. Kein Füllstoff.
✓ Prüfen Sie Ihr Postfach — klicken Sie auf den Bestätigungslink, um die Anmeldung abzuschließen.
✓ Sie sind angemeldet!
✓ Sie stehen bereits auf der Liste.
Holen Sie sich das KI-Playbook in Ihr Postfach
Jeden Mittwoch. 28.400+ Experten. Kein Füllstoff.
Prüfen Sie Ihr Postfach.
Wir haben Ihnen eine Bestätigungs-E-Mail geschickt — klicken Sie auf den Link, um Ihre Anmeldung abzuschließen. Prüfen Sie den Spam-Ordner, falls sie nicht innerhalb einer Minute ankommt.
Sie sind angemeldet.
Willkommen — die nächste Ausgabe landet bald in Ihrem Postfach.
Sie stehen bereits auf der Liste — halten Sie jeden Mittwoch Ausschau.