Teardown No. 13 · Newsletter

How Sid Bharath turned his weekly Kit newsletter into a Claude Code skill

Sid Bharath had opt-in forms on every blog post but rarely sent a newsletter. He wrote a Claude Code skill called /newsletter. It reads his site's content index, finds posts from the last 7 days and drafts a short email in his voice. Once he approves the draft, it creates the broadcast in Kit through the Kit API v4 and offers to schedule it. He says the whole thing takes about two minutes, and he now sends every week.

Part of playbook: Run a weekly Kit newsletter with agents, and keep a human on the send button

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 .env file as KIT_API_KEY and keep .env in .gitignore. Test it with a call to https://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 /newsletter runs it.

What the skill does

  1. Find recent posts. It reads .content/content-index.json and keeps posts with a pubDate in 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.

  2. Draft in his voice. For each post it pulls the title, description, internalSummary and 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-blog skill. Output is simple HTML, and Kit handles the template.

  3. 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.”

  4. Create the broadcast. After he approves, the skill reads the key from .env. It then sends a POST request to https://api.kit.com/v4/broadcasts with 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.

  5. 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


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.