Overview
Per-client weekly automation: pull SERP and AI Overview citations across 50 keywords, track Reddit thread mentions, run LLM gap-analysis prompt, output PDF report.
Trigger
Cron weekly Friday 8 AM per client
Schedule
Daily snapshot + Weekly Friday 8 AM report
Workflow Steps
Per-client keyword grid
30-50 brand and category keywords from client config.
Daily SERP + AI Overview pull
Scavio /search with `include_ai_overview: true` per keyword.
Daily Reddit thread tracking
Scavio /reddit/search per keyword and brand mention.
Weekly LLM gap analysis
Prompt: 'Identify 5 content gaps the brand has not addressed; output {gap, priority, draft_outline}.'
Compose weekly PDF
Citation deltas + Reddit threads + 5 gap outlines.
Email PDF to client
Friday 8 AM cadence; archive in Drive or Notion.
Python Implementation
import os, requests
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def daily(keywords):
out = {}
for k in keywords:
s = requests.post('https://api.scavio.dev/api/v1/search', headers=H, json={'query': k, 'include_ai_overview': True}).json()
r = requests.post('https://api.scavio.dev/api/v1/reddit/search', headers=H, json={'query': k}).json()
out[k] = {'serp': s.get('organic_results', [])[:10], 'citations': (s.get('ai_overview') or {}).get('citations', []), 'reddit': r.get('posts', [])[:10]}
return outJavaScript Implementation
const H = { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' };
async function daily(keywords) {
const out = {};
for (const k of keywords) {
const [s, r] = await Promise.all([
fetch('https://api.scavio.dev/api/v1/search', { method:'POST', headers:H, body: JSON.stringify({ query: k, include_ai_overview: true }) }).then(r => r.json()),
fetch('https://api.scavio.dev/api/v1/reddit/search', { method:'POST', headers:H, body: JSON.stringify({ query: k }) }).then(r => r.json())
]);
out[k] = { s, r };
}
return out;
}Platforms Used
Web search with knowledge graph, PAA, and AI overviews
Community, posts & threaded comments from any subreddit