Extracción y Verificación de Prospectos
Objetivo
Extraer prospectos usando Apify (code_crafter/leads-finder), verificar su relevancia (coincidencia con la industria > 80%) y guardarlos en una hoja de Google. Para extracciones grandes (más de 1000 prospectos), usa extracción paralela para un rendimiento de 3 a 5 veces más rápido.
Entradas
- Industria: La industria objetivo (ej., "Plomeros", "Agencias de Software")
- Ubicación: La ubicación objetivo (ej., "Texas", "Estados Unidos", "California"). Los scripts formatean automáticamente al formato requerido por Apify (los estados de EE. UU. reciben el sufijo ", us" automáticamente).
- Cantidad Total: El número total de prospectos deseados
Scripts
Todos los scripts están en ./scripts/:
scrape_apify.py- Extracción individual, para <1000 prospectosscrape_apify_parallel.py- Extracción paralela, para 1000+ prospectosclassify_leads_llm.py- Clasificación de prospectos basada en LLMenrich_emails.py- Enriquecimiento de correos electrónicos mediante AnyMailFinderupdate_sheet.py- Actualizaciones por lotes de hojasread_sheet.py- Leer datos de Google Sheets
Proceso
Extracciones Pequeñas (<1000 prospectos)
-
Extracción de Prueba
python3 ./scripts/scrape_apify.py --query "INDUSTRIA" --location "UBICACIÓN" --max_items 25 --no-email-filter --output .tmp/test_leads.json -
Verificación
- Lee
.tmp/test_leads.json - Verifica que al menos 20/25 (80%) de los prospectos coincidan con la Industria
- Aprobado: Continúa al paso 3
- Fallido: Detente y pide al usuario que refine las palabras clave
- Lee
-
Extracción Completa
python3 ./scripts/scrape_apify.py --query "INDUSTRIA" --location "UBICACIÓN" --max_items CANTIDAD_TOTAL --no-email-filter --output .tmp/leads.json -
[Opcional] Clasificación con LLM (para nichos complejos)
python3 ./scripts/classify_leads_llm.py .tmp/leads.json --classification_type product_saas --output .tmp/classified_leads.json -
Subir a Google Sheet
python3 ./scripts/update_sheet.py .tmp/leads.json --title "Prospectos - INDUSTRIA" -
Enriquecer Correos Faltantes
python3 ./scripts/enrich_emails.py URL_DE_LA_HOJA
Extracciones Grandes (1000+ prospectos)
-
Extracción de Prueba (igual que arriba con 25 elementos)
-
Extracción Completa Paralela
python3 ./scripts/scrape_apify_parallel.py \ --query "INDUSTRIA" \ --total_count 4000 \ --location "Estados Unidos" \ --strategy regions \ --no-email-filterLa partición geográfica es automática:
- Estados Unidos: 4 vías (Noreste, Sureste, Medio Oeste, Oeste)
- UE/Europa: 4 vías (Occidental, Meridional, Septentrional, Oriental)
- Reino Unido: 4 vías (SE Inglaterra, N Inglaterra, Escocia/Gales, SO Inglaterra)
- Canadá: 4 vías (Ontario, Quebec, Oeste, Atlántico)
- Australia: 4 vías (NSW, VIC/TAS, QLD, WA/SA)
-
Continúa con los pasos 4-6 de extracciones pequeñas
Salidas
El ÚNICO entregable es la URL de Google Sheet. Los archivos JSON locales en .tmp/ son intermediarios temporales.
Casos Extremos
- No se encontraron prospectos: Pide al usuario que amplíe la búsqueda
- Error de API: Verifica las credenciales en
.env - Clasificaciones de baja calidad: Si >80% "no claro", mejora las palabras clave de extracción
Entorno
Requiere en .env:
APIFY_API_TOKEN=tu_token
GOOGLE_APPLICATION_CREDENTIALS=ruta/a/credentials.json
ANTHROPIC_API_KEY=tu_clave
ANYMAILFINDER_API_KEY=tu_clave
Esquema
Entradas
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
industry | string | Sí | Industria objetivo (ej., 'Plomeros', 'Agencias de Software') |
location | string | Sí | Ubicación objetivo (ej., 'Texas', 'Estados Unidos') |
total_count | integer | Sí | Número total de prospectos deseados |
classification_type | string | No | Tipo de clasificación con LLM (ej., 'product_saas') |
Salidas
| Nombre | Tipo | Descripción |
|---|---|---|
sheet_url | string | URL de Google Sheet con los prospectos extraídos |
lead_count | integer | Número de prospectos encontrados |
Credenciales
| Nombre | Fuente |
|---|---|
APIFY_API_TOKEN | .env |
GOOGLE_APPLICATION_CREDENTIALS | .env |
ANTHROPIC_API_KEY | .env |
ANYMAILFINDER_API_KEY | .env |
Componible Con
Habilidades que se combinan bien con esta: classify-leads, casualize-names, instantly-campaigns, onboarding-kickoff
Costo
$0.01-0.02 por prospecto + $0.30/1K por clasificación