AutoBlog: a content calendar that publishes itself
Three ways to use it: let us pick ~20 keywords you can rank for and refill monthly, drop your own from Research and Competitor Gap, or skip AutoBlog entirely. A daily 8 AM UTC cron dispatches today's entries through the same 13-step article pipeline as the Article Writer. Auto-publish to WordPress or your webhook is one toggle.

Consistent content cadence is where SEO breaks
Generating one article is fine. Generating 20 a month, every month, on schedule, with quality intact — that's where most teams quit.
Publishing on a cadence is hard to keep up with
You commit to one article a week. By month two, you've slipped to one a fortnight. By month four, you've stopped — and your competitors haven't.
Generating articles one-by-one doesn't scale
Even with AI, clicking 'generate' for every article and copy-pasting into your CMS adds up. Doing 20 articles a month becomes a part-time job.
Disconnected stacks waste hours every week
Keyword tool → Doc → Editor → CMS → Schema generator → Featured image. Five tools, dozens of context switches, plenty of room for things to break.
Set-and-forget tools take away your control
Existing automation tools either publish nothing or publish everything. There's no way to pause a campaign, edit a scheduled post, or shift cadence mid-flight.
Plan once. Publish forever.
Optional automation — turn it on, off, or stay manual. Each step below is tied to actual code, not vague "automation magic."
Fill the calendar — your way
Three paths. (a) Click 'Generate keywords for me' and we pick ~20 you can actually rank for and spread them across 30 days. (b) Drop your own starred keywords from Research or Competitor Gap onto specific dates. (c) Skip AutoBlog entirely and stay in the Article Writer. Each entry is a discrete row in the content_calendar table — your plan, made explicit.
Configure CMS + auto-publish toggle
In settings: connect WordPress (URL + app password) or a generic webhook (URL + auth token). Then flip the auto-publish toggle. The calendar action button reflects the choice live — 'Write & publish' vs 'Write article.'
Daily 8 AM UTC cron dispatches
Once a day at 08:00 UTC, the cron pulls every calendar entry scheduled for today, batches them through Inngest (5 at a time, 2-second pauses to spread the SERP / Firecrawl burst), and runs the same 13-step article pipeline as the manual writer.
Auto-publish ships to your CMS
When the article finishes generating and auto-publish is on, a separate Inngest function pushes it straight to WordPress (with featured image upload + JSON-LD) or the configured webhook. Otherwise it lands as a draft for you to review and ship manually.
Same-day retry, then your turn
Anything stuck in 'generating' for 60+ minutes is auto-marked failed. A 14:00 UTC retry cron re-picks today's failures one more time. After that, failed cards expose a one-click re-trigger button on the calendar so nothing silently disappears.
Calendar, pipeline, publisher — all wired together
Every claim on this page maps to a specific code path. No vague "AI handles everything" — concrete crons, Inngest functions, and named CMS destinations.
Calendar & scheduling
Per-date calendar entries
Drag any saved keyword onto a specific date — each becomes a discrete row in the content_calendar table. The plan is your plan, not a black-box rhythm rule.
Multiple sources of keywords
Drop your own starred keywords from Keyword Research and Competitor Gap onto specific dates, OR click 'Generate keywords for me' for a one-shot pick of ~20 keywords spread across 30 days. Mix and match.
Optional monthly auto-refill
Toggle on Auto-refill in the toolbar and we pick fresh keywords on a rolling ~30-day cadence — your calendar stays topped up without intervention. Off by default; you stay in control of whether automation runs.
Daily 8 AM UTC dispatch cron
One cron, once a day. Pulls today's pending entries, batches them in groups of 5 with 2-second pauses, sends each through Inngest as an independent generation job.
Per-card status & action button
Every calendar card shows its live state — pending, in_progress, completed, failed — and the button label switches between 'Write article' and 'Write & publish' depending on whether auto-publish is on.
Generation pipeline
Same 13-step pipeline as Article Writer
Outline → draft → AI images → YouTube enrichment → citations → FAQ → schema → internal links. AutoBlog doesn't run a stripped-down version — same code path as a manual click.
AI-generated images
Each scheduled article gets on-brand AI imagery — featured image plus inline section illustrations. No stock photo libraries to wire up.
JSON-LD structured data
Article, FAQ, HowTo, BreadcrumbList, and (for local businesses) LocalBusiness schemas embedded into the published HTML. Rich-result eligible from day one.
Automatic internal links
Each new article links back into your existing blog corpus — internal links are placed by the same step that runs in the manual Article Writer, based on indexed sitemap content.
Publishing destinations
Native WordPress
REST API + application password. Publishes the article HTML, uploads the featured image to wp-media, sets categories, and updates the post — all sequential to handle slow WordPress hosts.
Generic webhook
Any custom CMS or no-code tool that can accept a webhook. Signed payload with retry-on-failure and HMAC verification — the same delivery used for our developer webhook integration.
Auto-publish toggle
One switch in settings. On = the article ships to your CMS the moment generation finishes (separate Inngest function fired by article/generated event). Off = lands as a draft for you to ship manually.
Auto-publish runs separately from generation
Generation and publishing are decoupled Inngest functions. If publishing fails (CMS down, auth expired) the article is still saved — just not pushed. Re-trigger from the dashboard once the CMS is back.
Reliability & feedback
60-min stuck-job cleanup
Articles still in 'generating' status after an hour are auto-marked failed (most jobs finish in ~5 min). Stops zombie cards from clogging the calendar.
14:00 UTC same-day retry cron
Six hours after the morning dispatch, a retry cron re-picks today's failed entries one more time. Catches transient SERP / API hiccups without your involvement.
Per-card manual re-trigger
If both auto-passes fail, the card stays failed with an error message and exposes a one-click re-trigger button. Nothing silently disappears.
Biweekly content refresh digest
Every 1st and 15th, a separate cron scans your published articles for ranking decay and emails a digest naming which articles to refresh. Works alongside AutoBlog — refresh-detected articles flow straight back into the calendar.
What Every Article Includes
Complete, publish-ready articles with all the elements needed to rank.

Intent-Aware Word Counts
Article length is optimized based on search intent
Publish Anywhere
Native WordPress support plus webhook integration for any platform.
WordPress
Native integration with one-click publishing
- Auto-publish on schedule
- Featured image upload
- Category & tag mapping
- Draft or publish mode
Webhook API
Connect to any CMS or custom system
- JSON payload delivery
- Custom field mapping
- Retry on failure
- Delivery confirmation
More integrations coming soon
Frequently asked questions
Set your calendar. Let AutoBlog publish.
Schedule a month of SEO-optimized articles. AutoBlog handles generation and publishing — you stay in control.
Cancel anytime