aeolead-genvisibility

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.

6 min read

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

Python
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.

Python
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.