The problem
“I’ve been really erratic with my email marketing,” Sid writes. He was collecting subscribers, but sending meant logging into Kit and writing a newsletter, and “it just takes time.”
He says “I’ve moved fully to an agentic way of working.” His agent already polishes content, creates pages and posts, manages the content index, handles deployments and maintains internal linking. It also adds a Kit opt-in to each post, choosing from the opt-ins he has already set up, and it promotes his content on social media. The newsletter was the piece left over.
He wanted two things:
- A new opt-in tailored to each post, set up in Kit automatically.
- When he publishes a post, a summary queued up as a newsletter broadcast in Kit.
The blueprint (as he describes it)
Setup
-
Check what the Kit API supports. In his breakdown of Kit API v4, these have full CRUD:
- broadcasts
- subscribers
- tags
- custom fields
- webhooks
Forms are read only. Sequences are “Read + subscribe”. Visual automations have no API support. That ruled out auto-created opt-ins. Broadcasts are fully programmable, though, which covered the newsletter. He notes an API key gets 120 requests per 60 seconds.
-
Get a v4 API key and store it locally. In the Kit dashboard, go to Settings, then Developer, and generate a v4 key. Save it in a
.envfile asKIT_API_KEYand keep.envin.gitignore. Test it with a call tohttps://api.kit.com/v4/account. -
Create the skill file at
.claude/skills/newsletter/SKILL.md. The frontmatter description lists the phrases that should trigger it: “newsletter”, “send newsletter”, “create newsletter” and “weekly email”. Typing/newsletterruns it.
What the skill does
-
Find recent posts. It reads
.content/content-index.jsonand keeps posts with apubDatein the last 7 days that aren’t marked as drafts. If there are none, it tells him and asks whether to widen the window or write about something else. He notes that a folder of markdown files, checked by file date, would also work. -
Draft in his voice. For each post it pulls the title, description,
internalSummaryand slug. He wrote voice rules because “the default Claude output sounds like… Claude.” The rules are:- 2-4 short paragraphs max
- 1-2 sentences per post on why to read it, with a link
- a quick “hey” instead of a formal intro
- a “Sid” sign-off
- no emdashes or hyperbolic language
The skill also inherits the AI writing patterns to avoid from his
write-sids-blogskill. Output is simple HTML, and Kit handles the template. -
Show the draft. The skill displays the subject line and body. It then asks whether to create the broadcast in Kit as a draft or change something first. “I don’t want the skill to create the broadcast without me seeing it first.”
-
Create the broadcast. After he approves, the skill reads the key from
.env. It then sends a POST request tohttps://api.kit.com/v4/broadcastswith the subject, HTML content and description. The request follows a curl template written into the skill, so Claude doesn’t have to look up the API docs. -
Optionally schedule. It shows the broadcast ID and asks whether to schedule the email or leave it as a draft. Scheduling uses a PUT request that sets
published_at. If he says “Tuesday morning”, it defaults to the next Tuesday at 10:00 AM EST (15:00 UTC).
Stated results
- “The whole thing takes about two minutes.” Elsewhere he says it’s in Kit “in under two minutes.”
- Before the skill, he spent 30+ minutes writing each newsletter manually, “and half the time I just didn’t do it at all.”
- Before the skill, he sent “maybe 2 newsletters a month on a good month. Some months I sent zero.” Now he sends every week.
- “Most of the time the draft is good enough to approve as-is.” Most weeks he schedules it for Tuesday morning. Sometimes he leaves it as a draft and sends it from Kit after a final look.
- Open, click, reply or subscriber figures: None stated.
Caveats
- This is a first-person post about his own setup. The time and frequency figures are his own estimates.
- The post ends with an email opt-in. He is packaging the skill with setup instructions and bonus skills for tagging subscribers and checking broadcast stats, and sends them to people who give their email. No paid product appears in the source.
- A human stays in the loop. The skill won’t create the broadcast until he approves the draft, and it asks again before scheduling.
- Half of his plan isn’t built. By his account, the Kit API can’t create forms, sequences or automations. He says he has heard Kit is working on this and that he will update the post when it ships. That claim is his and was not checked for this draft.
- The API capability table is his breakdown and was not checked against Kit’s docs for this draft.
- The skill builds post URLs with
siddharthbharath.com, while the post itself is hosted at sidbharath.com. Check which domain is current before linking. - The post shows no publish date. Its sample API payloads use March 2026.
- X: Unverified not checked
Sources
- https://sidbharath.com/blog/automate-email-newsletter-claude-code/ (primary: Sid’s first-person walkthrough, including the skill text)
Want agents like these working your distribution? See the Agent Stack Teardown. Get new teardowns weekly: subscribe (double opt-in).
Get one teardown a week.
Same format, a new operator every issue. Double opt-in.