SEO Autopilot
Hands-off SEO content and white-hat backlinks.
The problem
For every site, the SEO loop repeated: profile the market, find topics, write and publish structured posts, find backlink prospects, compare competitor links, draft outreach and check whether links stayed live. Automating the last click on backlinks would turn that workflow into spam and put the site at risk.
What it does
Point it at a URL. It fetches the site, auto-detects niche, keywords, and competitors, saves a profile, then runs the loop on its own: topic research → schema-tagged SEO post with FAQ and internal links → publish to WordPress, Shopify, or static HTML → backlink prospecting, competitor gap analysis, and personalised outreach drafts.
Deliberately white-hat only — no automated link placement, because that’s spam. Outreach drafts get written, but a human sends them. Scheduled through Task Scheduler: content Mon/Wed/Fri, links Tuesday.
Why it is built this way
I made one command build an isolated profile and working state per site, then run the repeatable research and publishing steps against WordPress, Shopify or static HTML. It uses the local Claude CLI, plain JSON and Windows Task Scheduler to avoid paid services; backlink placement and outreach sending remain human decisions, with preview files and explicit quality guardrails because the byline is still mine.
What was hard
Two things fought the automation. Model output is noisy, so the pipeline extracts the first valid JSON object out of a reply rather than trusting the whole response to parse. And batch runs pin their model explicitly, because inheriting a machine-wide default would quietly turn a scheduled job into an expensive one. Adding multi-site support later meant giving every site its own data and drafts namespace while keeping the original single-site paths working.
Outcomes
- One command per site
- Schema + FAQ built in
- Zero npm dependencies