Resumen
Este flujo de trabajo discovers nuevo local SMB leads diario by querying Google for servicio categorias a traves de objetivo cities. It extrae business names, ratings, y fragmentos de local pack resultados, deduplicates contra previously discovered leads, y salidas nuevo leads for sales outreach. Designed for agencies y sales teams targeting local businesses donde Apollo cobertura es poor.
Desencadenador
Cron programar (diario at 9 AM UTC)
Programación
Ejecuta diario at 9:00 AM UTC
Pasos del flujo de trabajo
Cargar servicio categorias y cities
Leer el objetivo servicio types y geographic areas to search.
Consulta local searches
For cada service-city combination, consulta Scavio Google to obtener local pack resultados.
Extraer business leads
Analizar business names, enlaces, ratings, y resena fragmentos de resultados.
Deduplicate contra conocido leads
Comparar contra el existing lead base de datos to identificar solo nuevo businesses.
Salida nuevo leads
Escribir nuevo leads to el CRM o archivo de salida for sales team resena.
Implementacion en Python
import requests
import json
from pathlib import Path
API_KEY = "your_scavio_api_key"
def discover_leads(services: list[str], cities: list[str]) -> list[dict]:
seen_path = Path("seen_leads.json")
seen = set(json.loads(seen_path.read_text())) if seen_path.exists() else set()
new_leads = []
for service in services:
for city in cities:
res = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": f"{service} in {city}"},
timeout=15,
)
if not res.ok:
continue
for r in res.json().get("organic", [])[:10]:
link = r.get("link", "")
if link and link not in seen:
seen.add(link)
new_leads.append({
"service": service,
"city": city,
"name": r.get("title", ""),
"link": link,
"snippet": r.get("snippet", ""),
})
seen_path.write_text(json.dumps(list(seen)))
return new_leads
leads = discover_leads(["plumber", "electrician", "hvac"], ["Austin TX", "San Antonio TX"])
print(f"New leads: {len(leads)}")
for lead in leads[:5]:
print(f" [{lead['service']}] {lead['city']}: {lead['name'][:50]}")Implementacion en JavaScript
const API_KEY = "your_scavio_api_key";
async function discoverLeads(services, cities) {
const seen = new Set();
const leads = [];
for (const svc of services) {
for (const city of cities) {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ platform: "google", query: `${svc} in ${city}` }),
});
if (!res.ok) continue;
for (const r of ((await res.json()).organic ?? []).slice(0, 10)) {
if (r.link && !seen.has(r.link)) {
seen.add(r.link);
leads.push({ service: svc, city, name: r.title ?? "", link: r.link });
}
}
}
}
return leads;
}
const leads = await discoverLeads(["plumber"], ["Austin TX"]);
console.log(`Found ${leads.length} new leads`);Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA