Overview
Generate content briefs grounded in live SERP data instead of keyword tool estimates. Pull the top 10 ranking pages, People Also Ask questions, related searches, and AI Overview status for a target keyword. Output a structured brief with content gaps, recommended format, and competitive analysis.
Trigger
On-demand per keyword request
Schedule
On-demand
Workflow Steps
Search target keyword
Query Google for the target keyword with AI Overview extraction. Pull organic results, PAA, related searches, and featured snippets.
Analyze ranking pages
Extract titles, meta descriptions, and content types from top 10 results. Identify whether Google prefers listicles, how-to guides, comparisons, or tools.
Extract content gaps
Find topics covered by PAA and related searches that the top 3 results do not address. These are opportunities for the new article.
Check AI Overview presence
If an AI Overview exists, identify what sources are cited and what format the AI Overview uses. This informs AEO optimization.
Output structured brief
Generate a content brief with: recommended title, target word count, required sections, PAA questions to answer, competitive positioning, and AEO strategy.
Python Implementation
import requests, os
H = {"x-api-key": os.environ["SCAVIO_API_KEY"], "Content-Type": "application/json"}
def generate_brief(keyword):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers=H, json={"query": keyword, "country_code": "us",
"include_ai_overview": True}).json()
organics = resp.get("organic_results", [])[:10]
paa = resp.get("people_also_ask", [])
related = resp.get("related_searches", [])
aio = resp.get("ai_overview")
brief = {
"keyword": keyword,
"top_results": [{"title": r["title"], "url": r["link"]} for r in organics[:5]],
"paa_questions": [q["question"] for q in paa],
"related_keywords": [r["query"] for r in related],
"ai_overview": {
"exists": bool(aio),
"sources_count": len(aio.get("sources", [])) if aio else 0,
"cited_domains": [s.get("link", "").split("/")[2] for s in (aio or {}).get("sources", [])],
},
"content_type": "listicle" if any(w in organics[0].get("title", "").lower()
for w in ["best", "top", "vs"]) else "guide" if organics else "unknown",
}
print(f"Brief for: {keyword}")
print(f" Format: {brief['content_type']}")
print(f" PAA to answer: {len(brief['paa_questions'])}")
print(f" AI Overview: {'yes' if brief['ai_overview']['exists'] else 'no'}")
return brief
generate_brief("best serp api 2026")JavaScript Implementation
const H = { "x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json" };
async function generateBrief(keyword) {
const resp = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({ query: keyword, country_code: "us", include_ai_overview: true })
}).then(r => r.json());
const paa = resp.people_also_ask || [];
const related = resp.related_searches || [];
console.log(`Brief: "${keyword}"`);
console.log(` Top result: ${resp.organic_results?.[0]?.title}`);
console.log(` PAA questions: ${paa.length}`);
console.log(` AI Overview: ${resp.ai_overview ? "present" : "absent"}`);
}
generateBrief("best serp api 2026");Platforms Used
Web search with knowledge graph, PAA, and AI overviews