ChatSEO

ChatSEO Playbooks / Free, nothing gated

The Claude SEO Team

10 roles · 20 prompts · 6 templates · 3 departments

TL;DR

Search Console, one ChatSEO customer: daily clicks flat until they started using ChatSEO.app in July 2025, then climbing to 600+ a day. 103k clicks, 12.9M impressions in total.
To get similar results for your business, try ChatSEO.app free for 7 days.

How the team works

Three departments, run in order, every 28 days. Each role reads the handoff note of the one before it, does one job, and writes its own.

1 · FIND 01 Search Console Analyst 02 CTR Watcher 03 Prioritizer → the fix list 2 · FIX 04 Intent Matcher 05 Title & Meta Writer 06 Content Gap Editor 07 Internal Linker → the changes, shipped 3 · MEASURE 08 Performance Tracker 09 Cannibalization Checker 10 Head of the Loop → next cycle's pages every role ends with a handoff note · the loop restarts every 28 days

Setup: two minutes

  1. Connect your Google Search Console to ChatSEO (read-only, one click). Every role reads from it.
  2. Fill the Team brief once. Every role reads it first.
  3. Run the roles in order. Each one ends with a handoff note; paste it into the next role's conversation.

The honest gap. Paste these prompts into a plain AI chat and every one of them hits the same wall: it can't see your Search Console, so it says "not in the data" or guesses. ChatSEO is connected to it, so every number is yours. That's what the 7-day free trial is for. Prefer Claude? The ChatSEO MCP plugs the same data into Claude (Pro plan).

Search Console, another ChatSEO customer: flat for a year, then clicks rise sharply from January 2026 after they started using ChatSEO.app. 9.13k clicks, 286k impressions.
To get similar results for your business, try ChatSEO.app free for 7 days.
Department 1

Find what's worth fixing

Pull the data, find the pages stuck just off page 1, pick the ones worth the work.

01

Search Console Analyst

Pulls your Search Console and finds the pages stuck at positions 8 to 20.

Hands the next role: A clean baseline table and the striking-distance list, ranked by impressions.

Role instruction

Paste it at the top of the conversation, or save it as a Claude project instruction.

Role 1 · Search Console Analyst
You are the Search Console Analyst of an SEO team. You work only from my Google Search Console data.
Your job: pull the numbers the rest of the team needs, then find the pages with an average position between 8 and 20 and real demand behind them.
Rules:
- Never estimate a number. If it is not in the data, write "not in the data".
- Always give clicks, impressions, CTR and average position, last 28 days vs the 28 before.
- A page qualifies as striking distance only with 100+ impressions in 28 days and a position between 8.0 and 20.0.
- Rank by impressions, not by position. Demand first. Name the query that brings most of each page's impressions.
- End with a HANDOFF note for the CTR Watcher (template 6).
The 2 prompts
Prompt 1.1 · Pull the baseline · paste into ChatSEO
Pull my Search Console data for the last 28 days and the 28 days before. Give me one table per page: URL, clicks, impressions, CTR, average position, and the change vs the previous period. Drop pages under 50 impressions. Only use numbers from my Search Console. If a number is not in the data, write "not in the data" instead of estimating. End with the 3 numbers that changed the most.
Prompt 1.2 · Striking distance list · paste into ChatSEO
From my Search Console, last 28 days: list every page with an average position between 8 and 20 and at least 100 impressions. Columns: URL, top query, impressions, clicks, CTR, position. Sort by impressions. Only use numbers from my Search Console. If a number is not in the data, write "not in the data" instead of estimating. End with a HANDOFF note for the CTR Watcher.
02

CTR Watcher

Catches pages that kept their position but lost the click.

Hands the next role: The snippet problems: same rank, fewer clicks.

Role instruction

Paste it at the top of the conversation, or save it as a Claude project instruction.

Role 2 · CTR Watcher
You are the CTR Watcher of an SEO team. You compare the last 28 days to the 28 before in my Search Console.
Your job: find pages whose CTR dropped while their average position moved less than 1.5 places. That is a snippet problem, not a ranking problem.
Rules:
- Only count pages with 200+ impressions in both periods.
- Show CTR before, CTR after, position before, position after.
- Say what changed in the results page only if the data shows it. Otherwise say "check the SERP by hand".
- End with a HANDOFF note for the Prioritizer (template 6).
The 2 prompts
Prompt 2.1 · CTR drops at a stable rank · paste into ChatSEO
Compare my last 28 days to the 28 days before in Search Console. List the pages whose CTR fell while average position moved less than 1.5 places, with 200+ impressions in both periods. Columns: URL, CTR before, CTR after, position before, position after, clicks lost. Only use numbers from my Search Console. If a number is not in the data, write "not in the data" instead of estimating. End with the worst one.
Prompt 2.2 · Low CTR for the rank · paste into ChatSEO
List my pages in positions 1 to 10 over the last 28 days whose CTR is below the median CTR of my other pages at the same rounded position. Columns: URL, position, CTR, median CTR at that position, impressions. Only use numbers from my Search Console. If a number is not in the data, write "not in the data" instead of estimating. End with a HANDOFF note for the Prioritizer.
03

Prioritizer

Picks the few pages closest to page 1. Says no to everything else.

Hands the next role: The fix list: 3 to 5 pages, in order, with the reason.

Role instruction

Paste it at the top of the conversation, or save it as a Claude project instruction.

Role 3 · Prioritizer
You are the Prioritizer of an SEO team. You read the HANDOFF notes from the Search Console Analyst and the CTR Watcher.
Your job: choose the 3 to 5 pages the team fixes this cycle, nothing more.
Rules:
- Score each candidate: closer to position 10 is better, more impressions is better, a CTR drop at a stable rank is a bonus.
- Show the score and the numbers behind it. Never invent a gain.
- Every page you do not pick gets one line saying why not.
- Fill the Opportunity sheet (template 2) and end with a HANDOFF note for the Intent Matcher.
The 2 prompts
Prompt 3.1 · Pick this cycle's pages · paste into ChatSEO
From my Search Console, last 28 days: take every page between position 8 and 20 with 100+ impressions, plus any page whose CTR dropped at a stable rank. Pick the 3 to 5 closest to page 1 with the most impressions. For each: URL, position, impressions, CTR, one-line reason. Only use numbers from my Search Console. If a number is not in the data, write "not in the data" instead of estimating. End with the order to fix them in.
Prompt 3.2 · Say no to the rest · paste into ChatSEO
List the pages that almost made this cycle's fix list and say in one line each why they wait. Use my Search Console numbers for the last 28 days. Only use numbers from my Search Console. If a number is not in the data, write "not in the data" instead of estimating. End with a HANDOFF note for the Intent Matcher.
Department 2

Fix the pages

Match each page to what it actually ranks for, then fix the title, the content and the links.

04

Intent Matcher

Checks each page answers the query it actually ranks for, not the one you wrote it for.

Hands the next role: One target query per page, and the gap between page and intent.

Role instruction

Paste it at the top of the conversation, or save it as a Claude project instruction.

Role 4 · Intent Matcher
You are the Intent Matcher of an SEO team. You read the Prioritizer's fix list.
Your job: for each page, find the query it really ranks for in Search Console and check the page answers it.
Rules:
- The target query is the one with the most impressions, not the one in the title.
- Say what the searcher wants in one line: learn, compare, buy, or find a place.
- Say what the page gives them in one line. Name the mismatch plainly.
- Fill the Page fix card (template 3), then HANDOFF to the Title and Meta Writer.
The 2 prompts
Prompt 4.1 · Find the real target query · paste into ChatSEO
For this page: [URL]. From my Search Console, last 28 days, list the top 5 queries by impressions with clicks, CTR and position. Tell me which one the page should target and whether the page's current title and H1 match it. Only use numbers from my Search Console. If a number is not in the data, write "not in the data" instead of estimating. End with the target query.
Prompt 4.2 · Name the intent gap · paste into ChatSEO
Read this page: [URL]. Its target query is [QUERY]. In three lines: what the searcher wants, what the page gives them, and the gap between the two. Then list the top 3 results on Google for [QUERY] and what each covers that my page does not. End with a HANDOFF note for the Title and Meta Writer.
05

Title & Meta Writer

Rewrites the snippet so the page wins the click at the rank it already has.

Hands the next role: A new title and meta per page, with the old ones kept for the log.

Role instruction

Paste it at the top of the conversation, or save it as a Claude project instruction.

Role 5 · Title & Meta Writer
You are the Title and Meta Writer of an SEO team. You read the Intent Matcher's page fix card.
Your job: rewrite the title tag and meta description so the page wins more clicks at its current position.
Rules:
- Title under 60 characters, target query near the start, one concrete reason to click.
- Meta under 155 characters, says what the reader gets, no fluff.
- Never promise something the page does not deliver.
- Keep the old title and meta in the Fix log (template 5). HANDOFF to the Content Gap Editor.
The 2 prompts
Prompt 5.1 · Rewrite the snippet · paste into ChatSEO
Page: [URL]. Target query: [QUERY]. Read the page and its current title and meta description. Write 3 new titles under 60 characters and 2 meta descriptions under 155 characters, each matching the target query and what the page actually delivers. Show the current ones first. End with the one pair you would ship.
Prompt 5.2 · Beat the page 1 snippets · paste into ChatSEO
Look at the titles and descriptions ranking on page 1 for [QUERY]. List what they all say, and one angle none of them use that my page [URL] can honestly claim. Write my title and meta around that angle. End with a HANDOFF note for the Content Gap Editor.
06

Content Gap Editor

Adds what the page is missing compared to page 1. Only that.

Hands the next role: The sections to add, written, with where they go.

Role instruction

Paste it at the top of the conversation, or save it as a Claude project instruction.

Role 6 · Content Gap Editor
You are the Content Gap Editor of an SEO team. You read the Intent Matcher's gap and the page 1 results.
Your job: add only what the page is missing to answer its target query, nothing decorative.
Rules:
- List the gaps first, each with the page 1 result that covers it.
- Write each missing section in the site's own tone, ready to paste.
- Say where each section goes on the page.
- Do not rewrite what already works. HANDOFF to the Internal Linker.
The 2 prompts
Prompt 6.1 · List the content gaps · paste into ChatSEO
Compare my page [URL] with the top 5 Google results for [QUERY]. List the subtopics, questions and facts they cover that my page does not, with which result covers each. Skip anything my page already covers. End with the 3 gaps that matter most for the query.
Prompt 6.2 · Write the missing sections · paste into ChatSEO
Write the 3 missing sections for my page [URL] on [QUERY], in the tone of the rest of my site, ready to paste. For each: a heading, the section, and where it goes on the page. Do not rewrite existing sections. End with a HANDOFF note for the Internal Linker.
07

Internal Linker

Sends links to the page from your pages that already rank.

Hands the next role: The link plan: which page, which sentence, which anchor.

Role instruction

Paste it at the top of the conversation, or save it as a Claude project instruction.

Role 7 · Internal Linker
You are the Internal Linker of an SEO team. You read the fix list and my Search Console.
Your job: find pages on my site that already get clicks and are topically close, and add a link from each to the page being fixed.
Rules:
- Source pages must have clicks in the last 28 days in Search Console.
- Give the exact sentence to add the link to, and the anchor text (varied, natural, close to the target query).
- Three to five links per page, no more.
- Fill the Internal link plan (template 4). HANDOFF to the Performance Tracker.
The 2 prompts
Prompt 7.1 · Find the source pages · paste into ChatSEO
My page [URL] targets [QUERY]. From my Search Console, last 28 days, list my pages that get clicks and cover a related topic, sorted by clicks. Mark the ones that already link to [URL]. Only use numbers from my Search Console. If a number is not in the data, write "not in the data" instead of estimating. End with the 5 best pages to link from.
Prompt 7.2 · Write the link plan · paste into ChatSEO
For each source page you picked, give me the exact sentence where a link to [URL] fits, the anchor text, and the rewritten sentence if one is needed. Vary the anchors. End with a HANDOFF note for the Performance Tracker.
Department 3

Measure and repeat

Track every fix against its own baseline, catch pages fighting each other, choose what's next.

08

Performance Tracker

Grades every fix against the numbers it started from.

Hands the next role: A verdict per fix: worked, no change, or worse.

Role instruction

Paste it at the top of the conversation, or save it as a Claude project instruction.

Role 8 · Performance Tracker
You are the Performance Tracker of an SEO team. You read the Fix log (template 5).
Your job: compare each fixed page's clicks, CTR and position 28 days after the change to its baseline in the log.
Rules:
- Only grade a fix after 28 days. Before that, write "too early".
- Verdict per fix: worked, no change, or worse, with the numbers.
- Never credit a fix for a change that also happened to the whole site. Compare to the site's overall trend.
- HANDOFF to the Cannibalization Checker.
The 2 prompts
Prompt 8.1 · Grade the fixes · paste into ChatSEO
Here is my fix log: [PASTE LOG]. For each page, pull its clicks, CTR and position from Search Console for the 28 days after the change date and compare with the baseline in the log. Also give my whole site's change over the same dates. Only use numbers from my Search Console. If a number is not in the data, write "not in the data" instead of estimating. End with a verdict per fix: worked, no change, or worse.
Prompt 8.2 · Weekly movement · paste into ChatSEO
From my Search Console, last 7 days vs the 7 days before: for these pages [URLs], give clicks, impressions, CTR and position with the change. Only use numbers from my Search Console. If a number is not in the data, write "not in the data" instead of estimating. End with a HANDOFF note for the Cannibalization Checker.
09

Cannibalization Checker

Catches two of your pages competing for the same query.

Hands the next role: Each conflict, and which page should own the query.

Role instruction

Paste it at the top of the conversation, or save it as a Claude project instruction.

Role 9 · Cannibalization Checker
You are the Cannibalization Checker of an SEO team. You work from my Search Console, query by page.
Your job: find queries where 2 or more of my pages get impressions and swap positions, and decide which page should own each.
Rules:
- A conflict needs 2+ pages with 20+ impressions each on the same query in 28 days.
- The owner is the page with the better intent match, then the better position. Say why.
- The fix is one of: merge, redirect, re-target the weaker page, or de-link. Pick one.
- HANDOFF to the Head of the Loop.
The 2 prompts
Prompt 9.1 · Find the conflicts · paste into ChatSEO
From my Search Console, last 28 days: list every query where 2 or more of my pages each have 20+ impressions. For each: the query, each page with impressions, clicks and position. Only use numbers from my Search Console. If a number is not in the data, write "not in the data" instead of estimating. End with the conflict that costs the most clicks.
Prompt 9.2 · Settle each conflict · paste into ChatSEO
For each conflict you found, say which page should own the query and why in one line, and pick one fix: merge, redirect, re-target the weaker page, or remove the internal links that confuse Google. End with a HANDOFF note for the Head of the Loop.
10

Head of the Loop

Reads every handoff and decides what the team fixes next.

Hands the next role: Next cycle's plan, and one line on what this cycle taught.

Role instruction

Paste it at the top of the conversation, or save it as a Claude project instruction.

Role 10 · Head of the Loop
You are the Head of the Loop of an SEO team. You read every HANDOFF note from this cycle and the Performance Tracker's verdicts.
Your job: decide what the team does next cycle, and write down what this cycle proved.
Rules:
- Repeat what worked on the next pages in line. Stop what did not.
- Next cycle has 3 to 5 pages, never more.
- One line on what this cycle taught, backed by a number from the data.
- Update the Team brief (template 1) if a threshold should change. Then hand the cycle back to the Search Console Analyst.
The 2 prompts
Prompt 10.1 · Decide the next cycle · paste into ChatSEO
Here are this cycle's handoff notes and fix verdicts: [PASTE]. From my Search Console, last 28 days, find the next 3 to 5 pages between position 8 and 20 that did not get fixed yet. Tell me which type of fix worked best this cycle and apply it to them. Only use numbers from my Search Console. If a number is not in the data, write "not in the data" instead of estimating. End with next cycle's list, in order.
Prompt 10.2 · What this cycle taught · paste into ChatSEO
In 5 lines: what we changed this cycle, what it did to clicks and position (numbers from my Search Console only), what we stop doing, what we repeat, and which threshold in the Team brief should change. End with the date the next cycle starts.
Search Console, a third ChatSEO customer: clicks flat from spring to October 2025, then climbing steadily after they started using ChatSEO.app. 11.7k clicks, 238k impressions.
To get similar results for your business, try ChatSEO.app free for 7 days.

The 6 templates

What the roles fill and hand to each other. Copy them into a doc, a sheet or the conversation.

Template 1 · Team brief

Read by every role. Fill once, update when the Head of the Loop says so.

Template 1 · Team brief
# TEAM BRIEF

Site: [domain]
What we sell: [one line]
Who buys it: [one line]
Money pages: [3 to 5 URLs that make revenue]

Thresholds
- Striking distance: position 8 to 20, 100+ impressions / 28 days
- CTR drop: position moved < 1.5 places, 200+ impressions both periods
- Cannibalization: 2+ pages with 20+ impressions on one query
- Fixes per cycle: 3 to 5 pages
- Grade a fix after: 28 days

Tone: [how the site writes]
Never: [claims we can't make, pages not to touch]
Template 2 · Opportunity sheet

Filled by the Prioritizer. One row per candidate page.

Template 2 · Opportunity sheet
# OPPORTUNITY SHEET · cycle [n] · [date]

| # | URL | Top query | Impr. 28d | Clicks | CTR | Pos. | CTR drop? | Picked? | Why |
|---|-----|-----------|-----------|--------|-----|------|-----------|---------|-----|
| 1 |     |           |           |        |     |      |           |         |     |
| 2 |     |           |           |        |     |      |           |         |     |
| 3 |     |           |           |        |     |      |           |         |     |

Picked this cycle: [URLs, in order]
Template 3 · Page fix card

One per page being fixed. The Fix department fills it top to bottom.

Template 3 · Page fix card
# PAGE FIX CARD · [URL]

Target query: [query with most impressions]
Baseline (28d): clicks [ ] · impressions [ ] · CTR [ ] · position [ ]

Intent: the searcher wants to [learn / compare / buy / find a place]
Page gives them: [one line]
Gap: [one line]

Title  old: [ ]   new: [ ]
Meta   old: [ ]   new: [ ]

Sections added:
1. [heading] · goes after [section]
2. [heading] · goes after [section]

Internal links added: see link plan
Template 4 · Internal link plan

Filled by the Internal Linker. Three to five rows per page.

Template 4 · Internal link plan
# INTERNAL LINK PLAN · to [target URL]

| Source page | Clicks 28d | Sentence (as it will read) | Anchor | Done |
|-------------|-----------|-----------------------------|--------|------|
|             |           |                             |        |      |
|             |           |                             |        |      |
|             |           |                             |        |      |
Template 5 · Fix log

The team's memory. One row per shipped change, graded 28 days later.

Template 5 · Fix log
# FIX LOG

| Date shipped | URL | What changed | Baseline clicks / pos. | +28d clicks / pos. | Site trend same dates | Verdict |
|--------------|-----|--------------|------------------------|--------------------|-----------------------|---------|
|              |     |              |                        |                    |                       |         |
Template 6 · Handoff note

What every role writes at the end, and what the next role reads first.

Template 6 · Handoff note
# HANDOFF · from [role] to [next role] · [date]

Found: [the 1 to 3 things that matter, with numbers]
Decided: [what I chose and why, one line each]
Did not do: [what I skipped and why]
Your input: [the list / table / URLs you work from]
Open question: [anything the next role must check]