What this automation does
A content lead drops a keyword into a sheet. A few minutes later a brief appears in Google Docs, built from data rather than from a model’s memory of the internet.
- Request. A row is added to a briefs sheet with the target keyword, audience and any notes. Status is set to Requested.
- Keyword data. The workflow calls an SEO data API for volume, difficulty, related keywords and the questions people search around the topic.
- SERP pull. It retrieves the current top results for the keyword from a SERP data provider, then fetches each ranking page (where robots rules allow) and extracts the title, headings and visible question phrases.
- Overlap check. It searches your own sitemap and existing content for pages targeting the same or similar keywords.
- Assemble. An LLM receives all of the above and writes the brief to a fixed template: search intent, recommended angle, outline with H2 and H3 headings, questions to answer, internal links to include, sources to cite, and a reference length range.
- Deliver. The brief is created in Google Docs from a template, linked back on the sheet row, and the content lead is notified for review.
When it is worth building
The trigger is volume. If your content lead writes eight or more briefs a month and each takes an hour or two of tab-switching between an SEO tool, Google and a doc, automation returns real hours. It also enforces consistency when you use several freelancers who otherwise get very different levels of guidance.
If you publish two posts a month, keep doing briefs by hand. If your SEO platform already includes a brief generator you are happy with, use that. The custom build wins when you want briefs to include your own internal links, your product angle, and an overlap check against your existing library, which generic tools do not know about.
Architecture
| Layer | What we use | Why |
|---|---|---|
| Request queue | Google Sheets | Content leads already plan in a sheet; status columns drive the workflow |
| Keyword data | Semrush API (or another SEO data API you license) | Real volume and related queries instead of model guesses |
| SERP data | An SEO platform or SERP data provider you subscribe to | Current rankings without running your own scraper against Google |
| Page fetch | HTTP Request in n8n with a robots.txt check | Reads headings from ranking pages politely and within site rules |
| Your content | Sitemap, plus Webflow or CMS API | Powers internal link suggestions and the overlap check |
| Assembly | Claude Sonnet 5.5 or OpenAI’s GPT models | Turns structured data into a clear, opinionated brief |
| Output | Google Docs template | Writers receive briefs where they already work |
How to build it
- Write the brief template by hand. Take your best existing brief and turn it into a fixed structure. The model fills this template; it does not invent its own.
- Connect the keyword API. Request only the endpoints you need, and cache results per keyword for a week to control unit usage.
- Build the SERP and page fetch. For each ranking URL, check robots.txt, fetch once with a clear user agent, strip navigation and boilerplate, and keep headings and question-style sentences.
- Index your own site. Pull your sitemap and page titles nightly into a sheet or small database. Embed titles and descriptions if you want fuzzy overlap matching.
- Write the assembly prompt. Give the model the data blocks, the template and two rules: every number must come from the supplied data, and the angle section must name something the ranking pages do not cover.
- Generate the doc. Copy a Google Docs template, fill sections, and link the doc on the sheet row with status Ready for Review.
- Collect writer feedback. Add a column for writers to rate briefs. Review low-rated briefs monthly and adjust the template or prompt.
What breaks in production
- Pages that block fetching. Some ranking pages disallow bots or render only with JavaScript. Skip them, note it in the brief, and do not try to evade the block.
- Invented metrics. If the API call fails, the model will happily make up a search volume. Stop the run on missing data instead of passing an empty block to the model.
- Mixed intent SERPs. Some queries return product pages, videos and how-to guides together. The brief should say so, because the right format is not obvious.
- Stale SERPs. Rankings shift. A brief written today and assigned six weeks later may describe a different landscape. Stamp the data date on every brief.
- Thin angles. The most common review comment is that the angle restates what ranks. Give the model notes from sales calls or support tickets so it has real expertise to draw on.
Timeline and cost
A sheet-driven brief generator with keyword data, a SERP pull, an overlap check and Google Docs output usually takes one to three weeks. Lumeor builds this in the range of $4,000 to $9,000, depending on how many data sources you connect and whether the overlap check uses Search Console data. Running costs are mostly the SEO data API, which you license directly; model usage per brief is small. To track how rivals’ content changes over time, pair this with competitor monitoring. Teams turning finished articles into social and email content can feed them into the repurposing pipeline.
How to measure success
- Minutes spent per brief by the content lead, before and after
- Writer rating of briefs and number of clarification questions per article
- Share of briefs that recommended updating an existing page instead of writing a new one
- Revision rounds per article between writer and editor
- Rankings and organic clicks for briefed articles at 90 days, compared with earlier articles