Bulk AI Generation

Bulk generation turns a list of topics into a batch of AI-written drafts. You upload a CSV of keywords, pick a template that defines tone and structure, set a cost cap, and jekcms queues the work and grinds through it in the background. When it's done you have 20, 50, or 200 drafts waiting for human review in the content queue.

This is the workhorse for content-heavy sites — niche blogs, affiliate sites, local directories. Used well, it saves days of writing. Used without review, it produces generic filler. Always review before publishing.

What bulk generation does

Given a CSV of topics and a template, jekcms generates one draft post per row. Each draft goes to the content queue in draft status — never auto-published unless you explicitly enable queue auto-publish rules. The batch runs on the ai.bulk_worker scheduled task, processing items one at a time so you stay under provider rate limits and can monitor cost as it accumulates.

The admin UI

Everything happens under Automation → AI Bulk Generation at admin/ai-bulk.php.

New batch form

  • Template: pick from the template library (more below)
  • Topics CSV: drag-and-drop, or paste. One topic per row. Supports extra columns passed into the prompt as variables ({{keyword}}, {{location}}, {{angle}})
  • Cost cap: hard limit in USD for the batch. If the running total hits the cap, remaining items are marked cancelled_cost_cap and skipped
  • Posts per minute: rate limit — default 3/min, max 20/min. Keeps you below OpenAI tier limits
  • Default status: draft (recommended) or scheduled (auto-publishes one per day from the queue)
  • Default category: applied to every post in the batch

Hit Start batch and the queue begins filling.

Template library

Templates are reusable shapes. Each defines:

  • System prompt — the AI persona and editorial rules
  • Structure — section outline the model must follow (intro, H2s, conclusion, FAQ, CTA)
  • Word count target — typically 800–2000
  • Tone — conversational, professional, technical, casual
  • Schema markup — toggle for Article, HowTo, FAQPage, Recipe

Create templates at Automation → Templates. Test against a single topic before you run a 100-item batch — catches prompt mistakes while they're cheap.

Monitoring a batch

The batch detail view shows each item with one of four states:

  • pending — queued, worker hasn't picked it up yet
  • generating — currently calling the AI provider
  • done — draft in content queue, click to open
  • failed — exception thrown; retry button shown with last error message

A live progress bar shows overall completion. The cost meter shows accumulated spend against the cap.

Reviewing drafts before publish

Click any done row to jump to the draft in the content queue. The editor shows the original topic, the template used, token count, and cost for that single item. Edit freely, then publish — or reject and the item goes to discarded.

Review discipline is the difference between good output and spam. A quick pass: fix the intro hook, verify any factual claims, trim filler, add one personal observation per post.

Cancelling mid-batch

The Cancel batch button stops the worker from picking up new items. In-flight items finish (can't abort a streaming generation cleanly). Pending items are marked cancelled_user. Already-done drafts stay in your queue — cancellation doesn't delete anything.

Retrying failed items

Failures happen: rate-limit hits, provider 503s, content filter blocks. The detail view has a Retry failed button that re-queues everything in failed state. If a specific topic keeps failing after three retries, edit it — the model probably choked on something in the prompt variables.

Cost dashboard

Automation → AI Bulk Generation → Cost shows per-batch spend, per-template average cost, per-month total, and per-provider breakdown. If your bills are creeping up, this is where you find the culprit batch.

Tier gating

Bulk generation is gated by license tier:

  • DEV / PER — up to 10 bulk batches per month (any size, bound by cost cap)
  • PRO — unlimited batches

If you hit the monthly cap on a lower tier, new batches refuse to start with Tier quota exceeded — upgrade or wait until next month. Upgrade from Settings → License to lift the cap immediately.

Practical tips

  • Start with a 5-topic test batch on a new template before committing to 100
  • Keep cost cap around 2x your expected spend — covers prompt retries without runaway risk
  • Don't run bulk generation during peak traffic hours; the worker loop adds DB and API load
  • Export the content queue to CSV periodically as a paranoia backup

Be the first to know

New features, release notes & CMS guides — a couple of emails a month, no spam.