Las herramientas tradicionales de enriquecimiento de clientes potenciales como ZoomInfo y Apollo cobran entre 0,10 y 0,50 dólares por registro de bases de datos patentadas que se actualizan periódicamente. El enriquecimiento de la API de búsqueda adopta un enfoque diferente: consulte los resultados de búsqueda en vivo para cada cliente potencial para obtener información actual de la empresa, presencia social y sentimiento en línea. Este tutorial crea una canalización de enriquecimiento de Python que toma una lista de nombres de empresas y genera registros enriquecidos con sitio web, URL de LinkedIn, datos de reseñas y noticias recientes.
Requisitos previos
- Python 3.8+ instalado
- solicita biblioteca instalada
- Una clave API de Scavio de scavio.dev
- Un CSV de nombres de empresas para enriquecer
Guia paso a paso
Paso 1: Cargue su lista de clientes potenciales
Lea los nombres de empresas de un archivo CSV.
import csv
def load_leads(filepath: str) -> list:
with open(filepath) as f:
reader = csv.DictReader(f)
return [row['company_name'] for row in reader]
leads = load_leads('leads.csv')
print(f'Loaded {len(leads)} leads')Paso 2: Enriquece cada cliente potencial con datos de búsqueda
Realice múltiples búsquedas por cliente potencial para crear un perfil completo.
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def enrich_lead(company: str) -> dict:
# Search for company website and info
info = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': company}, timeout=10).json()
# Search for LinkedIn
linkedin = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': f'{company} site:linkedin.com'}, timeout=10).json()
# Search for reviews
reviews = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': f'{company} reviews'}, timeout=10).json()
return {
'company': company,
'website': info.get('organic', [{}])[0].get('link', ''),
'description': info.get('organic', [{}])[0].get('snippet', ''),
'linkedin': next((r['link'] for r in linkedin.get('organic', []) if 'linkedin.com' in r.get('link', '')), ''),
'review_count': len(reviews.get('organic', [])),
}Paso 3: Procesar todos los clientes potenciales con limitación de velocidad
Enriquezca todos los clientes potenciales con un pequeño retraso entre solicitudes para respetar los límites de tarifas.
import time
def enrich_all(leads: list, delay: float = 0.5) -> list:
enriched = []
for i, company in enumerate(leads):
try:
data = enrich_lead(company)
enriched.append(data)
print(f'[{i+1}/{len(leads)}] Enriched: {company}')
except Exception as e:
enriched.append({'company': company, 'error': str(e)})
print(f'[{i+1}/{len(leads)}] Failed: {company}: {e}')
time.sleep(delay)
return enrichedPaso 4: Exportar datos enriquecidos
Guarde los clientes potenciales enriquecidos en un CSV para importarlos a su CRM o herramienta de divulgación.
def export_enriched(data: list, filepath: str):
if not data: return
keys = data[0].keys()
with open(filepath, 'w', newline='') as f:
writer = csv.DictWriter(f, fieldnames=keys)
writer.writeheader()
writer.writerows(data)
print(f'Exported {len(data)} enriched leads to {filepath}')
enriched = enrich_all(leads)
export_enriched(enriched, 'enriched_leads.csv')Ejemplo en Python
import requests, os, csv
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def enrich(company):
data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': company}, timeout=10).json()
top = data.get('organic', [{}])[0]
return {'company': company, 'url': top.get('link', ''), 'snippet': top.get('snippet', '')}
# Usage: enriched = [enrich(c) for c in companies]Ejemplo en JavaScript
async function enrich(company) {
const data = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST', headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
body: JSON.stringify({platform: 'google', query: company})
}).then(r => r.json());
const top = data.organic?.[0] || {};
return {company, url: top.link, snippet: top.snippet};
}Salida esperada
A CSV of enriched leads with company website, LinkedIn URL, description, and review presence data.