End-to-End AI Visibility Audit Pipeline
100 leads/day, 0-100 AI visibility scoring, personalized openers, full GEO audits on engaged conversations. Pattern from r/ArtificialInteligence.
An r/ArtificialInteligence post documented a fully automated AI visibility audit pipeline: 100 leads/day from Google Maps, scored 0-100 on AI search visibility, personalized openers, full GEO audits on engaged conversations. The architecture works. The data layer is the only piece worth picking carefully.
The five-stage shape
The pattern: lead generation, enrichment plus scoring, outreach, reply classification, full audit on yes. Each stage is a thin script plus a search API call. The whole pipeline runs on n8n or a Claude Code agent in under 200 lines.
Stage 1 — Daily lead pull
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
H = {'x-api-key': API_KEY}
def daily_leads(city, niche, n=100):
out = []
page = 0
while len(out) < n:
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', [])
page += 1
if len(r.get('local_results', [])) < 20: break
return out[:n]Stage 2 — AI visibility scoring
Score each lead on whether the AI Overview cites their domain when you search their brand or category. Branded SERP presence in the top 10 organic results adds points. Reddit thread mentions add bonus weight because Reddit threads precede AI Overview citations by a few weeks for many topics.
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))Stage 3 — Personalized opener with LLM
Pass the score plus the lead's site excerpt to Claude. Ask for a 60-word opener that references one specific gap. Reject openers that feel generic; rerun with a stronger prompt.
Stage 4 — 4-step email sequence
Day 0, 3, 7, 14. Subject lines rotate per vertical. Reply rates self- optimize over time as the agent learns which subjects produce positive replies for dentists vs roofers vs realtors.
Stage 5 — Full GEO audit on yes
When a prospect agrees to the audit, run a deeper scan: Reddit threads about the brand, YouTube videos, AI Overview citations across category-level queries ("best dentist Austin", "recommended dentist near downtown"), and the missing entity coverage on the website. Compose into a 5-page markdown report.
Cost math at 100 leads/day
Daily lead pull: ~5 credits per city (one local-pack query plus pagination). Per-lead scoring: 1 credit. Per-engaged-lead audit: ~10 credits. For 100 leads/day with a 3% engagement rate, total daily spend is ~135 credits = $0.58/day on the Scavio Project tier. The whole pipeline runs under $20/mo of API cost.
What still needs human attention
The reply classification and audit-report generation deserve human review. The agent handles the volume; you decide which engaged leads get the white-glove follow-up. Honest constraint: cold-email deliverability matters more than pipeline architecture. If your sending infrastructure is bad, no agent fixes that.