<!--
ROBOTS ON PAYROLL / THE VAULT
What this is: four prompts that take one seed keyword to a published, internally linked, GEO-structured post.
How to use it: download this file and give it to your AI (Claude, ChatGPT,
Cursor, Lovable chat) as a reference. Say: "Use this as my playbook for
running my content engine."
Latest version + full guide: https://robotsonpayroll.com/resources/seo-geo-engine
-->

# The Content Engine Prompts

Four prompts that take one seed keyword to a published, internally linked, GEO-structured post. Run them in order. Fill every [SLOT] before pasting; the slots are where your specificity comes from, and specificity is the whole game.

Works in any capable chat model (Claude, ChatGPT, Gemini). Paste one prompt per conversation so context stays clean.

Pipeline: seed keyword -> Prompt 1 (cluster) -> pick a topic -> Prompt 2 (outline) -> Prompt 3 (draft) -> human edit pass -> Prompt 4 (internal links) -> publish.

---

## Prompt 1: Keyword to cluster

Turns one seed into 20 intent-grouped topics, including the fan-out satellites that win AI Overview citations.

```
You are my SEO strategist. Turn one seed topic into a content cluster built for both Google rankings and AI-engine citations.

SEED TOPIC: [SEED_KEYWORD]
MY SITE: [DOMAIN], which sells [PRODUCT_ONE_LINER] to [AUDIENCE]
MARKET/LANGUAGE: [MARKET]
EXISTING POSTS ON THIS TOPIC (so you don't duplicate): [LIST_OR_"none"]

Generate exactly 20 topic ideas, grouped by search intent:
- 6 informational: what/how/why questions my audience asks before they know solutions exist
- 5 commercial investigation: "best X", "X vs Y", "X alternatives", "X pricing"
- 4 transactional: queries where the searcher is ready to act; map each to a landing or comparison page
- 5 fan-out satellites: the sub-questions Google's AI systems would split the seed topic into (definitions, costs, timelines, risks, comparisons, "for beginners"). These exist so my cluster appears across the most sub-query result sets.

For every topic, output one table row:
| # | Working title (question-phrased where natural) | Intent group | Primary query | 2-3 secondary queries | Funnel stage | The one thing this page must contain that no competitor page has (unique data, original test, first-party numbers) | Priority P1/P2/P3 (business value x winnability) |

Rules:
- No two topics may answer the same underlying question. If two overlap, merge them and generate a replacement.
- Commercial topics must name real category rivals, not placeholders.
- Flag any topic that only makes sense as a programmatic page set, and state what unique per-page data it would need to survive Google's scaled-content policies. If no such data exists, mark it DO NOT BUILD.
- End with: (a) a publish order for the first 5 posts and one sentence on why, (b) which single post should become the cluster hub.
```

**Usage notes:** the "one thing no competitor has" column is the quality gate. If you can't fill it for a topic, that topic will be page 2 commodity content; deprioritize it. Re-run the prompt with a different seed rather than publishing undifferentiated posts.

---

## Prompt 2: The outline (answer-first, GEO-structured)

Produces the skeleton with drafted answer blocks, evidence slots, and quotable lines already placed.

```
Build an answer-first, GEO-structured outline for one post from my content cluster.

POST TOPIC: [WORKING_TITLE]
PRIMARY QUERY: [PRIMARY_QUERY]
SUB-QUESTIONS TO COVER: [PASTE_FAN_OUT_ROWS or write "generate the 6-10 sub-questions a searcher would also ask"]
MY UNIQUE ASSET: [WHAT_I_HAVE_THAT_COMPETITORS_DONT: data, test results, screenshots, costs I paid, experience]
AUDIENCE AND WHAT THEY ALREADY KNOW: [DESCRIPTION]

Output this exact structure:

1. TITLE: 3 options, under 60 characters, primary query near the front, no clickbait.

2. DIRECT ANSWER BLOCK: a 40-80 word standalone answer to the primary query that an AI engine could quote verbatim with zero surrounding context. Write the actual text now, not a description of it.

3. H2 SECTIONS: 5-8 H2s, each phrased as a question or a claim so a skimmer reading only H2s gets the full argument. Under each H2:
   - the 40-80 word direct answer that opens the section (write it now)
   - supporting points as bullets
   - EVIDENCE SLOT: which statistic, named source, or expert quote goes here; write "NEEDS STAT: [description of the number to find]" if one must be sourced
   - FORMAT NOTE: table / numbered steps / bullets / prose, chosen for extractability, with one line on why

4. QUOTABLE LINES: 3 one-sentence, self-contained, opinionated lines, each assigned to a specific section, written so a human would forward them and an AI engine would quote them verbatim.

5. FAQ SECTION: 4-6 question-phrased H3s covering the sub-questions not already used as H2s, each with a drafted 40-80 word answer.

6. METADATA: meta description under 155 characters, URL slug, and a note on what should be re-checked at the 30-day update.

Constraints:
- Every number in the outline has a named source or a NEEDS STAT flag. Nothing unsourced survives to draft.
- No section exists for word count. If an H2 adds no new answer, cut it and say you cut it.
- No "What is [broad category]" section unless the primary query literally asks that.
```

**Usage notes:** resolve every NEEDS STAT flag yourself before running the draft prompt. The model finds shapes of arguments well; it does not find true current numbers well. That step is yours.

---

## Prompt 3: The draft (voice guardrails + no-fluff rule)

Writes the post from the outline, in your voice, with a fact ledger you verify before publish.

```
Write the full draft from the outline below. You are drafting in MY voice, not yours.

OUTLINE: [PASTE_FULL_OUTLINE_WITH_STATS_FILLED_IN]
VOICE SAMPLE: [PASTE_300_WORDS_OF_YOUR_BEST_WRITING]
FIRST-PERSON FACTS I CAN CLAIM: [WHAT_YOU_ACTUALLY_DID_TESTED_PAID: be specific; this is the only experience the draft may state in first person]
TARGET LENGTH: [WORD_COUNT] words. Hard cap. Coming in under is fine.

VOICE GUARDRAILS (binding):
- Match the sentence rhythm and vocabulary of the voice sample. When unsure, shorter.
- First person only for the facts I listed above. Never invent experiences, tests, costs, or results.
- Numbers over adjectives: "cut build time from 4 hours to 20 minutes" not "dramatically faster". No number, no superlative.
- Banned outright: "delve", "leverage" as a verb, "game-changer", "revolutionary", "unleash", "in today's fast-paced world", "it's important to note", "in conclusion", em-dashes.
- Every statistic keeps its named source and year inline, like "(Ahrefs, 2026)".

NO-FLUFF RULE (enforce ruthlessly):
- Every H2 section opens with its 40-80 word direct answer from the outline, then depth. Zero warm-up sentences.
- Delete any sentence that restates the previous sentence, previews what's coming, or summarizes what was just said. One idea, once.
- Paragraphs are 1-3 sentences. Lists of 3+ become bullets. Comparisons of 2+ things on 2+ attributes become tables.
- If a section runs short because there is nothing more true to say, leave it short.

OUTPUT:
1. The full draft in markdown, including the quotable lines from the outline placed in their sections.
2. FACT LEDGER at the bottom: a table of every number and factual claim in the draft, its source, and a CHECK flag on anything you were not explicitly given a source for.
```

**Usage notes:** the fact ledger is the deliverable that keeps you honest. Verify every CHECK flag before publishing; cut what you can't verify. Then do a human edit pass. The draft is a strong first 85%; the last 15% (your screenshots, your numbers, your jokes) is what makes it citable and unfakeable.

---

## Prompt 4: Internal linking

Maps the new post into your existing content so readers, crawlers, and cluster structure all benefit.

```
Map this new post into my existing content so both readers and crawlers find it.

NEW POST: [TITLE + URL_SLUG]
NEW POST SUMMARY: [3_SENTENCES_OR_PASTE_THE_DRAFT]
EXISTING CONTENT: [PASTE_LIST_OF_TITLES_AND_URLS or your sitemap URLs]
MONEY PAGES: [THE_1-3_PAGES_THAT_MAKE_MONEY: product, pricing, signup]

Output three tables:

TABLE 1: INBOUND (links FROM existing posts TO the new post)
| Existing post | The exact sentence or section where the link fits naturally | Anchor text (descriptive, varied, not "click here") | Why a reader would follow it |
Find 3-8. Only propose links a reader would actually want to click. If fewer than 3 natural spots exist, say so instead of forcing them.

TABLE 2: OUTBOUND (links FROM the new post TO existing content)
| Section of new post | Target post | Anchor text | Purpose (context / next step / money page) |
2-5 links. At most ONE link to a money page, placed where intent is highest, never in the intro.

TABLE 3: CLUSTER HEALTH
- Hub check: which existing post is the hub for this topic? If none, which post should be promoted to hub, and what would that take?
- Orphan check: after these links, list any post in this cluster with fewer than 2 internal inbound links.
- Cannibalization check: does the new post target the same primary query as any existing post? If yes, name it and recommend one of: merge, 301 redirect, or differentiate (and state the differentiated angle).

Rules: exact-match anchor text on at most 1 inbound link; vary the rest. Never propose a second link from one page to the same target.
```

**Usage notes:** actually place the inbound links (editing old posts) the same day you publish. Inbound links from established pages are how new posts get crawled and how AI engines discover them; a post with zero inbound internal links is a launch with the parking brake on.

---

## Cadence that works

- 1-2 posts per week through this pipeline beats 10 per week of unedited output. Google's 2025-2026 spam updates hit scaled unreviewed content with 60-90% traffic losses.
- Monthly: refresh money pages (stat update + dateModified) and run your 10-prompt AI citation audit.
- Quarterly: re-run Prompt 1 on your main seeds; search intent drifts.

Current as of July 2026.
