Geração de Leads do Google Maps
Objetivo
Gerar leads B2B de alta qualidade a partir do Google Maps com enriquecimento profundo de contatos, raspando sites e usando o Claude para extrair dados de contato estruturados.
Entradas
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
--search | Sim | Consulta de pesquisa (ex.: "encanadores em Austin TX") |
--limit | Não | Máximo de resultados (padrão: 10) |
--sheet-url | Não | Planilha existente para anexar |
--workers | Não | Trabalhadores paralelos (padrão: 3) |
Scripts
./scripts/gmaps_lead_pipeline.py- Orquestração principal./scripts/gmaps_parallel_pipeline.py- Versão paralela./scripts/scrape_google_maps.py- Raspador do Google Maps./scripts/extract_website_contacts.py- Extrator de contatos de sites./scripts/update_sheet.py- Sincronização com Google Sheets
Processo
Uso Básico
# Criar nova planilha com 10 leads
python3 ./scripts/gmaps_lead_pipeline.py --search "encanadores em Austin TX" --limit 10
# Anexar a planilha existente (recomendado para construir banco de dados)
python3 ./scripts/gmaps_lead_pipeline.py --search "dentistas em Miami FL" --limit 25 \
--sheet-url "https://docs.google.com/spreadsheets/d/..."
# Volume maior
python3 ./scripts/gmaps_lead_pipeline.py --search "empreiteiros de telhado em Austin TX" \
--limit 50 --workers 5
Etapas do Pipeline
- Raspagem do Google Maps - Apify
compass/crawler-google-placesretorna listagens - Raspagem de Sites - Busca a página principal + até 5 páginas de contato
- Enriquecimento com Busca Web - Pesquisa DuckDuckGo por informações de contato do proprietário
- Extração com Claude - Claude 3.5 Haiku extrai contatos estruturados
- Sincronização com Google Sheets - Anexa novos leads, deduplica por lead_id
Esquema de Saída (36 campos)
Básicos do Negócio: business_name, category, address, city, state, zip_code, phone, website, rating, review_count
Contatos Extraídos: emails, additional_phones, business_hours
Redes Sociais: facebook, twitter, linkedin, instagram, youtube, tiktok
Informações do Proprietário: owner_name, owner_title, owner_email, owner_phone, owner_linkedin
Contatos da Equipe: Array JSON de membros da equipe
Metadados: lead_id, scraped_at, search_query, pages_scraped, enrichment_status
Custo
| Componente | Por Lead |
|---|---|
| Apify Google Maps | ~$0.01-0.02 |
| Claude Haiku | ~$0.002 |
| DuckDuckGo/HTTP | Gratuito |
| Total | ~$0.012-0.022 |
Para 100 leads: ~$1.50-2.50 total
Solução de Problemas
- "Nenhum negócio encontrado": Inclua localização na consulta
- 403 Forbidden: ~10-15% dos sites bloqueiam raspadores (tratado de forma elegante)
- Problemas de autenticação: Exclua
token.jsone reautentique - Duplicatas: Usa lead_id (MD5 de nome|endereço) para deduplicação
Ambiente
APIFY_API_TOKEN=seu_token
ANTHROPIC_API_KEY=sua_chave
Esquema
Entradas
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
search | string | Sim | Consulta de pesquisa (ex.: 'encanadores em Austin TX') |
limit | integer | Não | Máximo de resultados (padrão: 10) |
sheet_url | string | Não | Planilha existente para anexar |
workers | integer | Não | Trabalhadores paralelos (padrão: 3) |
Saídas
| Nome | Tipo | Descrição |
|---|---|---|
sheet_url | string | URL da planilha Google com dados de lead de 36 campos |
lead_count | integer | Número de leads raspados |
Credenciais
| Nome | Origem |
|---|---|
APIFY_API_TOKEN | .env |
ANTHROPIC_API_KEY | .env |
Combinável com
Skills que se encadeiam bem com esta: classify-leads, casualize-names, instantly-campaigns, onboarding-kickoff
Custo
$0.012-0.022 por lead