Overview
Daily lead-gen + AI-visibility-scoring + outreach pipeline. Scrapes 100 local leads, scores each business 0-100 on AI search visibility, generates personalized openers, classifies replies, and runs full GEO audits on engaged conversations.
Trigger
Daily 6 AM
Schedule
Daily 6 AM
Workflow Steps
Pull 100 daily leads from Google Maps
Local-pack SERP queries per city + niche.
Score each lead 0-100 on AI visibility
Branded SERP query plus AI Overview citation check.
Classify visibility band
Strong (80+), Visible (40-79), Weak (under 40).
Generate personalized opener
LLM writes 60-word opener referencing the visibility gap.
4-step email sequence
Day 0, 3, 7, 14 with rotating subject lines.
Reply classification
LLM classifies intent: Interested, Not Now, Not Interested, Booked Call.
Full GEO audit on engaged replies
Deeper Reddit + YouTube + AI Overview pull, rendered to markdown report.
Python Implementation
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
H = {'x-api-key': API_KEY}
def daily_leads(city, niche, n=100):
out = []
for page in range((n // 20) + 1):
r = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'query': f'{niche} {city}', 'search_type': 'local', 'start': page * 20}).json()
out += r.get('local_results', [])
if len(r.get('local_results', [])) < 20: break
return out[:n]
def score(lead):
if not lead.get('website'): return 0
domain = lead['website'].split('/')[2]
r = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'query': f'{lead["name"]} reviews', 'include_ai_overview': True}).json()
cited = any(domain in c for c in (r.get('ai_overview') or {}).get('citations', []))
organic = sum(1 for o in r.get('organic_results', [])[:10] if domain in o.get('link', ''))
return min(100, organic * 10 + (50 if cited else 0))JavaScript Implementation
const H = { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' };
async function leads(city, niche) {
const r = await fetch('https://api.scavio.dev/api/v1/search', { method: 'POST', headers: H, body: JSON.stringify({ query: `${niche} ${city}`, search_type: 'local' }) }).then(r => r.json());
return r.local_results || [];
}Platforms Used
Web search with knowledge graph, PAA, and AI overviews