# Automated Content Engine
**Build and run your blog by talking to ChatGPT Desktop or Claude Desktop.**

You create accounts, give prompts, approve content, and save domain changes. The assistant handles the technical work with **Neon**, Payload CMS, and the bundled MCP.
**[Download the PDF guide](https://raw.githubusercontent.com/legioncodeinc/automated-content-engine/main/Content-Engine-Guide.pdf)** · **[Read the guide online](GUIDE.md)** · [View the root PDF](Content-Engine-Guide.pdf)
The **illustrated guide is at the root**. Download it or read it online.
<a href="Content-Engine-Guide.pdf"><img src="plugins/content-engine/assets/guide-cover.png" alt="Cover of the Notorious Llama Content Engine desktop guide. Select to open the PDF." width="190"></a>
## Your path from signup to a live article
```mermaid
flowchart LR
A["Create your accounts"] --> B["Ask the assistant to set up"]
B --> C["Review a complete draft"]
C --> D["Approve that draft in chat"]
D --> E["Assistant publishes and checks it"]
```
**Start here:** [1. Accounts](#1-create-your-accounts) · [2. Install and set up](#2-install-and-set-up-in-your-desktop-chat) · [3. Your profile](#3-tell-it-about-your-business) · [4. First draft](#4-make-your-first-draft) · [5. Review and publish](#5-review-and-approve-in-chat) · [6. SEO and batches](#6-check-seo-or-plan-a-batch) · [7. Search Console](#7-register-with-google-search-console-optional)
## 1. Create your accounts
Reuse existing accounts.
| Account | Why you need it |
| --- | --- |
| ChatGPT Desktop or Claude Desktop | Builds the workflow; requires the relevant tools and connections. |
| [Neon](https://neon.com) | Stores your CMS records in a Postgres database. |
| [WorkOS](https://workos.com) | Checks who may use the CMS connection. |
| [GitHub](https://github.com) | Gives the assistant access to website code stored there. |
| Hosting and image storage | Runs the CMS and stores images. |
| [Google account](https://accounts.google.com/signup), optional | Used for Search Console. You can skip it or choose assisted/manual setup. |
Sign up and complete the secure sign-in or consent pages when asked. **Do not paste passwords, API keys, or database URLs into chat.** Ask the assistant to use free options unless you approve a cost.
**Check:** the assistant lists working connections and missing permissions. Signup alone does not connect an account.
## 2. Install and set up in your desktop chat
Open **ChatGPT Desktop** in a local Work or Codex task, or **Claude Desktop** in Cowork. Give that task access to your website project or its GitHub repository.
Paste this request, replacing the website details:
```text
Install Content Engine from:
https://github.com/legioncodeinc/automated-content-engine
Use setup-content-engine for my website:
[website URL and project folder or GitHub repository]
Use Neon for the database and WorkOS for MCP sign-in. Keep our
current frontend. Handle the code, included MCP installation,
connections, tests, and setup through your tools. Guide me
through any needed signup or secure sign-in. Use a test version
first. Do not spend money or publish an article without approval.
```
The assistant registers the existing plugin and starts setup. Complete secure sign-in or consent when asked. App controls vary by plan.
### What it builds for you
```mermaid
flowchart TD
A["ChatGPT Desktop or Claude Desktop"] --> M["MCP: draft tools"]
W["WorkOS: allowed sign-in"] -.-> M
M --> P["Payload CMS: drafts and content"]
P <--> N["Neon: database"]
P -->|"Published content only"| S["Your website"]
A -->|"After your approval"| E["Authorized CMS editor or browser"]
E -->|"Publish the named draft"| P
```
**Payload CMS** holds articles, authors, tags, and images. **MCP** provides limited CMS tools. Its source and guarded installer are bundled; the assistant finishes configuration and connection.
**Check:** it names all seven skills, lists real authors/tags, and saves one test draft that signed-out visitors cannot read.
Missing access must be named. Copied files are not a live connection.
## 3. Tell it about your business
```text
Create our Content Engine profile.
Business: [name and website]
Audience: [who we help]
Goal: [what readers should learn or do]
Voice: [how we should sound]
Approved claims: [facts we can prove]
Find our real internal pages, authors, tags, published posts,
and drafts through your authorized access. Check for topic
overlap. Save the profile and ask only for missing facts or access.
```
**Check:** real facts, links, author, and tags; gaps flagged.
## 4. Make your first draft
Start with one article.
```text
Use Content Engine's blog-content-stinger to answer:
[the reader's question]
Use our profile. Research primary sources, check the claims,
and avoid overlap. Add useful internal links, an excerpt,
SEO fields, and a unique 1920x1080 JPEG hero image. Use zero
em dashes. Review it, then save it as a draft in our CMS.
Show me the saved article and image. Do not publish.
```
**SEO fields** describe the page for search. A **hero image** is its main image. The assistant handles files, checks, uploads, and receipts.
**Check:** review the saved article, image, byline, tags, links, and search details in chat. Keep its post/image IDs, the values used to find those records.
The supplied image library is public, even while an article is a draft. Use assets suitable for public access.
## 5. Review and approve in chat
```mermaid
flowchart TD
A["Assistant saves a draft"] --> B["You review it in chat"]
B --> C{"Approve this draft?"}
C -->|"Revise"| D["Assistant updates the draft"]
D --> B
C -->|"Approve"| E["Assistant uses authorized publishing access"]
E --> F["Public page and metadata are checked"]
```
Ask for changes by post ID. Reuse a saved image unless you want a replacement. When the draft is ready, give a specific approval:
```text
I approve draft [post ID] for publication. Publish only this
draft through the authorized CMS route available to you.
Check the public URL, article, image, author, date, links,
and search details. Show me the readback result.
```
**The MCP cannot publish.** Your named chat approval needs a separate authorized CMS editor/browser route. Missing access must stay blocked, not become a claimed publication.
**Check:** you receive the public URL and an observed check of the published page. A draft receipt is not publication proof.
## 6. Check SEO or plan a batch
### Check the website
```text
Use Content Engine's seo-aeo-stinger. Check our public pages,
metadata, main URLs, share images, sitemap, article data, draft
privacy, and speed evidence. Explain issues simply. Fix agreed
items in the test version and show the before-and-after results.
Do not change live crawler rules or submit URLs without approval.
```
**AEO** helps AI answer tools read and use a page. The skill supports React, Next.js, plain Svelte, and SvelteKit. It is adapted only in this project; the original Wasp Nest skill is unchanged. No skill guarantees a ranking or AI citation.
### Plan more articles
```text
Plan [number] articles for [dates and time zone]. Use our profile
and current topic list. Show distinct topics for approval.
Then create the approved drafts with checked claims, images,
SEO fields, and saved receipts. Keep them private.
```
Keep pace with review capacity. Test unattended access first.
## 7. Register with Google Search Console (optional)
Search Console checks Google's access. Choose **computer-assisted**, **manual**, or skip.
```text
Use Content Engine's google-search-console. I choose [assisted
or manual] mode for [site]. Verify the property and submit my
checked public sitemap. Pause for me to click Save and Verify
on domain work. Never bypass me with an API or shortcut.
Ask before submitting the exact sitemap URL.
```
In **manual mode**:
1. Sign in to [Search Console](https://search.google.com/search-console). Select **Add property**.
2. Choose **Domain** for the whole domain, including `www` and `blog` addresses. Choose **URL prefix** for one exact address.
3. Before any DNS entry, confirm a separate Save action. Stop if the form autosaves or is unclear. Use only Google's exact record; preserve other records.
4. **Click Save yourself**, then the final Verify. No API, Enter, or provider bypass.
5. Open **Sitemaps**. Enter the checked XML sitemap/index URL, respecting any prefilled site prefix, and click **Submit**.
6. Read the status: Success means fetched/read, not that every page is indexed.

Redacted [tutorial example](https://rankmath.com/kb/submit-sitemap-to-google/), not your account. Use your own checked URL. The [root guide](GUIDE.md) has both routes and property examples.
## What the plugin includes
| Skill | Job |
| --- | --- |
| `google-search-console` | Optional assisted/manual property verification and sitemap submission, with user-only domain saves. |
| `setup-content-engine` | Leads setup in chat, connects Neon, and installs and wires the MCP. |
| `react-to-payload` | Adds Payload content to a React website. |
| `nextjs-to-payload` | Adds Payload content to a Next.js website. |
| `svelte-to-payload` | Adds Payload content to Svelte or SvelteKit. |
| `blog-content-stinger` | Researches, reviews, illustrates, and saves blog drafts. |
| `seo-aeo-stinger` | Checks and improves technical SEO/AEO for the site's framework. |
The [MCP source and installer](plugins/content-engine/mcp-server/README.md) are bundled. Setup needs the relevant tools and permissions. Each user connects their own CMS; generic maps have no active customer endpoint.
[Domain-save rule](plugins/content-engine/references/domain-change-control.md): the user makes the final committing click.
## If something gets stuck
Paste: **“Check the last receipt and name the exact missing tool, connection, or permission. Fix the issue through your tools. Do not repeat an uncertain save or expose a secret.”**
The [root guide](GUIDE.md) has troubleshooting prompts. Report issues or contribute fixes with redacted results; leave secrets out.
**Keep the guide handy: [download the PDF](https://raw.githubusercontent.com/legioncodeinc/automated-content-engine/main/Content-Engine-Guide.pdf).**
Licensed under [AGPL-3.0-or-later](LICENSE). See [notices](THIRD-PARTY-NOTICES.md).