Challenge
Twenty-something articles a month, one strategist's time on every one
Reply.io's content team had a real publishing engine. Writers, editors, an SEO function, a target keyword list a mile long. The brand was ranking. The content was ranking. The system worked.
The problem wasn't the writing. It was everything that came BEFORE the writing.
Every article needed a brief. A real brief, not a "please write something about X." For a keyword like "best email outreach tools for sales teams," the brief had to answer:
- Should this be a listicle, a comparison, a how-to, a deep-dive? Each one reads differently and ranks for different things.
- Is this top-of-funnel awareness content, middle-of-funnel evaluation content, or bottom-of-funnel buying content? The CTA on the page depends on it.
- What's the working title? Generic titles don't get clicked. Over-clever titles don't rank.
- What's the outline? Search Google for the keyword, find the top 10 results, work out what structure most of them use, then write a better version of that structure.
- Which 8-10 supporting keywords need to appear in the piece so the page ranks for the cluster, not just the headline?
- Which of the existing top-ranking articles is the one to read before writing the new one – the closest competitor that the new piece needs to beat?
A strategist does all of that in 60-90 minutes per brief. Multiply by Reply's volume (24-36 articles a month) and you get 24-54 hours of strategist time burned every month on the work that happens before a writer types a word.
Three options for fixing this. All three had tried-and-failed versions in Reply's history:
- Skip the briefs. Hand keywords to writers with "please write 2000 words." Result: posts that read fine but miss search intent. Rankings stall.
- Hire more strategists. Real fix, but at $200-400 per brief equivalent it makes content uneconomic at this volume.
- Use the AI content brief tools off the shelf. Generic prompts produce generic briefs. Writers ignored them or had to redo them. No time saved.
The fourth option – the one that worked – was a custom workflow that runs every step of the brief in a controlled chain: one prompt to pick the article type, the output of that prompt feeds the next, and so on. Six minutes from keyword to brief, and the brief reads like a strategist wrote it because the prompts encode what a strategist actually does.
This case study walks through how we built it for Reply, what changed in their content operation, and what the same approach gets you when applied to your own team.
Solution
What we built – the 5-minute brief
The workflow takes ONE thing as input: a row in a Google Sheet with the target keyword and the product context ("Reply.io – sales engagement and email outreach platform"). The row's status flips to "Planned." From there the workflow does the rest.
About five minutes later, the same row has the full brief written back into it:
- Article type – picked from a fixed set Reply curates (comparisons, alternatives lists, how-to guides, deep-dives, glossary entries, etc.) so the blog's content mix stays balanced
- Funnel stage – TOFU, MOFU, or BOFU – so distribution and product marketing know how to handle the piece after it ships
- Working title – keyword-natural, structured for clicks
- Goal – what should the reader do after reading? Click a product page? Subscribe? Compare?
- Outline – section-by-section structure with H2 and H3 subheads
- Supporting keywords – up to 10, picked from Reply's candidate list (when one exists) or generated from scratch
- The best top-10 SERP article for the target keyword, plus notes on what that article does well
The writer opens the row, reads the brief, writes the piece. No back-and-forth. No "what kind of article is this supposed to be?" No "what's the title?" The decisions that were strategist work for 60-90 minutes are now made up-front, in 5 minutes, by the workflow.
Why this works (and why most "AI content brief" tools don't)
Most off-the-shelf AI brief generators use one big prompt: "generate a content brief for this keyword." Whatever the model produces gets dumped into the brief. Result: shallow, generic, useless to a real writer.
The workflow we built for Reply uses a chain of seven smaller prompts. Each one has exactly one job. Each one's output becomes the next one's context:
- Pick the article type (constrained to Reply's curated list)
- Generate the working title aligned to that type
- Decide the funnel stage
- Write the goal statement based on the type + funnel
- Scrape the top 10 SERP results for the target keyword
- Pick the best SERP article as the reference + summarize what it does well
- Build the outline from the title + goal + funnel + SERP reference
- Pick (or generate) the supporting keywords
Each call is short. Each call's focus is narrow. Each call's output is structured so the next call can use it directly.
The result reads like a strategist who's spent 90 minutes thinking about the keyword – because the chain encodes the same decision-making, in the same order, that a strategist would use. The model isn't being asked to do everything at once; it's being asked to make one decision, well, and then move on.
This isn't something a prompt-engineering blog teaches you. It's something you tune by watching real writers actually use the briefs and seeing which decisions they accept versus rewrite. Each prompt in the chain was edited 20+ times against real Reply briefs before it shipped.
The unique twist for Reply: refreshes use the same workflow
Most teams think about content briefs only for NEW articles. The bigger leverage often lives in content refreshes – the existing posts that used to rank and have decayed. Refreshes are usually higher-ROI than new content because the URL already has backlinks and indexation; the page just needs to be made worth ranking again.
The trap most teams fall into: refreshes get treated as "let's just update the date and tweak two sentences." That doesn't move rankings. A real refresh needs the same up-front strategy work that a new article needs – what's the current SERP doing, what's the new outline, what intent has shifted.
We extended Reply's brief workflow to handle this too. For a refresh, the input is the existing article URL + the target keyword. The workflow:
- Scrapes the existing article so the brief knows what's already there
- Scrapes the current top 10 SERP (which may be very different from when the original was written)
- Generates the same kind of structured brief output – type, title, funnel, outline, keywords, SERP reference – but now with a "what to keep / what to rewrite / what to add" overlay for the refreshed version
Same workflow file. Same prompt chain. Two input modes. The writer handling a refresh gets the same quality of brief as a writer handling a new article – which means refresh quality stops being the second-class citizen of the content roadmap.
That's the unlock at Reply's volume. Of the 24-36 articles a month they publish, a chunk are new pieces and a chunk are refreshes of existing high-value URLs. Without the workflow, refreshes wouldn't get briefs at all (or would get shallow ones); with the workflow, they get the same treatment as new content. Rankings on refreshed pages climb. Traffic compounds.
What's actually under the hood
The whole thing runs on n8n. The shape:
- Trigger watches the Google Sheet for new rows where status = "Planned"
- Reads the keyword + product context + (for refreshes) the existing URL
- Runs the prompt chain – 7-8 GPT calls depending on new-article vs refresh path
- Runs the SERP scraping step in parallel with some of the GPT calls so the total runtime stays under 6 minutes
- Writes every field back to the Sheet row
- Flips the status to "Briefed"
- Triggers a Slack notification so the writer knows there's a new brief to pick up
The Sheet is the writer's interface – nobody at Reply has to learn n8n or read GPT prompts. They see the row, they read the brief, they write the piece.
The prompts are tuned for Reply's specific funnel and product. Article types are curated to fit Reply's content strategy (comparisons of cold email tools, alternatives lists, how-to guides for SDR teams, etc). Funnel stages are defined in Reply's terms. If we built the same thing for a different B2B SaaS company, the prompts would be re-tuned against THAT company's funnel and content strategy. The workflow shape stays the same; the editorial intelligence in the prompts is custom every time.
What I delivered
- The full n8n workflow file
- All 7 GPT prompts in plain text, documented so Reply's team can adjust them as the product evolves
- The Google Sheet templates (new-article queue + refresh queue + briefed-article archive)
- The list of article types curated for Reply's funnel
- A Loom walkthrough showing how to brief a keyword and how to interpret each field
- A runbook for the edge cases – when SERP scraping fails, when the model picks an article type that doesn't fit, how to tune prompts when Reply's positioning shifts
Impact
The numbers
After the workflow shipped:
- 24-36 articles published per month – the volume Reply's content team had been aiming for but couldn't hit consistently because briefs were the bottleneck
- 100% of briefs created automatically – no strategist time spent on brief production for either new articles or refreshes
- 5 minutes per brief, down from 60-90 minutes of strategist time
- About $0.15 per brief in API costs, down from $200-400 per brief in equivalent strategist time
- Writers' lead time on a new piece dropped from "Wednesday's keyword waits for Friday's brief" to "the brief is in the sheet by the time the writer logs in"
What changed in the content operation
The strategist time that used to go into briefs went somewhere more valuable: deeper editorial work on the highest-stakes pieces, performance review of what's already published, refining the targeting on the keyword pipeline. The bottleneck moved from "we can't brief fast enough" to "what should we brief next" – which is the right shape of bottleneck for a content team that's working.
Writers stopped pushing back on briefs because the briefs got more useful. Article type, funnel stage, outline, supporting keywords – every brief comes with the same level of structure. Writers know exactly what the piece is supposed to do before they write a word.
Refreshes got the same quality treatment as new articles. That's the part most teams skip and lose ranking ground because of. At Reply's scale that compounds into real traffic.
Honest caveats
- The workflow doesn't replace editorial judgement at the keyword-selection level. Someone still has to decide which keywords are worth briefing in the first place. That's a strategy job; this workflow assumes you've already done it.
- The first 2-3 weeks after launch needed prompt tuning against the actual briefs writers received. We expected this – we'd tune a real B2B SaaS blog for the first time and the funnel-specific calls always need adjustment. After that, the workflow ran clean.
- It needs a clearly-defined funnel structure to work well. If you don't have one ("what does TOFU/MOFU/BOFU mean for our product?"), the workflow will produce briefs that feel generic on the funnel-stage call. We'll define that with you during setup if it doesn't exist yet.
Want the same setup?
Book a 30-min call. Bring one keyword you've been meaning to publish on. We'll run the live workflow against it during the call. You'll see exactly what the output looks like and decide on the spot whether it's the kind of brief your writers could use.
Results
- 24-36 articles published every month, briefed in minutes – not hours
- 100% of new article briefs created without strategist intervention
- Same workflow handles content refreshes too – every update gets its own brief, the SERP analysis re-runs against the current top 10
- Per-brief cost dropped from $200-400 (manual strategist time) to about $0.15 in API tokens
- Writers receive consistent, structured briefs – article type, working title, funnel stage, outline, supporting keywords, SERP reference – every time
Built with
Reusable systems behind this build – same automations are available for your team.