Skip to main content

Content brief pipelines with Claude Code: the workflow that replaces €500 agency briefs

August 3, 2026
7 min read
ai-automationclaude-codecontent-briefworkflowseo-automation

An agency charged me €420 for a single content brief in 2023. The brief was 14 pages. About 3 of those pages were useful. The rest was filler — competitor screenshots, generic keyword density tables, and a five-paragraph "audience persona" written from a template.

I built this pipeline to replace that. It produces briefs that are tighter, more honest about what the writer needs to do, and cost about €0.30 each. Here's the whole thing.

What a good content brief actually needs

Strip the theater out of agency briefs and you're left with seven things:

  1. The primary keyword + 3–5 supporting keywords (with real volume data)
  2. The user intent — informational? commercial? answer-seeking? framework-seeking?
  3. What the SERP is currently showing — top 5 results, their H2 patterns, presence of AI Overviews or PAA
  4. The H2 outline the post should follow
  5. 5–8 FAQ candidates lifted from real PAA + AI Overview queries
  6. Word count target with reasoning (not just "1500–2000 words" boilerplate)
  7. Internal link targets — which existing posts should this one link to

Everything else in a typical agency brief is decoration. The pipeline below produces those seven things, structured, in 15–25 minutes.

The pipeline architecture

Three stages, each driven by a Claude Code session:

  1. Research stage. Topic → keyword expansion → SERP data. Uses the workflow from the keyword research post.
  2. Brief stage. Cluster output → structured JSON brief. The output is machine-readable so it can pipe into the next stage automatically.
  3. Writer prep stage. JSON brief → markdown brief in the writer's format. Includes voice/style notes lifted from previous posts in the same pillar.

The point of splitting it into stages: each one has a sharp boundary, fails noisily when it fails, and can be re-run independently. Don't build the pipeline as one giant prompt — that's the most common mistake I see in AI content workflows. Big prompts fail in opaque ways.

Stage 2 in detail (the brief stage)

This is the part most people don't have right. The input is a keyword cluster (output of stage 1). The output is structured JSON.

Structured output schema:

{
  "primary_keyword": "string",
  "secondary_keywords": ["string"],
  "intent": "informational | navigational | commercial | transactional",
  "serp_summary": {
    "top_5_urls": ["string"],
    "shared_h2_patterns": ["string"],
    "ai_overview_present": "boolean",
    "paa_questions": ["string"]
  },
  "target_word_count": {
    "min": "number",
    "max": "number",
    "reasoning": "string"
  },
  "h2_outline": [
    {"heading": "string", "intent": "string", "key_points": ["string"]}
  ],
  "faq_candidates": [
    {"question": "string", "answer_seed": "string"}
  ],
  "internal_link_targets": [
    {"url": "string", "anchor_text_suggestion": "string", "context": "string"}
  ],
  "voice_notes": "string",
  "things_the_writer_should_not_do": ["string"]
}

That last field — things_the_writer_should_not_do — is the single most useful field in the brief. Examples from my recent briefs:

  • "Don't use rhetorical questions as section openers."
  • "Don't summarize what the post just said in the closing paragraph."
  • "Don't define 'SEO' or 'AI' in the intro. Reader knows."
  • "Don't add a 'Conclusion' H2. Just stop when you're done."

These come from voice/style notes accumulated over previous briefs. They prevent the writer (human or AI) from drifting into generic territory.

The actual prompt for stage 2

You are producing an SEO content brief for booplex.com.
You have already read these files for context:
  - persona/gabi-booplex.json (voice profile)
  - previous_post_examples/*.md (5 published posts in this pillar)
  - keyword_cluster.json (output of stage 1)

Produce a brief as a JSON object matching the schema in brief_schema.json.

Requirements:
- target_word_count.reasoning must reference the actual SERP — "top results 
  average 1800 words but the AI Overview ranks a 600-word answer" beats 
  "1500-2000 is standard"
- h2_outline must have 4-7 H2s. No more.

Pick the must-haves; drop the rest.
- faq_candidates must be lifted from the SERP's PAA + AI Overview, not invented
- things_the_writer_should_not_do must include at least 3 items based on the 
  voice profile and the previous post examples

Output JSON only. No prose explanation.

The "no prose explanation" line is non-negotiable. Without it, Claude wraps every JSON output in a markdown code block and adds 200 words of "Here's the brief I've prepared." That breaks every downstream consumer that expects valid JSON.

Stage 3: the writer-prep stage

The JSON from stage 2 is what the next system reads (a CI job, an editor's brief queue, whatever). But humans need a readable version. Stage 3 converts JSON to a markdown brief.

The markdown version adds three things JSON doesn't:

  • A 100-word "why we're writing this" paragraph at the top — for context, not for the algorithm
  • The voice profile reminder as a callout block
  • The internal link targets as a checklist (writer ticks them off during drafting)

What it costs vs what agencies charge

ApproachCost per briefTime per briefQuality
Agency brief (3 quotes I got in 2023)€300–5005–7 days turnaroundInconsistent. 1 of 3 was actually good.
Hand-written brief (me, 2024)~€60 of my time90 minGood but tiring at scale.
This pipeline€0.30 of API + 20 min review25 min end-to-endBetter than the agency, slightly worse than my best hand-written.

Last column matters. The pipeline isn't better than my best hand-written brief — yet. But it's better than every agency brief I've paid for, and it's consistent. I can produce ten briefs in an afternoon.

I couldn't do that by hand.

What still needs a human

Three steps where the pipeline output gets edited before it goes to the writer:

1. The H2 outline. Claude tends to over-structure. I'll drop one H2 in about half of generated briefs because the SERP doesn't actually have it — Claude included it from training data, not from the live PAA data. If your prompt is strict ("must come from real SERP data"), this drops to about 1 in 4 briefs.

2. The voice notes. Claude reproduces what's in the persona profile, but it doesn't always pick the right specific tells. If a brief is about a technical topic, the voice notes should emphasize "don't define basics" more than "use playful asides." I'll edit that part 70% of the time.

3. The internal link targets. Claude scans the previous post examples and proposes links. About one in three are wrong — the source post doesn't actually have a relevant section, or the proposed anchor text would be awkward in context. I'll re-pick two of three internal links manually.

So: about 20% of each brief gets manually edited. The other 80% is good enough to ship as-is.

The 4 things this won't do

  1. It won't write the post. The brief is the input to the writer (human or AI). The post itself is a separate workflow with separate problems.
  2. It won't pick the topic. You still need to know what to write about. The pipeline assumes you've already done topic selection — usually informed by content gaps in your pillar or by trending searches in GSC.
  3. It won't catch every PAA question. DataForSEO's PAA capture is good but not exhaustive. Sometimes a manual SERP check finds questions the API missed.
  4. It won't replace editorial judgment. Whether a topic is worth covering, whether the angle is right, whether the post fits your pillar strategy — those are human decisions. The pipeline assumes the strategy is set.

The next post in this pillar

This pipeline produces the brief. The next post in the AI Automation pillar covers the writer-prep stage in more depth — specifically, how I'm experimenting with passing the brief directly into a Claude Code writing session for first drafts. It's working for technical posts; it's not working for narrative posts. The boring stuff translates faster than the interesting stuff.

FAQ

How is an AI content brief different from an agency brief?

An AI content brief generated this way is more structured, faster, cheaper, and tighter on actual SERP data. It's less polished in presentation. It doesn't have the bells (competitor screenshots, persona document, social media plan) that agencies add to justify the price.

Can ChatGPT write a content brief?

It can. It will produce something that looks:

  • a content brief. Without grounding in real SERP data
  • the brief will hallucinate keywords
  • invent PAA questions that don't exist
  • Ahrefs
  • Semrush) and you have a real workflow

How long should a content brief be?

The structured JSON version is usually 1.5–3KB. The markdown version is 500–900 words. Anything longer is bloat. The writer reads the brief once and refers back to specific fields — they don't read it like a document.

Is an AI content brief as good as a human one?

Better than most agency briefs I've paid for. Slightly worse than a hand-crafted brief by someone with deep knowledge of the topic and the audience. The right comparison is "AI brief + 20 minutes of editing" vs "agency brief + zero editing" — and the AI brief wins on every axis: faster, cheaper, more current.

How much does this pipeline cost to run?

About €0.20–€0.40 per brief in API costs (DataForSEO + Anthropic API). At 4 briefs per week, that's roughly €5/month. Compare to a single agency brief.

Where does the JSON output go?

Your call. I save it to a folder, version-control it, and feed it to the writer-prep stage. Some people pipe it into Notion or Airtable. The schema is the contract — anywhere that reads JSON can consume it.

Topics:ai-automationclaude-codecontent-briefworkflowseo-automation

Found This Useful?

Share it with someone who might learn from my mistakes!