Workflow

AEO Weekly Report Generation

Generate weekly AI Overview tracking reports. Monitor keyword coverage, citation sources, and competitor visibility in AI answers.

Overview

Track your brand's visibility in Google AI Overviews across target keywords weekly. The report shows which keywords trigger AI Overviews, whether your content is cited, which competitors appear, and week-over-week trends. Cost: $0.005 per keyword check, so 200 keywords costs $1/week.

Trigger

Weekly cron on Monday at 09:00 UTC

Schedule

Weekly on Monday at 09:00 UTC

Workflow Steps

1

Load keyword list

Read the target keywords from a tracking sheet. Group by category (brand, product, competitor, industry).

2

Check AI Overview status

Query each keyword with AI Overview extraction enabled. Record whether an AIO appears and its content.

3

Analyze citations

For each AIO, extract the cited sources, check if your domain appears, and note competitor domains.

4

Compare to last week

Load the previous week's report and compute changes: new AIOs, lost citations, gained citations, new competitor appearances.

5

Generate report

Output a structured report with summary stats, per-keyword details, and actionable recommendations.

Python Implementation

Python
import requests, os, json
from datetime import datetime

H = {"x-api-key": os.environ["SCAVIO_API_KEY"], "Content-Type": "application/json"}

def aeo_report(keywords, my_domain, prev_report=None):
    report = {"date": datetime.now().strftime("%Y-%m-%d"), "domain": my_domain, "keywords": []}
    for kw in keywords:
        r = requests.post("https://api.scavio.dev/api/v1/search", headers=H,
            json={"platform": "google", "query": kw, "ai_overview": True}).json()
        aio = r.get("ai_overview", {})
        entry = {"keyword": kw, "has_aio": bool(aio), "cited": False, "competitors": []}
        if aio:
            sources = aio.get("sources", [])
            domains = [s.get("domain", "") for s in sources]
            entry["cited"] = my_domain in " ".join(domains)
            entry["competitors"] = [d for d in set(domains) if d and d != my_domain][:5]
        report["keywords"].append(entry)
    total = len(report["keywords"])
    with_aio = sum(1 for k in report["keywords"] if k["has_aio"])
    cited = sum(1 for k in report["keywords"] if k["cited"])
    print(f"AEO Report: {total} keywords, {with_aio} have AIO, cited in {cited}")
    return report

report = aeo_report(
    ["best SERP API", "web scraping API", "search API for LLM"],
    "scavio.dev")

JavaScript Implementation

JavaScript
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};

async function aeoReport(keywords, myDomain) {
  const report = {date: new Date().toISOString().split("T")[0], domain: myDomain, keywords: []};
  for (const kw of keywords) {
    const r = await fetch("https://api.scavio.dev/api/v1/search", {
      method: "POST", headers: H,
      body: JSON.stringify({platform: "google", query: kw, ai_overview: true})
    }).then(r => r.json());
    const aio = r.ai_overview || {};
    const sources = aio.sources || [];
    const domains = sources.map(s => s.domain || "");
    report.keywords.push({
      keyword: kw, hasAio: !!aio.text,
      cited: domains.join(" ").includes(myDomain),
      competitors: [...new Set(domains.filter(d => d && d !== myDomain))].slice(0, 5),
    });
  }
  const withAio = report.keywords.filter(k => k.hasAio).length;
  const cited = report.keywords.filter(k => k.cited).length;
  console.log(`AEO Report: ${keywords.length} kws, ${withAio} AIO, cited in ${cited}`);
  return report;
}

aeoReport(["best SERP API", "web scraping API"], "scavio.dev");

Platforms Used

Google

Web search with knowledge graph, PAA, and AI overviews

Frequently Asked Questions

Track your brand's visibility in Google AI Overviews across target keywords weekly. The report shows which keywords trigger AI Overviews, whether your content is cited, which competitors appear, and week-over-week trends. Cost: $0.005 per keyword check, so 200 keywords costs $1/week.

This workflow uses a weekly cron on monday at 09:00 utc. Weekly on Monday at 09:00 UTC.

This workflow uses the following Scavio platforms: google. Each platform is called via the same unified API endpoint.

Yes. Scavio's free tier includes 250 credits per month with no credit card required. That is enough to test and validate this workflow before scaling it.

AEO Weekly Report Generation

Generate weekly AI Overview tracking reports. Monitor keyword coverage, citation sources, and competitor visibility in AI answers.