Substack Autopilot
name: substack-autopilot
by caoqi · published 2026-03-22
$ claw add gh:caoqi/caoqi-substack-autopilot---
name: substack-autopilot
description: Automate Substack newsletter article drafting and publishing using OpenClaw native tools. Generate weekly articles from a topic queue, write brand-consistent long-form content, save drafts locally, open Substack in browser for final review, and notify via Telegram. Triggers on: "write this week's Substack", "generate Substack article", "automate newsletter", "draft Substack post", "weekly Substack".
---
# Substack Autopilot
Generate, draft, and prepare weekly Substack articles from a managed topic queue. Keeps a local article log and opens the browser for final human review before publishing.
File Structure
<workspace>/<brand>/substack/
├── article-topics.json — topic queue (see format below)
├── article-log.json — published article history
└── article-YYYY-MM-DD.md — generated draft filesTopic Queue Format (`article-topics.json`)
[
{
"id": 1,
"title": "How Creators Are Losing Money Without Knowing It",
"subtitle": "Platform fees, algorithm suppression, and what to do about it",
"angle": "platform-critique",
"used": false
}
]**Angle types:** See `references/article-angles.md` for content frameworks per angle.
Weekly Article Generation Flow
1. **Pick next unused topic** from `article-topics.json` (first where `"used": false`)
2. **Generate article** — use angle framework from `references/article-angles.md`
3. **Quality check** — score ≥ 70/100 before proceeding (see scoring below)
4. **Save draft** to `article-YYYY-MM-DD.md`
5. **Mark topic as used** in `article-topics.json`
6. **Log article** to `article-log.json`
7. **Open browser** to Substack new post editor for final review
8. **Notify via Telegram** — "Draft ready at [path] — please review before publishing"
If all topics are used: notify user to add new topics, then exit.
Article Quality Scoring (min 70/100)
| Criterion | Weight |
|-----------|--------|
| Hook strength (first paragraph) | 25 pts |
| Value density (actionable insights) | 25 pts |
| Brand consistency | 20 pts |
| CTA clarity | 15 pts |
| Structure / readability | 15 pts |
Rewrite once if below 70. Do not proceed if still failing after rewrite.
Article Format
# [Title]
[Subtitle / hook sentence]
---
[Body: 600–900 words]
[3–5 sections with H2 headers]
[Specific data, examples, or patterns — not vague claims]
[Final CTA: link to brand URL]Opening Substack in Browser
browser open → https://<publication>.substack.com/publish/post/new (profile: user)Wait for editor to load before notifying user. Do not auto-publish — always leave final approval to the human.
Cron Job Setup
**Recommended schedule:** Weekly, Wednesday UTC 13:00 (Stockholm 14:00)
schedule: { "kind": "cron", "expr": "0 13 * * 3", "tz": "UTC" }
sessionTarget: "isolated"
payload.kind: "agentTurn"
timeoutSeconds: 0See `references/cron-prompt-template.md` for a ready-to-use agentTurn prompt.
Telegram Notifications
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...