El problema
Las agencias locales de generación de leads buscan en Google Maps listados de empresas: nombres, números de teléfono, direcciones, calificaciones. El enfoque de raspado falla con frecuencia (medidas anti-bot de Google), viola los Términos de servicio y requiere una infraestructura de proxy que cuesta entre 50 y 200 dólares al mes. Cada actualización del diseño de Maps requiere correcciones en el selector.
La solucion de Scavio
Reemplace el raspado de Google Maps con consultas de búsqueda de Scavio Google para empresas locales. Al consultar '[servicio] en [ciudad]' se obtienen resultados de paquetes locales con nombres de empresas, calificaciones, fragmentos de reseñas y enlaces a sitios web. Sin infraestructura de raspado, sin costos de proxy, sin mantenimiento de selector.
Antes
Antes de cambiar, el raspador de mapas de la agencia necesitaba correcciones cada 2 o 3 semanas. Costo del proxy: $120/mes. Mantenimiento de ingeniería: 8 horas/mes a $100/hora. Total: $920/mes por datos no confiables con interrupciones periódicas de 2 a 3 días.
Después
Después de cambiar a Scavio, los datos comerciales locales siempre estarán disponibles. 2000 consultas/mes (100 ciudades x 20 categorías de servicios) = $10/mes. Mantenimiento cero. Cero cortes en 4 meses de operación.
Para quien es
Agencias locales de generación de leads que actualmente eliminan Google Maps. Agencias de marketing que prestan servicios a empresas de servicios locales. Equipos de ventas que crean listas de extensión para los mercados locales.
Beneficios clave
- Reemplazar la infraestructura de scraping con llamadas API de $0,005/consulta
- Los resultados del paquete local incluyen calificaciones, recuentos de reseñas y detalles comerciales
- Mantenimiento cero frente a más de 8 horas al mes para el mantenimiento del raspador
- El costo cae de $920/mes (scraper) a $10/mes (API)
- Acceso API compatible frente a violaciones de los Términos de servicio
Ejemplo en Python
import requests
import csv
from pathlib import Path
API_KEY = "your_scavio_api_key"
def generate_leads(services: list[str], cities: list[str]) -> list[dict]:
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]:
leads.append({
"service": service,
"city": city,
"name": r.get("title", ""),
"link": r.get("link", ""),
"snippet": r.get("snippet", ""),
})
return leads
leads = generate_leads(["plumber", "electrician"], ["Austin TX", "Dallas TX"])
print(f"Generated {len(leads)} leads")
for lead in leads[:5]:
print(f" [{lead['service']}] {lead['city']}: {lead['name'][:50]}")Ejemplo en JavaScript
const API_KEY = "your_scavio_api_key";
async function generateLeads(services, cities) {
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)) {
leads.push({ service: svc, city, name: r.title ?? "", link: r.link ?? "" });
}
}
}
return leads;
}
const leads = await generateLeads(["plumber"], ["Austin TX", "Dallas TX"]);
console.log(`Generated ${leads.length} leads`);Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA