# Bulk Publishing from a Keyword List

> **What it does:** Paste up to 200 keywords — the AI writes every article (with SEO meta and optional images), sorts each into the right category, and publishes or drip-schedules them. Built for agencies.
>
> *Applies to Antradus AI Pro v2.0.0 · Last updated 2026-07-24*

## Where it lives

**Antradus AI → Bulk Publishing** — a dedicated page with three tabs: **➕ New Batch**, **⏳ Queue**, **📊 Reports**.

<!-- screenshot: bulk-publishing-from-keywords-1 — New Batch tab with a filled keyword list -->

## Step by step

1. Open **➕ New Batch** and choose the AI-writing mode.
2. Enter keywords, **one line per article**:
   ```
   best budget espresso machines
   how to descale an espresso machine
   espresso vs drip coffee
   ```
3. Fine-grained control per line with pipes — `keyword | category | title`:
   ```
   best budget espresso machines | Buying Guides | 7 Best Budget Espresso Machines We Actually Tested
   ```
   (Leave parts empty to let the AI decide: `keyword | | my exact title` works too.)
4. Pick the batch options (below) and start the batch.
5. Watch progress in **⏳ Queue** — or close the browser entirely; a background worker keeps processing (a couple of articles per minute) until the queue is done.

## Batch options explained

| Option | What it does |
|---|---|
| **Style / Tone / Language** | Applies to every article in the batch |
| **Publish status** | **Drafts** (review first — recommended for new clients), publish immediately, or **drip** |
| **Drip schedule** | Spread the batch over time (pick the interval unit) — e.g. one post every 6 hours. Posts schedule natively; WordPress publishes them on time |
| **AI categorizer** | Files each post under one of your **existing** categories — and only invents a new category when nothing genuinely fits |
| **Images** | Generate a featured image per post (image failures never kill an article — the post completes with a warning) |
| **Web search** | Research each topic live before writing ([details](../writing/live-web-search.md)) |

## 💡 The topic suggester (content-gap finder)

No keyword list yet? Click **💡 Suggest topics**:

1. Give it a seed phrase ("home espresso").
2. The AI reads your **existing post titles** and your categories, then proposes topics you *haven't* covered — real gap-filling, not random ideas.
3. Approve the ones you like — they're written into the list (with suggested title + category) ready to run.

**Allow NEW categories** controls where suggested topics get filed. Ticked: each idea gets one of your existing categories *only when its name genuinely describes the topic* — otherwise the AI invents a fitting new one (marked *new* in the preview). Unticked: topics that match nothing get an empty category for you to fill in yourself. Either way, a topic is never forced into an unrelated category.

## Managing a running batch (⏳ Queue tab)

- Live per-job status: queued → running → done (or failed with the reason).
- **Retry failed** re-queues only the failures.
- **Cancel** stops what hasn't started; finished posts stay.
- Delete a batch's records when you're done with them.

## 📊 Reports tab

Per-batch summary — written/failed counts and links to every created post — exportable as a **CSV report** you can send to a client. Full cost accounting is on the [Reporting page](reporting.md).

## Tips & gotchas

- **Start with drafts** for a new site or client — review a handful, tune your System Prompt if needed, then switch to publish/drip for the next batch.
- Drip + drafts don't mix: drafts stay drafts (nothing auto-publishes that you marked for review).
- Keep the keyword lines *specific* — "espresso machine maintenance schedule" beats "coffee" 200 times.
