The Problem
Cold email lists contain a company name and maybe a domain, but no context about the prospect's current SEO situation, tech stack, or recent news. Generic outreach gets ignored. Sales reps manually Google each prospect before writing emails, which does not scale past 20 prospects per day.
The Scavio Solution
Run each prospect through Scavio's search API to build a SERP profile: current rankings, AI Overview presence, Knowledge Graph status, recent news, and competitor positioning. Feed this enrichment into email personalization. Each audit costs 1-2 credits ($0.005-$0.01).
Before
Sales rep manually Googles 20 prospects per day. Writes generic emails. Open rate: 15%. Reply rate: 2%.
After
Pipeline audits 500 prospects per hour. Each email references the prospect's actual SERP situation. Open rate: 35%. Reply rate: 8%.
Who It Is For
Sales teams and SDRs who need prospect-specific SERP intelligence to personalize cold outreach at scale.
Key Benefits
- 500 prospect SERP audits per hour vs 20/day manual
- Personalization data: rankings, AI Overview, Knowledge Graph
- 1-2 credits per prospect ($0.005-$0.01)
- Structured output feeds directly into email templates
- 2-4x improvement in reply rates with SERP-based personalization
Python Example
import requests, os, json, csv
API_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": API_KEY, "Content-Type": "application/json"}
def serp_audit(company: str, domain: str) -> dict:
"""Audit a prospect's SERP presence."""
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers=H,
json={"query": company, "country_code": "us"},
timeout=10,
)
data = resp.json()
organic = data.get("organic_results", [])
domain_positions = [r["position"] for r in organic if domain in r.get("link", "")]
return {
"company": company,
"domain": domain,
"total_results": len(organic),
"domain_positions": domain_positions,
"has_ai_overview": bool(data.get("ai_overview")),
"has_knowledge_graph": bool(data.get("knowledge_graph")),
"top_competitor": organic[0].get("link", "") if organic and domain not in organic[0].get("link", "") else "owns_top",
}
# Audit a batch of prospects
prospects = [
{"company": "Acme Corp", "domain": "acme.com"},
{"company": "Widget Inc", "domain": "widget.io"},
]
for p in prospects:
audit = serp_audit(p["company"], p["domain"])
print(f"{audit['company']}: positions {audit['domain_positions']}, AI Overview: {audit['has_ai_overview']}")JavaScript Example
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function serpAudit(company, domain) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query:company, country_code:'us'})});
const d = await r.json();
const organic = d.organic_results || [];
const positions = organic.filter(r=>(r.link||'').includes(domain)).map(r=>r.position);
const topComp = organic[0] && !organic[0].link?.includes(domain) ? organic[0].link : 'owns_top';
return {company, domain, totalResults:organic.length, domainPositions:positions, hasAiOverview:!!d.ai_overview, hasKg:!!d.knowledge_graph, topCompetitor:topComp};
}
const prospects = [{company:'Acme Corp', domain:'acme.com'}, {company:'Widget Inc', domain:'widget.io'}];
for (const p of prospects) {
const a = await serpAudit(p.company, p.domain);
console.log(a.company+': positions '+a.domainPositions+', AI Overview: '+a.hasAiOverview);
}Platforms Used
Web search with knowledge graph, PAA, and AI overviews