El problema
Las listas de correo en frio contienen un nombre de empresa y quiza un dominio, pero ningun contexto sobre la situacion SEO actual del prospecto, su stack tecnologico o noticias recientes. El outreach generico es ignorado. Los representantes de ventas buscan manualmente en Google cada prospecto antes de escribir correos, lo cual no escala mas alla de 20 prospectos por dia.
La solucion de Scavio
Ejecuta cada prospecto a traves de la API de busqueda de Scavio para construir un perfil SERP: rankings actuales, presencia en AI Overview, estado de Knowledge Graph, noticias recientes y posicionamiento competitivo. Alimenta este enriquecimiento en la personalizacion de correos. Cada auditoria cuesta 1-2 creditos ($0.005-$0.01).
Antes
El representante de ventas busca manualmente en Google 20 prospectos por dia. Escribe correos genericos. Tasa de apertura: 15%. Tasa de respuesta: 2%.
Después
El pipeline audita 500 prospectos por hora. Cada correo referencia la situacion SERP real del prospecto. Tasa de apertura: 35%. Tasa de respuesta: 8%.
Para quien es
Equipos de ventas y SDRs que necesitan inteligencia SERP especifica del prospecto para personalizar el outreach en frio a escala.
Beneficios clave
- 500 auditorias SERP de prospectos por hora vs 20/dia manual
- Datos de personalizacion: rankings, AI Overview, Knowledge Graph
- 1-2 creditos por prospecto ($0.005-$0.01)
- La salida estructurada se integra directamente en plantillas de correo
- Mejora de 2-4x en tasas de respuesta con personalizacion basada en SERP
Ejemplo en Python
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']}")Ejemplo en JavaScript
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);
}Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA