SERP to SEO Content Brief and Article Draft
Pricing
from $50.00 / 1,000 content briefs
SERP to SEO Content Brief and Article Draft
SEO content briefs from the Google top 10: intent, target length, H2/H3 outline, entities, gaps, FAQ, titles and meta. Optional first draft. Pay per brief.
Pricing
from $50.00 / 1,000 content briefs
Rating
0.0
(0)
Developer
Seasons AI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Share
Get a writer-ready SEO content brief for every keyword, built from what actually ranks. Run the Google Search Results Scraper, pick its dataset here, and the Actor reads the top 10 organic pages per keyword, measures them and turns the analysis into a brief: what the searcher wants, how long the page should be, the H2/H3 outline, what every top page covers, what none of them cover, and the FAQ from "People also ask". Add an optional first draft per brief.
Built for SEO teams, content agencies and writers who brief many keywords a week.
How to use
- Run Google Search Results Scraper (
apify/google-search-scraper) for your keywords, 1 page per query with 10 results. - Open this Actor and pick that run's dataset in the dataset field. No dataset? Type one keyword and paste its top 3-10 URLs.
- Optionally turn on "Also write a first draft", set the output language and list your own pages for internal links.
- Start the run. Each keyword becomes one row in the Output tab with links to the Markdown brief (and draft).
What you can do (per keyword)
- Search intent: informational / commercial / transactional / navigational, funnel stage, the reader.
- Target length: a word count with the reasoning, next to the measured min / median / 75th percentile / max of the top pages.
- Outline: H1 and 5-10 H2 sections with H3s, each marked with how many top pages cover it (or "gap").
- Must-cover subtopics: the table stakes the top pages agree on, with coverage counts.
- Entities: products, brands, concepts, tools, places to mention, each with the number of top pages that actually mention it (counted in the page text, not guessed).
- Content gaps: what the current results miss and how to use it.
- FAQ: "People also ask" questions first (when your scraper run has them), then open questions, each with answer guidance.
- Title and meta: 3-5 titles (≤ 60 chars) and 2-3 meta descriptions with character counts.
- Internal-link ideas: anchors and target pages; list your own URLs and the links point only to them.
- Competitor table: position, page type (how-to, listicle, recipe, product page, forum, video...), word count, H2s, tables/videos/FAQ blocks, last update, and a strength/weakness note per page.
- Optional first draft (up to 2,500 words) written from the brief in original wording, with
[verify: ...]placeholders where a current fact is needed.
Input
| Field | Notes |
|---|---|
datasetId | The dataset of your apify/google-search-scraper run (dataset selector, or paste the ID). Every search term becomes one brief. Uses organicResults, peopleAlsoAsk and relatedQueries; several result pages of one term are merged. |
keyword + urls | No dataset? Type one keyword and paste its top 3-10 URLs. peopleAlsoAsk optional. |
items | Advanced: rows as JSON, in the scraper format, flat (keyword, url, title, description, position) or { keyword, urls }. |
maxKeywords | Cap on briefs per run, 1-50, default 5. |
resultsPerKeyword | Top pages read per keyword, 3-10, default 10. |
writeDraft | Also write a first draft per brief (charged separately). |
outputLanguage, targetAudience, siteName, sitePages | Optional. sitePages = your own URLs for internal links (up to 100). |
Tip: in the Google Search Results Scraper, 1 page per query with 10 results is enough.
Output
One dataset row per keyword (trimmed):
{"keyword": "how to make cold brew tea","briefMarkdownUrl": "https://api.apify.com/v2/key-value-stores/.../records/brief-01-how-to-make-cold-brew-tea.md","draftMarkdownUrl": null,"searchIntent": { "type": "informational", "funnelStage": "awareness", "explanation": "Searchers want a practical at-home method...", "audience": "Home tea drinkers..." },"targetWordCount": 900,"competitorWordCounts": { "analyzed": 5, "min": 141, "median": 739, "p75": 812, "max": 1726 },"titleSuggestions": [{ "title": "How to Make Cold Brew Tea: Easy Steps and Ratios", "chars": 48 }],"outline": [{ "h2": "How Long to Steep Cold Brew Tea", "purpose": "...", "h3": ["Refrigerator steeping", "Room-temperature steeping"], "coveredByPages": 5 }],"mustCoverSubtopics": [{ "topic": "Tea-to-water ratio", "why": "...", "coveredByPages": 3, "pages": [1, 4, 5] }],"entities": [{ "name": "Sencha", "type": "material", "mentionedOnPages": 1, "inSearchResults": false, "note": "..." }],"contentGaps": [{ "gap": "...", "howToUse": "..." }],"faq": [{ "question": "Can you use regular tea bags to make cold brew tea?", "answerGuidance": "...", "source": "people_also_ask" }],"internalLinkIdeas": [{ "anchorText": "green tea brewing guide", "targetTopic": "...", "targetUrl": "" }],"competitors": [{ "position": 1, "domain": "cookieandkate.com", "contentType": "recipe", "wordCount": 812, "h2Count": 4, "analyzed": true }],"priceUsd": 0.05}
The run's key-value store holds brief-<nn>-<keyword>.md (and draft-<nn>-<keyword>.md) for every keyword, plus OUTPUT with a run summary and any failed keywords. Links stay valid while the run's storage is kept.
Pricing
You pay only for delivered briefs and drafts.
| Event | When | Price |
|---|---|---|
content-brief | one brief delivered for one keyword | $0.05 |
article-draft | one first draft delivered (only with "Also write a first draft") | $0.03 |
Worked examples:
| Run | Price |
|---|---|
| 1 keyword, brief only | $0.05 |
| 10 keywords, briefs only | 10 × $0.05 = $0.50 |
| 10 keywords with drafts | 10 × ($0.05 + $0.03) = $0.80 |
| 50 keywords with drafts (run maximum) | $4.00 |
A keyword where fewer than 3 top pages can be read, or where the brief fails, is free; so is a draft that comes back empty or cut off. Before it starts, the Actor checks that the run's maximum cost covers every keyword (and draft), prints the maximum price in the log and stops free of charge if the limit is too low.
Available on paid Apify plans.
How pages are read
- Plain HTTP with the User-Agent
SerpToContentBrief/0.1 (+https://apify.com/seasons-ai). robots.txt is checked for every site and honoured; one request at a time per site with a pause between them; 20-second timeout and 3 MB cap per page. - Only the main text is analysed (navigation, footers, cookie banners, sidebars and comments are stripped).
- Video and social results (YouTube, TikTok, Instagram, X...), files (PDF etc.), sites that refuse automated readers and pages that need JavaScript are listed in the competitor table as "not analysed" with the reason.
Limits
- Up to 50 keywords per run, 10 pages per keyword, 2,000 dataset rows read.
- Analysis input per page is capped (headings plus the opening words of each section, about 1,400 words), so very long pages are summarised, not read in full.
- Competitor text is never republished: the output holds headings, counts and at most 15-word quotes that are checked against the page; any brief field or draft paragraph that repeats 12+ words of a competitor page is removed (
checksin each row). - Facts that change (prices, dates, figures) are not checked against the web; drafts mark them
[verify: ...]. Review drafts before publishing. - The Actor only reads public company and content pages; it does not collect personal contact data.
Good to know
- On the free Apify plan the Actor returns a short preview with an example result and prices instead of running.
- Briefs and drafts are written by a language model from the measured pages. Review them, and check every
[verify: ...]placeholder, before publishing. - Files stay in the run's key-value store for your plan's retention period. Download the Markdown if you need to keep it.
- Questions or a missing field? Open an issue on the Actor page.