Overview
Monitors target keywords daily for AI Overview citations, tracks citation frequency over time, and alerts when citation rates change significantly. Provides data for AEO/GEO optimization decisions.
Trigger
Daily at 7 AM UTC via cron
Schedule
Daily at 7 AM UTC
Workflow Steps
Load keyword list
Read target keywords from a CSV or database. Each keyword has a target domain to track.
Query Google for each keyword
Send each keyword to Scavio's Google search endpoint. Extract AI Overview content, featured snippet, and organic positions.
Check for citations
Parse AI Overview and featured snippet text for mentions of the target domain or brand name.
Store results
Append citation data (keyword, date, cited_in_ai_overview, cited_in_featured, organic_position) to a time-series store.
Calculate trends
Compare today's citation rate to the 7-day rolling average. Flag keywords where citation rate dropped more than 20%.
Send alerts
Post significant changes to Slack with keyword, direction of change, and current vs historical citation rate.
Python Implementation
import requests, os, json
from datetime import date
H = {"x-api-key": os.environ["SCAVIO_API_KEY"]}
BRAND = "scavio"
KEYWORDS = ["best search api 2026", "serp api for agents", "multi-platform search api"]
results = []
for kw in KEYWORDS:
r = requests.post("https://api.scavio.dev/api/v1/search", headers=H,
json={"platform": "google", "query": kw}, timeout=15).json()
ai = r.get("aiOverview", "")
featured = r.get("featuredSnippet", {}).get("text", "")
organic = r.get("organic", [])
pos = next((i+1 for i, o in enumerate(organic)
if BRAND in o.get("link", "").lower()), None)
results.append({
"keyword": kw, "date": str(date.today()),
"ai_overview_cited": BRAND in ai.lower() if ai else False,
"featured_cited": BRAND in featured.lower() if featured else False,
"organic_position": pos
})
for r in results:
print(json.dumps(r))JavaScript Implementation
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
const BRAND = "scavio";
const KEYWORDS = ["best search api 2026", "serp api for agents"];
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})
}).then(r => r.json());
const ai = r.aiOverview || "";
const featured = r.featuredSnippet?.text || "";
const pos = (r.organic || []).findIndex(o =>
o.link?.toLowerCase().includes(BRAND)) + 1;
console.log(JSON.stringify({
keyword: kw, aiCited: ai.toLowerCase().includes(BRAND),
featuredCited: featured.toLowerCase().includes(BRAND),
organicPosition: pos || null
}));
}Platforms Used
Web search with knowledge graph, PAA, and AI overviews