Overview
Weekly poll of brand-relevant queries across LLMs and AI Overviews. Per query, score brand presence and trend over time.
Trigger
Weekly cron Monday 9am
Schedule
Weekly Monday 9am
Workflow Steps
Load query set + brand from config
10-50 buyer-intent queries; one brand string.
Per query: Scavio search with include_ai_overview
Capture AI Overview citations and organic top-10.
Per query: poll Claude + GPT directly
Same query, capture answer text.
Score brand presence
Mention vs not mention; position-weighted score 0-1.
Append to time-series store
SQLite or Postgres with (query, llm, week, score).
Render weekly chart
Streamlit/Grafana plot per query, per LLM, week over week.
Python Implementation
import requests, os, anthropic
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
client = anthropic.Anthropic()
def sov_for(query, brand):
aio = requests.post('https://api.scavio.dev/api/v1/search',
headers=H, json={'query': query, 'include_ai_overview': True}).json().get('ai_overview', {})
aio_score = 1.0 if any(brand.lower() in str(c).lower() for c in aio.get('citations', [])) else 0
claude = client.messages.create(model='claude-sonnet-4-7', max_tokens=400,
messages=[{'role':'user','content': query}]).content[0].text
claude_score = 1.0 if brand.lower() in claude.lower() else 0
return {'aio': aio_score, 'claude': claude_score}JavaScript Implementation
// Same via fetch + Anthropic SDK.Platforms Used
Web search with knowledge graph, PAA, and AI overviews