ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo enriquecer clientes potenciales con una API de búsqueda en Python
Tutorial

Cómo enriquecer clientes potenciales con una API de búsqueda en Python

Enriquezca las listas de clientes potenciales con datos de la empresa, tecnología e información de financiación mediante una API de búsqueda. Script Python que procesa clientes potenciales CSV para ventas salientes.

Obtener clave API gratisDocumentacion API

El enriquecimiento de clientes potenciales agrega contexto a las listas de contactos sin procesar al completar el tamaño de la empresa, la industria, la tecnología, las noticias recientes y los datos de financiación. Los servicios de enriquecimiento tradicionales como Apollo cobran más de $49/usuario/mes por bases de datos prediseñadas que se vuelven obsoletas. Al utilizar una API de búsqueda, puede enriquecer los clientes potenciales con los datos más recientes disponibles públicamente por $0,005 por búsqueda. Este tutorial crea un canal de enriquecimiento de Python que toma un CSV de clientes potenciales, busca cada empresa y genera una hoja de cálculo enriquecida lista para las ventas salientes.

Requisitos previos

  • Python 3.9+ instalado
  • solicita biblioteca instalada
  • Una clave API de Scavio de scavio.dev
  • Un archivo CSV con nombres de empresas o dominios para enriquecer

Guia paso a paso

Paso 1: Cargue su lista de clientes potenciales desde CSV

Lea un CSV con al menos un nombre de empresa o una columna de dominio. El script buscará cada empresa y agregará columnas de enriquecimiento.

Python
import csv

def load_leads(csv_path: str) -> list:
    with open(csv_path) as f:
        reader = csv.DictReader(f)
        leads = list(reader)
    print(f'Loaded {len(leads)} leads from {csv_path}')
    return leads

# Expected CSV format:
# company,domain,contact_name,email
# Acme Corp,acme.com,John Doe,[email protected]
# BetaTech,betatech.io,Jane Smith,[email protected]

Paso 2: Cree la función de búsqueda de enriquecimiento

Para cada cliente potencial, realice dos búsquedas específicas: una para obtener una descripción general de la empresa y otra para noticias recientes. Analice los fragmentos de SERP para extraer puntos de datos clave.

Python
import requests, os

API_KEY = os.environ['SCAVIO_API_KEY']

def search(query: str) -> list:
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY, 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us'})
    return resp.json().get('organic_results', [])

def enrich_company(company: str, domain: str = '') -> dict:
    # Company overview search
    overview_query = f'{company} company overview' + (f' site:{domain}' if domain else '')
    overview = search(overview_query)
    overview_snippet = overview[0].get('snippet', '') if overview else ''
    # Recent news search
    news = search(f'{company} funding OR hiring OR launch 2026')
    recent_news = [r.get('title', '') for r in news[:3]]
    return {
        'description': overview_snippet[:200],
        'website': overview[0].get('link', '') if overview else '',
        'recent_news': ' | '.join(recent_news),
        'news_count': len(news)
    }

Paso 3: Extraer datos estructurados de fragmentos

Analice fragmentos de búsqueda para identificar indicadores del tamaño de la empresa, la industria y las menciones de la pila tecnológica. La concordancia simple de palabras clave es efectiva para esto.

Python
import re

def extract_signals(snippets: list) -> dict:
    text = ' '.join(snippets).lower()
    # Company size signals
    size_match = re.search(r'(\d+[,.]?\d*)\+?\s*employees', text)
    size = size_match.group(0) if size_match else 'unknown'
    # Industry detection
    industries = ['saas', 'fintech', 'healthcare', 'ecommerce', 'edtech',
                  'cybersecurity', 'ai', 'logistics', 'real estate', 'marketing']
    detected_industry = next((ind for ind in industries if ind in text), 'unknown')
    # Funding signals
    funding_match = re.search(r'raised\s+\$([\d.]+[mb])', text)
    funding = funding_match.group(0) if funding_match else 'not found'
    # Tech stack mentions
    techs = ['react', 'python', 'aws', 'azure', 'kubernetes', 'shopify',
             'salesforce', 'hubspot', 'stripe', 'twilio']
    tech_stack = [t for t in techs if t in text]
    return {'size': size, 'industry': detected_industry,
            'funding': funding, 'tech_stack': tech_stack}

Paso 4: Procesar todos los clientes potenciales con limitación de velocidad

Enriquezca cada cliente potencial con un retraso entre solicitudes. Dos búsquedas por cliente potencial significan que 200 clientes potenciales cuestan $2,00 en total.

Python
import time

def enrich_all(leads: list) -> list:
    enriched = []
    for i, lead in enumerate(leads):
        company = lead.get('company', '')
        domain = lead.get('domain', '')
        if not company:
            continue
        data = enrich_company(company, domain)
        # Extract signals from overview snippet
        snippets_query = search(f'{company} company')
        snippets = [r.get('snippet', '') for r in snippets_query[:5]]
        signals = extract_signals(snippets)
        enriched_lead = {**lead, **data, **signals}
        enriched.append(enriched_lead)
        if (i + 1) % 10 == 0:
            print(f'  Enriched {i + 1}/{len(leads)}')
        time.sleep(0.3)
    return enriched

leads = load_leads('leads.csv')
enriched = enrich_all(leads)
print(f'Enriched {len(enriched)} leads')

Paso 5: Guarde clientes potenciales enriquecidos en CSV

Vuelva a escribir los datos enriquecidos en un CSV. El resultado incluye todas las columnas originales más las nuevas columnas de enriquecimiento.

Python
def save_enriched(leads: list, output_path: str) -> None:
    if not leads:
        print('No leads to save')
        return
    fieldnames = list(leads[0].keys())
    with open(output_path, 'w', newline='') as f:
        writer = csv.DictWriter(f, fieldnames=fieldnames)
        writer.writeheader()
        for lead in leads:
            # Convert lists to strings for CSV
            row = {k: ', '.join(v) if isinstance(v, list) else v
                   for k, v in lead.items()}
            writer.writerow(row)
    credits_used = len(leads) * 3  # 3 searches per lead
    cost = credits_used * 0.005
    print(f'Saved {len(leads)} enriched leads to {output_path}')
    print(f'Credits used: {credits_used} (${cost:.2f})')

save_enriched(enriched, 'enriched_leads.csv')

Ejemplo en Python

Python
import os, csv, re, time, requests

API_KEY = os.environ['SCAVIO_API_KEY']

def search(query):
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY, 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us'})
    return resp.json().get('organic_results', [])

def enrich(company, domain=''):
    overview = search(f'{company} company overview')
    news = search(f'{company} funding OR launch 2026')
    return {
        'description': overview[0].get('snippet', '')[:150] if overview else '',
        'recent_news': news[0].get('title', '') if news else '',
    }

def main():
    companies = ['Stripe', 'Notion', 'Linear']
    for c in companies:
        data = enrich(c)
        print(f'{c}: {data["description"][:60]}...')
        print(f'  News: {data["recent_news"][:60]}')
        time.sleep(0.3)
    print(f'Cost: ${len(companies) * 2 * 0.005:.3f}')

if __name__ == '__main__':
    main()

Ejemplo en JavaScript

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;

async function search(query) {
  const resp = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query, country_code: 'us' })
  });
  return (await resp.json()).organic_results || [];
}

async function enrich(company) {
  const [overview, news] = await Promise.all([
    search(`${company} company overview`),
    search(`${company} funding OR launch 2026`)
  ]);
  return {
    description: overview[0]?.snippet?.slice(0, 150) || '',
    news: news[0]?.title || ''
  };
}

async function main() {
  for (const company of ['Stripe', 'Notion', 'Linear']) {
    const data = await enrich(company);
    console.log(`${company}: ${data.description.slice(0, 60)}...`);
  }
}

main().catch(console.error);

Salida esperada

JSON
Loaded 50 leads from leads.csv
  Enriched 10/50
  Enriched 20/50
  Enriched 30/50
  Enriched 40/50
  Enriched 50/50
Enriched 50 leads
Saved 50 enriched leads to enriched_leads.csv
Credits used: 150 ($0.75)

Stripe: Stripe is a financial infrastructure platform for businesses...
  News: Stripe Raises Series I at $70B Valuation (2026)
Notion: Notion is a connected workspace for docs, wikis, and projects...
  News: Notion Launches AI-Powered Project Management

Tutoriales relacionados

  • Cómo crear un canal de prospección de ventas con una API de búsqueda
  • Cómo crear un canal de extracción de correo electrónico de Google Maps n8n
  • Cómo crear puntuación de clientes potenciales n8n con datos de la API de búsqueda

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Python 3.9+ instalado. solicita biblioteca instalada. Una clave API de Scavio de scavio.dev. Un archivo CSV con nombres de empresas o dominios para enriquecer. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Best Of

Las mejores API de enriquecimiento B2B en mayo de 2026

Read more
Best Of

Las mejores API de búsqueda después de los cambios en el modo AI de Google I/O 2026

Read more
Glossary

Panorama de proveedores de API de búsqueda (2026)

Read more
Comparison

Apollo vs API-First Enrichment (Scavio, Exa, search APIs)

Read more
Glossary

Comparación gratuita de niveles de API de búsqueda

Read more
Comparison

Search APIs (Scavio, Tavily, SerpAPI) vs Headless Browser (Playwright, Puppeteer, Browserbase)

Read more

Empieza a construir

Enriquezca las listas de clientes potenciales con datos de la empresa, tecnología e información de financiación mediante una API de búsqueda. Script Python que procesa clientes potenciales CSV para ventas salientes.

Obtener clave API gratuitaLeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad