Raspagem e Verificação de Leads
Objetivo
Extrair leads usando Apify (code_crafter/leads-finder), verificar sua relevância (correspondência com o setor > 80%) e salvá-los em uma planilha do Google Sheets. Para raspagens grandes (1000+ leads), use raspagem paralela para desempenho 3-5x mais rápido.
Entradas
- Setor: O setor alvo (ex.: "Encanadores", "Agências de Software")
- Localização: A localização alvo (ex.: "Texas", "Estados Unidos", "Califórnia"). Os scripts formatam automaticamente para o formato exigido pelo Apify (estados dos EUA recebem sufixo ", us" automaticamente).
- Contagem Total: O número total de leads desejados
Scripts
Todos os scripts estão em ./scripts/:
scrape_apify.py- Raspagem única, para <1000 leadsscrape_apify_parallel.py- Raspagem paralela, para 1000+ leadsclassify_leads_llm.py- Classificação de leads baseada em LLMenrich_emails.py- Enriquecimento de e-mails via AnyMailFinderupdate_sheet.py- Atualizações em lote na planilharead_sheet.py- Leitura de dados do Google Sheets
Processo
Raspagens Pequenas (<1000 leads)
-
Raspagem de Teste
python3 ./scripts/scrape_apify.py --query "SETOR" --location "LOCALIZAÇÃO" --max_items 25 --no-email-filter --output .tmp/test_leads.json -
Verificação
- Leia
.tmp/test_leads.json - Verifique se pelo menos 20/25 (80%) dos leads correspondem ao Setor
- Aprovado: Prossiga para a etapa 3
- Reprovado: Pare e peça ao usuário para refinar as palavras-chave
- Leia
-
Raspagem Completa
python3 ./scripts/scrape_apify.py --query "SETOR" --location "LOCALIZAÇÃO" --max_items CONTAGEM_TOTAL --no-email-filter --output .tmp/leads.json -
[Opcional] Classificação LLM (para nichos complexos)
python3 ./scripts/classify_leads_llm.py .tmp/leads.json --classification_type product_saas --output .tmp/classified_leads.json -
Upload para o Google Sheets
python3 ./scripts/update_sheet.py .tmp/leads.json --title "Leads - SETOR" -
Enriquecer E-mails Faltantes
python3 ./scripts/enrich_emails.py URL_DA_PLANILHA
Raspagens Grandes (1000+ leads)
-
Raspagem de Teste (igual ao anterior com 25 itens)
-
Raspagem Completa Paralela
python3 ./scripts/scrape_apify_parallel.py \ --query "SETOR" \ --total_count 4000 \ --location "Estados Unidos" \ --strategy regions \ --no-email-filterO particionamento geográfico é automático:
- Estados Unidos: 4 vias (Nordeste, Sudeste, Centro-Oeste, Oeste)
- UE/Europa: 4 vias (Ocidental, Meridional, Setentrional, Oriental)
- Reino Unido: 4 vias (SE Inglaterra, N Inglaterra, Escócia/Gales, SO Inglaterra)
- Canadá: 4 vias (Ontário, Quebec, Oeste, Atlântico)
- Austrália: 4 vias (NSW, VIC/TAS, QLD, WA/SA)
-
Continue com as etapas 4-6 das raspagens pequenas
Saídas
A ÚNICA entrega é a URL da planilha do Google Sheets. Arquivos JSON locais em .tmp/ são intermediários temporários.
Casos Extremos
- Nenhum lead encontrado: Peça ao usuário para ampliar a busca
- Erro de API: Verifique as credenciais em
.env - Classificações de baixa qualidade: Se >80% "incerto", melhore as palavras-chave da raspagem
Ambiente
Requer em .env:
APIFY_API_TOKEN=seu_token
GOOGLE_APPLICATION_CREDENTIALS=caminho/para/credentials.json
ANTHROPIC_API_KEY=sua_chave
ANYMAILFINDER_API_KEY=sua_chave
Esquema
Entradas
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
industry | string | Sim | Setor alvo (ex.: 'Encanadores', 'Agências de Software') |
location | string | Sim | Localização alvo (ex.: 'Texas', 'Estados Unidos') |
total_count | integer | Sim | Número total de leads desejados |
classification_type | string | Não | Tipo de classificação LLM (ex.: 'product_saas') |
Saídas
| Nome | Tipo | Descrição |
|---|---|---|
sheet_url | string | URL da planilha do Google Sheets com os leads extraídos |
lead_count | integer | Número de leads encontrados |
Credenciais
| Nome | Fonte |
|---|---|
APIFY_API_TOKEN | .env |
GOOGLE_APPLICATION_CREDENTIALS | .env |
ANTHROPIC_API_KEY | .env |
ANYMAILFINDER_API_KEY | .env |
Composável Com
Skills que se encadeiam bem com esta: classify-leads, casualize-names, instantly-campaigns, onboarding-kickoff
Custo
$0,01-0,02 por lead + $0,30/1 mil para classificação