SEOFramework15 min readPublished July 13, 2026

Three separately-sourced inputs · one 14-field brief · six QA gates before handoff

Build an SEO Content-Brief Agent, Step by Step

A content-brief agent is a pipeline, not a prompt: it pulls your own performance data from the Search Console API, SERP composition from a paid vendor, and internal-link candidates from a first-party registry — then assembles a writer-ready, 14-field brief and runs six QA gates before a human ever sees it. This build guide is honest about the hard part: one of those three inputs has no clean official API.

DA
Digital Applied Team
Senior strategists · Published Jul 13, 2026
PublishedJuly 13, 2026
Read time15 min
Sources7 sources
Mandatory brief fields
14
on-site schema · June 2026
QA gates before handoff
6
priority-ordered checklist
GSC API row cap
25K
rows per call · startRow pages
SERP cost floor
$0.60
per 1,000 SERPs · vendor-stated

An SEO content-brief agent turns raw search data into the document a writer actually needs — target queries, intent classification, heading skeleton, entity coverage, mandated links — without a strategist spending an afternoon assembling it by hand. Most tutorials on this topic hand you a prompt template and skip the question that decides whether the agent works at all: where does the input data come from?

That question has three different answers, because a useful brief needs three structurally different inputs. Your own site's performance data comes free from an official Google API. Competitor SERP composition has no official API at any price — you buy it from a third-party vendor operating in a legal gray zone that, since December 2025, includes active federal litigation. And your internal-link candidates come from a registry only you can build.

This guide walks through the full build: the 14-field brief schema the agent must output, each of the three data inputs with real access mechanics and vendor-stated pricing, the prompt design that turns data into a draft brief, and the six QA gates that run before a human writer sees anything. No invented time-savings percentages — the case for this agent is consistency and coverage, and we will make it qualitatively.

Key takeaways
  1. 01
    The output schema already exists — automate it, don't invent it.Our content-brief framework defines 14 mandatory fields and a six-gate handoff checklist. The agent's job is to fill that exact contract from data, not to freestyle a new format per run.
  2. 02
    GSC covers your own site only.The Search Console API returns clicks, impressions, CTR, and average position for your property — up to 25,000 rows per call. It has no endpoint for who else ranks. That gap defines the rest of the pipeline.
  3. 03
    SERP composition is a paid, gray-area input.Vendor-stated pricing starts around $0.60 per 1,000 SERPs pay-as-you-go, or $25/month subscription tiers. Every vendor operates without Google's sanction — the access model is the decision, not the price.
  4. 04
    The Google v. SerpApi lawsuit makes vendor risk a live factor.Google filed a DMCA suit in December 2025; SerpApi moved to dismiss in February 2026. The case is unresolved — a brief agent should treat its SERP-data dependency as swappable, not permanent.
  5. 05
    Automate the assembly, gate the judgment.Roughly half the brief fields are fully automatable from data; the rest need human confirmation or authorship. Six priority-ordered QA gates decide whether a draft brief reaches a writer at all.

01The Target OutputStart from the schema, not the prompt.

The single most common failure in brief automation is asking a model to “write a content brief” with no output contract. You get a different document every run, writers stop trusting it, and the agent quietly becomes shelfware. The fix is to give the agent a fixed schema and score every run against it.

We published that schema in June 2026 as the 14-field content brief this agent automates. The fields: primary query, secondary queries (2–4), search intent type, answer intent target, primary entity, secondary entities, heading skeleton (H1/H2/H3), a word-count target expressed as a range, mandated internal links (3+), mandated external sources (5–7), required E-E-A-T signals, schema markup type(s), a writer/AI handoff checklist, and a named quality-gate approver.

Two of those fields matter more than the rest for agent design. The framework deliberately separates search intent — the SERP-competition classification, read from the content type, format, and angle of what currently ranks — from answer intent — the single extractable declarative sentence written to win a featured snippet or an AI citation. Most legacy templates collapse these into one "intent" field. They have different data sources: search intent is derived from reading the top-10 SERP; answer intent is authored. An agent that conflates them will automate the wrong one.

Output contract
Mandatory brief fields
14

The agent fills a fixed schema every run — primary query through named approver. A brief with a missing field fails validation before a writer ever sees it.

on-site framework · Jun 2026
Handoff checklist
Priority-ordered QA gates
6

Answer intent, entity coverage, sources, internal links, E-E-A-T, schema — encoded as the agent's final validation pass rather than a human's memory.

section 08 below
Pipeline shape
Separately-sourced inputs
3

Own-site performance (GSC API), SERP composition (paid vendor), and internal-link candidates (first-party registry). Each has a different access model and risk profile.

sections 02–05

02Input 1 · Own-Site DataThe Search Console API: free, official, and strictly scoped.

The first input answers “what does this page already rank for, and where is the opportunity?” — and it is the easy one, because Google provides an official API. The Search Analytics endpoint is a POST to https://www.googleapis.com/webmasters/v3/sites/{siteUrl}/searchAnalytics/query, per Google's API reference. It accepts startDate and endDate (YYYY-MM-DD), a dimensions array — country, device, page, query, searchAppearance, date, hour — plus dimension filter groups, an aggregation type, and a search type covering web, image, video, news, Discover, and Google News.

Response rows carry keys (the dimension values), clicks, impressions, ctr (expressed 0–1.0), and position — the average result position. For a brief agent, the core call filters by the target page and groups by query: the queries where the page earns impressions at positions 5–20 with weak CTR are your primary- and secondary-query candidates. One important scoping note: GSC's position is the average ranking of your own pages. It tells you nothing about who occupies the other nine results — that is a different data type from a different source, covered in the next section.

Quotas, row caps, and error handling

Three operating constraints shape the agent's fetch code. First, the rowLimit parameter accepts 1–25,000 rows per call (default 1,000), paginated via a startRow offset — and Google's docs are explicit that the API does not guarantee returning all data rows, only the top ones. Second, per Google's published usage limits, Search Analytics allows 1,200 queries per minute per site and per user, with project-level ceilings of 40,000 QPM and 30 million queries per day, plus separate short-term and long-term load quotas layered on top. A single brief run will never touch these numbers; a poorly-throttled bulk run generating dozens of briefs can trip the load quota. Third, quota errors surface as HTTP 429 responses with a quotaExceeded reason, and the documented remediation is exponential backoff — your fetch step should retry with increasing delays, not hammer or hard-fail.

Row cap
Rows per API call
25K

Default 1,000; paginate with startRow. For very large sites needing full historical query coverage, Search Console's bulk data export to BigQuery is the documented way around the cap — verify the mechanics in your property's settings before relying on it.

top rows only, not guaranteed-complete
Per site / user
Queries per minute
1,200

Search Analytics quota per Google's published limits. Generous for single-brief runs; bulk brief generation across a large site needs throttling and backoff on 429s.

project: 40K QPM · 30M QPD
No substitute
Query data in GA4
0

GA4 reports landing pages and sessions across all traffic sources — it has no search-query dimension at all. For “what people search to find this page,” the GSC API is the only official source.

GSC ≠ GA4
Build note
Everything in this section is Google-sanctioned — OAuth, documented quotas, stable endpoint. That makes GSC the one input you can hard-depend on. Treat the other two inputs as replaceable modules behind interfaces, because their access models are nowhere near as stable.

03Input 2 · SERP CompositionSERP data: the input with no official API.

The second input answers “what does the current top-10 look like — who ranks, what content types, what headings, what entities?” This is where honest tutorials diverge from the rest: Google offers no API for SERP composition at any price. GSC reports only your own property's metrics; query-level competitor visibility is structurally outside its documented surface. So every content-brief agent that classifies search intent from the live SERP is buying that data from a third-party vendor — or scraping, which we will address squarely in the next section.

Two representative vendors illustrate the two commercial models. All figures below are vendor-stated pricing, retrieved July 2026 — verify current rates before budgeting.

Pay-as-you-go
DataForSEO SERP API
$0.0006–$0.002 per request

Priced per data-retrieval speed tier: Standard (queued) $0.0006, Priority $0.0012, Live (real-time) $0.002 per request — the vendor's own example is 1,000 SERPs for $0.60 on the Standard queue. Minimum deposit $50; $1 trial credit on signup.

vendor-stated · queued vs real-time
Subscription
SerpApi
$25–$275/mo published tiers

Free tier at 250 searches/month, then Starter $25/mo (1,000 searches), Developer $75 (5,000), Production $150 (15,000), Big Data $275 (30,000), Enterprise custom. Unused searches expire each billing cycle — no rollover. Named defendant in Google's December 2025 lawsuit.

vendor-stated · litigation exposure

For comparison, the chart below normalizes both vendors to an effective cost per 1,000 SERPs. The subscription figures are derived by dividing each plan's monthly price by its search allowance — they hold only if you use the full allowance, since SerpApi searches expire without rollover — and the models are not perfectly comparable on other axes (queue latency versus real-time, hourly throughput ceilings). The spread is still instructive.

Effective cost per 1,000 SERPs · vendor-stated pricing, July 2026

Source: vendor pricing pages, retrieved July 2026 · subscription rates derived assuming full plan usage
DataForSEO Standardqueued retrieval · pay-as-you-go
$0.60
DataForSEO Priorityfaster queue · pay-as-you-go
$1.20
DataForSEO Livereal-time retrieval · pay-as-you-go
$2.00
SerpApi Big Data$275/mo ÷ 30,000 searches
$9.17
SerpApi Production$150/mo ÷ 15,000 searches
$10.00
SerpApi Starter$25/mo ÷ 1,000 searches
$25.00

For a brief agent's actual consumption — call it 10 to 30 SERP fetches per brief for the primary query, secondary queries, and a handful of intent-check variants — either model costs very little per brief at these vendor-stated rates. Price is not the deciding factor. The deciding factor is the next section.

Google's terms of service prohibit accessing its services through automated means such as robots, spiders, or scrapers without express advance permission (the terms are revised periodically — read the live text at policies.google.com/terms before relying on any summary, including this one). Third-party SERP-data vendors operate anyway, typically on the argument that the data is publicly viewable in any browser — not that Google has authorized the access method. That gray zone held for years. In late 2025 it stopped being theoretical.

On December 19, 2025, Google filed a federal DMCA lawsuit against SerpApi in the U.S. District Court for the Northern District of California, alleging that SerpApi's automated scraping circumvents “SearchGuard,” a technological protection measure Google deployed in January 2025. Google's complaint alleges SerpApi's scraping volume grew by as much as 25,000% over two years, to hundreds of millions of requests per day — figures worth repeating with their label attached: these are Google's litigation allegations, not independently audited numbers.

"SerpApi's business model is parasitic... it appropriates the output of other services that have made substantial investments to generate it."— Google LLC, complaint against SerpApi, as quoted by IPWatchdog (Dec 2025)

SerpApi filed a motion to dismiss in February 2026, arguing — per The Register's reporting on the filing — that it has provided access to public search data for more than eight years and that the data it returns is the same information anyone can view in a browser without signing in. As of this writing the case is active and unresolved. Do not read either side as having won; do check the case's status before you sign a vendor contract, because the outcome could reshape SERP-data-vendor viability in either direction.

The subtler point most buying guides skip: even vendors not named in any lawsuit push the compliance risk downstream. DataForSEO — which is not a defendant in the Google suit — publishes terms that bar using its SERP data to compete with or adversely affect the search engines it collects from, and that require customers to indemnify the vendor against claims arising from violations (verify the current clause wording on its terms page). Read that carefully: the contractual risk of the gray zone lands on you, the customer, not on the vendor selling you the data.

Projecting forward, the pattern this lawsuit fits is bigger than SERP tools: as AI agents industrialize data collection, publicly viewable no longer implies freely harvestable, and platforms are reaching for technological protection measures plus the DMCA rather than relying on terms-of-service claims alone. Architect accordingly — the sane engineering response is to isolate SERP retrieval behind a single interface in your agent so the vendor is swappable in an afternoon, and to keep the GSC and internal-registry stages fully functional even if the SERP stage goes dark. A brief with honest own-site data and mandated links but a thinner competitive section still beats no brief.

Compliance posture
There is no fully Google-sanctioned way to buy SERP composition data in 2026. Every option is a risk decision, not a product decision: official APIs cover your own site only, vendor terms push liability to the customer, and the leading structured-SERP vendor is in active litigation. Make the choice explicitly, document it, and design the agent so the choice is reversible.
Comparison of the three data sources a content-brief agent needs — what each provides, its access model, cost signal, and terms-of-service posture, as of July 2026.
Data sourceWhat it providesAccess modelCost signalToS / legal posture
Google Search Console APIYour own pages' query-level clicks, impressions, CTR, average positionOfficial Google API (OAuth)Free within quota (1,200 QPM per site/user)Google-sanctioned; own property only
DataForSEO SERP APISERP composition — who ranks, result types, structurePaid third-party vendor, pay-as-you-goFrom $0.0006/request (Standard, vendor-stated); $50 minimum depositGray area; terms push compliance risk to the customer via indemnification; not a defendant in the current suit
SerpApiSERP composition via structured APIPaid third-party vendor, subscriptionFrom $25/mo for 1,000 searches (vendor-stated); no rolloverGray area; named defendant in Google's Dec 2025 DMCA suit — unresolved as of publish
Internal link registryYour URLs, anchors, and topic clusters for mandated internal linksFirst-party — you build itEngineering time onlyNo third-party risk
Content-brief agent data sources · access-model comparison · Digital Applied, July 2026 · pricing vendor-stated

The third input fills the brief's “mandated internal links (3+)” field, and it is the one no vendor sells: a machine-readable index of your own published URLs with their titles, topic clusters, and preferred anchor patterns. Without it, the agent either skips the field or — worse — hallucinates plausible-looking internal URLs that 404. With it, link selection becomes a deterministic lookup: filter the registry by the brief's primary entity and topic cluster, rank by relevance, emit the top three-plus with suggested anchors.

The registry can start embarrassingly simple: a JSON or database export of slug, title, category, and tags from your CMS, regenerated on every publish. The stronger version adds what a crawl of your own site reveals — which pages already link to which, where the orphans are, which clusters are thin. We covered that build in an agentic SEO crawler built the same way — the crawler's output is precisely the registry this agent consumes, which is the general pattern worth internalizing: small single-purpose agents that feed each other artifacts beat one monolithic do-everything agent.

Note what this input costs: no vendor fees, no quota, no terms-of- service exposure. First-party data is the only input in this pipeline that gets more valuable and less risky as you scale it — which is an argument for investing here first if you are sequencing the build.

06The Build SpecMapping all 14 fields to their data sources.

This table is the build spec: every field the brief must contain, where the agent gets it, and how automatable it honestly is. Two fetch passes deserve a design note. The framework separates entity-coverage targets (Clearscope-style breadth — importance-scored entities from an NLP pass across top-ranking pages) from structural targets (Surfer-style — word-count range, heading and paragraph counts derived from ranking competitors). Build those as two distinct steps over the SERP-sourced page set, not one merged “content optimization” call — merging them reproduces the over-optimization failure mode the framework post warns against.

Map of the 14 mandatory content-brief fields to the data source the agent pulls each from, and how automatable each field is.
Brief fieldWhere the agent gets itAutomation level
From the GSC API — own-site performance
Primary queryTop opportunity query for the target page — impressions high, position 5–20, CTR weakFully automatable
Secondary queries (2–4)Adjacent queries the page already surfaces for, from the same grouped-by-query callFully automatable
From SERP data — paid vendor, two fetch passes
Search intent typeClassified from the live top-10's content type, format, and anglePartial — agent proposes, human confirms
Primary entityEntity/NLP pass across top-ranking pagesPartial — agent proposes, human confirms
Secondary entitiesImportance-scored concepts from the same entity passPartial — agent proposes, human trims
Heading skeleton (H1/H2/H3)Structural pass over competitors — shared headings plus gap headings competitors missPartial — draft skeleton, human reorders
Word count target (range)Range derived from the spread of ranking competitors — never a single fixed numberFully automatable (as a range)
Schema markup type(s)Inferred from SERP result types and the classified content typePartial — agent suggests, human approves
From first-party systems
Mandated internal links (3+)Internal-link registry lookup by topic cluster and entityFully automatable
Mandated external sources (5–7)Agent proposes candidates from research; a human verifies authority and recencyPartial — human verification required
Human judgment — agent drafts, human owns
Answer intent targetAuthored single declarative sentence, written to win the snippet or AI citation — the agent drafts a candidate at mostHuman judgment
E-E-A-T signals requiredDepends on which author expertise and first-hand experience your team can genuinely claimHuman judgment
Writer/AI handoff checklistThe six QA gates, encoded as the agent's validation code (section 08)Fully automatable (as code)
Quality gate (named approver)An organizational decision — a name, not a data pointHuman judgment
The 14-field brief → agent data-source map · operationalizes the Digital Applied content-brief framework (June 2026)

Read the automation column honestly: five fields are fully automatable, six need a human to confirm or trim what the agent proposes, and three are human judgment with at most an agent-drafted candidate. That ratio is the trend worth interpreting — brief automation in 2026 is an assembly problem, not a generation problem. The agent's value is that no field arrives empty, no internal link is invented, and no run skips the SERP read; the strategist's value concentrates in exactly the three fields where it always lived.

07Prompt DesignPrompt the agent like a pipeline, not a genie.

With the data layer settled, the prompt layer is straightforward — and deliberately boring. The agent runs as a sequence of scoped steps, each with its own small prompt and its own structured output, rather than one mega-prompt that ingests everything and emits a brief.

Step prompts, in pipeline order

  • Query selection (no LLM needed). The GSC fetch plus a ranking heuristic picks the primary and secondary queries. Keep this deterministic — it makes runs reproducible and debuggable.
  • Intent classification. Feed the model the top-10 SERP snapshot (titles, URLs, result types) and ask for the search intent as content type, format, and angle — the three-Cs framing — returned as structured output with a one-sentence justification per C. The justification is what your human reviewer sanity-checks.
  • Entity pass. Over the fetched top-ranking pages, extract and importance-score entities and concepts. Output: primary entity candidate plus a scored secondary list.
  • Structural pass. Separately, compute the word-count range and heading landscape from the same page set, and draft the H1/H2/H3 skeleton — shared headings first, gap headings flagged as differentiators.
  • Assembly. A final prompt receives all prior structured outputs plus the registry's link candidates and fills the 14-field schema — with explicit instructions that missing data yields an empty field plus a warning, never a guessed value.

Two design rules keep the output trustworthy. First, force the schema: use structured output so the brief is machine-checkable, and validate it in code after generation. Second, resist the urge to make the agent over-specify. As Semrush's content-brief guidance puts it: “Don't get too granular or rigid with your briefs...give them the broad strokes of what your content absolutely needs to have. And then trust them to do the rest.” The agent assembles mandatory fields; it does not micromanage sentence-level phrasing — that is the writer's craft, and briefs that try to script it get ignored.

This is the same agent discipline we apply in client builds through our agentic SEO service: deterministic where possible, model-assisted where classification or extraction genuinely needs language understanding, and human-owned where the field is judgment.

08Quality AssuranceSix gates before a writer sees anything.

The final stage is the one that makes the agent trustworthy enough to put in front of a content team. The framework's six-gate handoff checklist was written for humans reviewing briefs; here it becomes the agent's final validation pass, encoded as code that runs after assembly and before anything is surfaced. In priority order:

  1. Answer intent satisfied — the brief contains a single, extractable declarative sentence as its answer-intent target (agent checks presence and format; a human authored or approved the sentence itself).
  2. Entity coverage met — the primary entity and the scored secondary entities from the NLP pass all appear in the brief's skeleton or coverage notes.
  3. Sources cited — five to seven external sources are listed, each with a URL that resolves.
  4. Internal links placed — three or more links, every one verified against the registry so nothing invented ships.
  5. E-E-A-T signals present — the required-signals field is filled and matches expertise the team actually has.
  6. Schema specified — at least one markup type is named and consistent with the classified content type.

A brief that fails any gate never reaches the writer — it loops back with the failure attached, or lands in a review queue with the gap flagged. That failure behavior is the entire point. We will not claim a percentage time saving here, because we have no defensible number to cite and this agent's benefits are qualitative: every brief arrives complete against the same 14-field contract, internal links stop being invented, the SERP actually gets read on every run, and the strategist's review shrinks to the three judgment fields instead of the whole document. Downstream, the briefs this agent emits are what a production pipeline like our content engine consumes — and if you later want to measure whether the published pages earn AI-search visibility, that is a separate measurement problem we covered in an AI-search-visibility agent using the same MCP pattern.

The gate that pays for the build
Gate four — every internal link verified against the registry — is the cheapest to implement and the one that most visibly separates an agent-assembled brief from a raw LLM draft. Hallucinated internal URLs are the tell of an unpiped brief generator; a registry lookup makes them structurally impossible.

09ConclusionBuild the pipeline, respect the gray zone.

The shape of the build, July 2026

A brief agent is three data problems and one schema — in that order.

The build order that works: schema first (steal ours — 14 fields, six gates), then the GSC integration because it is official and free, then the internal-link registry because it is first-party and risk-free, and only then the SERP-data decision — because that one is a risk choice, not a shopping choice. Isolate the vendor behind an interface, document why you chose it, and re-check the litigation landscape before every renewal.

What you get is not a magic content machine. It is a pipeline that guarantees every brief arrives complete, data-grounded, and pre-validated — while the three fields that always needed a human still get one. The teams this works for are the ones that already know briefs matter and are tired of assembling them by hand; the teams it fails are the ones hoping automation will substitute for editorial judgment. The schema's named-approver field exists precisely so it never does.

Ship a content-brief agent on your own data

The brief is the highest-leverage document in your content pipeline — automate its assembly.

Our team designs and ships content-operations agents — brief generation, internal-linking systems, QA gates, and the data plumbing underneath — built on your stack, owned by you, delivered in days not quarters.

Free consultationExpert guidanceTailored solutions
What we work on

Content-operations agent engagements

  • Brief-generation agents against your CMS and GSC data
  • Internal-link registries and agentic site crawlers
  • SERP-data vendor evaluation with the risk ledger done
  • QA-gate design — schema validation before human review
  • Full content-engine pipelines from brief to publish
FAQ · Content-brief agent

The questions we get every week.

Three structurally different inputs. First, your own site's search performance — which queries a page ranks for, at what position, with what CTR — which comes from the Google Search Console API, officially and free within quota. Second, SERP composition — who else ranks for the target query, what content types and headings they use, what entities they cover — which has no official Google API and must come from a paid third-party vendor. Third, an internal-link registry: a first-party index of your own URLs, topic clusters, and anchor patterns, which no vendor can sell you. Each input feeds different fields of the brief, and conflating them (especially the first two) is the most common design error — GSC's position metric describes your pages only, while SERP data describes the whole results page including competitors.