How to Turn Keyword Research into Content Briefs with Windsurf

Build a Windsurf Cascade workflow that turns keyword exports into intent clusters, page types, content briefs, GEO prompts, and a reviewable content calendar.

What you will build

This tutorial shows how to use Windsurf to turn keyword data into content briefs and a practical publishing calendar. The goal is not to dump keywords into an AI writer. The goal is to create a workflow that tells you which pages to refresh, which pages to create, which ideas to ignore, and what evidence each page needs.

You will build:

.windsurf/workflows/keyword-to-content-brief.md
seo-geo/keyword-workflow/
inputs/
keywords.csv
gsc-queries.csv
bing-queries.csv
existing-urls.csv
competitor-pages.csv
outputs/
cleaned-keywords.md
clusters.md
page-map.md
briefs/
calendar.md

Step 1: prepare the input files

Create the folders:

mkdir -p .windsurf/workflows seo-geo/keyword-workflow/inputs seo-geo/keyword-workflow/outputs/briefs

If you already use SEO tools, export CSV files from your normal stack. If you do not, start manually with small samples. The workflow still works.

Create a simple keyword file:

cat > seo-geo/keyword-workflow/inputs/keywords.csv <<'EOF2'
keyword,volume,difficulty,intent,source
ai reporting dashboard,900,42,commercial,keyword_tool
reporting automation software,500,38,commercial,keyword_tool
how to automate weekly reports,700,27,informational,keyword_tool
best reporting tools for startups,350,31,comparison,keyword_tool
EOF2

Create an existing URL inventory:

cat > seo-geo/keyword-workflow/inputs/existing-urls.csv <<'EOF2'
url,title,page_type,last_updated
/features/reporting,Reporting Automation,landing,2026-05-10
/blog/weekly-report-automation,How to Automate Weekly Reports,blog,2025-11-18
/tools/report-template-generator,Report Template Generator,tool,2026-02-03
EOF2

Optional but useful inputs:

File

What it contains

Why it helps

gsc-queries.csv

queries, clicks, impressions, CTR, position

Finds low-CTR and near-ranking opportunities

bing-queries.csv

Bing clicks and impressions

Adds non-Google demand signals

competitor-pages.csv

competitor URL, title, angle

Prevents weak copycat briefs

ai-prompts.md

buyer prompts from ChatGPT/Perplexity/Gemini checks

Turns SEO clusters into GEO questions

Step 2: create the Windsurf workflow

Create the workflow file:

cat > .windsurf/workflows/keyword-to-content-brief.md <<'EOF2'
# Keyword to Content Brief

Goal: convert keyword, search, competitor, and AI-prompt inputs into a page map, content briefs, and a 90-day content calendar.

Required inputs:
- `seo-geo/keyword-workflow/inputs/keywords.csv`
- `seo-geo/keyword-workflow/inputs/existing-urls.csv`

Optional inputs:
- `gsc-queries.csv`
- `bing-queries.csv`
- `competitor-pages.csv`
- `ai-prompts.md`

Steps:
1. Read all available inputs.
2. Clean obvious duplicates and merge keyword variants.
3. Group queries by user intent, not by exact wording only.
4. Label each cluster as informational, commercial, comparison, support, technical, local, or GEO prompt.
5. Map every cluster to one of four decisions: refresh existing page, create new page, merge with another cluster, or ignore for now.
6. For approved clusters, create a brief under `seo-geo/keyword-workflow/outputs/briefs/`.
7. Create `seo-geo/keyword-workflow/outputs/page-map.md`.
8. Create `seo-geo/keyword-workflow/outputs/calendar.md`.

Approval gate:
- Stop after the page map.
- Ask the user to approve which briefs to create.
- Do not draft full articles unless the user approves the page map.

Brief requirements:
- target cluster
- search intent
- GEO prompt version
- page type
- existing URL or proposed slug
- reader problem
- outline
- proof needed
- internal links
- screenshots or examples needed
- quality risks
- measurement plan

Forbidden actions:
- do not publish
- do not invent search volume
- do not invent customer proof
- do not create multiple pages for the same intent
- do not recommend a new page before checking existing URLs
EOF2

Step 3: run the workflow for the first time

In Windsurf, invoke the workflow with a precise request:

Run /keyword-to-content-brief using `seo-geo/keyword-workflow/inputs/`.

First output only:
1. cleaned keyword notes
2. intent clusters
3. page map with refresh/create/merge/ignore decisions

Do not draft articles yet. Do not edit website pages. Stop after `page-map.md` and ask me what to approve.

A useful first output should look like this:

Cluster: reporting automation software
Intent: commercial evaluation
GEO prompt: "What is the best reporting automation software for a small startup?"
Decision: refresh existing page
Target URL: /features/reporting
Reason: existing landing page matches the commercial intent but lacks comparison criteria and proof.
Risk: do not claim integrations that are not documented.
Priority: high

If Windsurf creates ten new article ideas without checking existing URLs, the workflow failed. Add this line to the workflow: No new page may be recommended until existing-urls.csv has been checked.

Step 4: approve a small page map

Do not approve everything. Pick one refresh and one new page.

Use this prompt:

Approve only these two actions:
1. Refresh `/features/reporting` for the cluster "reporting automation software".
2. Create one blog brief for "how to automate weekly reports".

Create briefs for only these two. Do not draft final articles. Include evidence needed, screenshots needed, internal links, FAQ candidates, and measurement plan.

Step 5: require a brief that a writer can actually use

A good Windsurf brief should be operational, not just a title and outline. Use this format:

Brief field

What Windsurf should write

Target reader

Who has the problem

Query cluster

Keywords and AI prompts covered

Page role

Blog, landing page, comparison, tool page, docs, support

Search intent

What the reader wants to decide or do

GEO angle

The answer an AI system should be able to extract

Required proof

Screenshots, data, examples, docs, customer-safe proof

Existing internal links

Pages that should be linked naturally

Missing asset

Image, demo, table, template, calculator, checklist

Quality risk

Thin content, duplicate intent, unsupported claim, outdated info

Measurement

GSC/Bing/GA4/AI visibility checks after publish

Ask Windsurf to save each brief as a file:

Save the approved briefs under `seo-geo/keyword-workflow/outputs/briefs/` using short filenames. Include a final checklist at the bottom of each brief.

Step 6: build a 90-day calendar after the briefs

Only create the calendar after the page map and first briefs exist. Otherwise the calendar will be fiction.

Prompt:

Create `seo-geo/keyword-workflow/outputs/calendar.md` for 90 days.
Use only approved clusters and briefs.
For each item include: week, page type, target URL or proposed slug, owner, required proof, difficulty, expected business value, GEO prompt target, and validation metric.
Limit the calendar to work a small team can actually finish.

Example row:

Week

Work

URL

Proof needed

Metric

1

Refresh landing page

/features/reporting

product screenshots, integration list

CTR, demo clicks, AI prompt inclusion

2

New how-to article

/blog/automate-weekly-reports

example workflow, template screenshot

impressions, assisted conversions, citations

Step 7: use Windsurf for drafting only after the brief is approved

When you are ready to draft, keep the request narrow:

Using only the approved brief `seo-geo/keyword-workflow/outputs/briefs/automate-weekly-reports.md`, draft the article in a new markdown file under `seo-geo/drafts/`.
Do not edit the live website.
Do not invent proof.
Mark missing screenshots or product facts as TODO.
Include natural internal links only where the brief allows them.

This keeps Windsurf from turning keyword research into unsupported content.

Troubleshooting

Problem

Likely cause

Fix

Too many new page ideas

Existing URL inventory was ignored

Require a page map before briefs

Clusters overlap

Grouping by wording, not intent

Ask for one intent per page

Briefs feel generic

No proof field

Require screenshots, examples, and evidence slots

Calendar is unrealistic

No owner or difficulty

Add owner, effort, and approval gates

GEO angle is vague

Prompts missing

Convert each cluster into buyer questions

Beginner copy-paste prompt

I want to use Windsurf to turn keyword data into content briefs, not final articles.

Please create `.windsurf/workflows/keyword-to-content-brief.md` and use the files in `seo-geo/keyword-workflow/inputs/`.

Rules:
- Check existing URLs before recommending new pages.
- Group keywords by intent.
- Map each cluster to refresh, create, merge, or ignore.
- Stop after the page map and ask for approval.
- After approval, create briefs with proof needed, internal links, GEO prompt targets, screenshots needed, quality risks, and measurement plan.
- Do not publish. Do not edit live pages. Do not invent volume, proof, or customer claims.

FAQ

Can Windsurf find keywords by itself?

It can help process files and use connected tools if your environment has them, but the beginner-safe workflow starts with exports or small manual CSVs. Treat missing search volume as unknown, not as something to invent.

Should every keyword become a page?

No. Many keywords should be merged into an existing page, ignored, or saved for later. One page should own one clear intent.

What makes this useful for GEO?

Each keyword cluster is converted into a buyer-style prompt. The brief then specifies what answer the page should support, what evidence is needed, and how you will check AI visibility later.

AI coding agents for SEO/GEO learning path

Windsurf track:

  1. Cursor vs Windsurf vs Gemini CLI for SEO/GEO Automation
  2. How to Build Windsurf Cascade Workflows for SEO/GEO
  3. How to Use Windsurf Rules and Memories for SEO/GEO Projects
  4. How to Turn Keyword Research into Content Briefs with Windsurf
  5. How to Use Windsurf to Address SEO/GEO PR Comments
  6. The SEO/GEO Operating Model for Cursor, Windsurf, Gemini CLI, Codex, and Claude Code

Sources and notes

Author: Clara Bennett, 10-Year Content Strategy Practitioner at Auspia. Clara writes about editorial systems, topic maps, and repeatable SEO/GEO production workflows.

Explore this topic

Keep following the same growth thread