Pesquisa aprofundada — Stack para vender leads qualificados (CNPJ × decisor)

Data: 2026-09-05 · Autor: Claude (Fable 5.1) a pedido do Angelo · Status: primeira rodada, validada em fontes públicas listadas no fim.

Regra desta pesquisa: todo número tem fonte. Onde eu não achei número, está escrito "não encontrado". Estimativas minhas estão marcadas como estimativa.


0. Resposta curta (a decisão)

Stack recomendada:

Camada Escolha Por quê
Base de empresas Dados Abertos CNPJ da Receita Federal, carregados com cnpj-data-pipeline (open source) em PostgreSQL próprio Gratuito, oficial, mensal, cobre ~60 mi de CNPJs e traz o QSA (sócios e administradores) com qualificação e faixa etária — é isso que permite o score de decisor sem scraping
Processamento/score DuckDB + Parquet para o batch mensal de scoring, Postgres para servir 85 GB de CSV viram ~6 GB em Parquet; scoring em lote fica barato e rápido
Enriquecimento de contato Waterfall sob demanda (só no download): telefone da Receita → Google Maps (Apify) → e-mail (Hunter/Prospeo/Snov) → verificação (MillionVerifier) → check de WhatsApp (Evolution API self-hosted) Paga-se só pelo que foi comprado; custo por lead cai para centavos
LinkedIn Nunca scraping direto. Usar dataset licenciado (Bright Data ~US$ 0,0025/registro ou People Data Labs US$ 0,28/match) como sinal de cargo Proxycurl foi processada pelo LinkedIn e fechou em jul/2026. Scraping direto é risco de morte do produto
Meta/Instagram perfis comerciais públicos via Apify (US$ 1,50–2,30/1.000), deslogado Meta v. Bright Data (2024) liberou scraping público deslogado nos EUA, mas a LGPD manda aqui — perfil pessoal fica fora
App Next.js (App Router) na Vercel + Clerk (auth) + Vercel Blob (exports) + Resend (e-mail) Time já domina; deploy em dia
Cobrança Asaas (PIX, cartão, boleto, recorrência, PIX Automático) Stripe no Brasil cobra 3,99% + 0,4% em assinatura e PIX está só por convite. Asaas tem PIX sem taxa e é o padrão de SaaS PME brasileiro
Fila de jobs Vercel Queues (beta) ou Trigger.dev Enriquecimento é assíncrono por natureza

Diferencial defensável: o score de decisor calculado antes do download, usando campos que já estão na Receita (qualificação do sócio, faixa etária, data de entrada, nº de empresas do mesmo sócio) cruzados com sinais externos licenciados. Ninguém no Brasil vende isso como produto de prateleira a R$ 1/lead: os brasileiros vendem lista bruta barata (Leadjet, R$ 97) ou plataforma cara (Speedio, R$ 719+/mês).


1. Fontes de CNPJ — o que existe e o que custa

1.1 Receita Federal (fonte primária, gratuita)

1.2 Loaders open source (não reinventar)

Repo O que faz Observação
caiopizzol/cnpj-data-pipeline Download resiliente + carga incremental em Postgres ou Parquet Recomendado. Suporta alfanumérico, batch configurável (500 k), paralelismo
msantosjader/rfb-cnpj-etl ETL para SQLite ou Postgres Base de jun/2025 no exemplo
rictom/cnpj-mysql Python → MySQL/Postgres Script de download atualizado em mar/2026
cuducos/minha-receita API pública de CNPJ (usada pela BrasilAPI) Boa para consulta pontual, não para lista
okfn-brasil/receita, libercapital/dados_publicos_cnpj_receita_federal ETLs mais antigos com Docker Referência

1.3 APIs de consulta (para o produto, só como fallback)

Serviço Preço Uso no nosso caso
BrasilAPI / OpenCNPJ Gratuito, sem auth, sem limite explícito Validação pontual; não serve para lista
Casa dos Dados Busca gratuita; exportar lista custa R$ 0,01/CNPJ em créditos (verificado jul/2026) Benchmark do preço de "lista crua": 1 centavo
CNPJá / ReceitaWS Plano grátis 5 req/min; Simples só no pago Fallback
Serpro (API oficial paga) Cotação Só se virar exigência de SLA

Conclusão: lista crua de CNPJ vale 1 centavo no mercado. Tudo que a gente cobrar acima disso tem que vir do score + contato validado.


2.1 LinkedIn — o alerta vermelho

Fornecedor Modelo Preço Cobertura BR
Bright Data — LinkedIn Datasets Dataset pré-coletado (snapshot), 904 mi+ registros US$ 250 por 100 k registros (~US$ 0,0025/registro), desconto até 80% em plano com refresh mensal Não verificada para BR — precisa amostra
People Data Labs API de enriquecimento (fontes públicas licenciadas) Free 100/mês; Pro US$ 98/mês = 350 créditos (~US$ 0,28/match); só cobra em match Cobertura BR não verificada
Coresignal Dataset atual + histórico 5 anos A partir de US$ 49/mês Não verificada
Apollo.io Plataforma + API Free; Basic US$ 49; Pro US$ 79; API só no Organization (US$ 119/usuário, mín. 3 usuários); créditos de export não acumulam LinkedIn removeu a página da Apollo em 2025; os termos da Apollo proíbem revenda de dados (confirmar no contrato antes de usar)
Kaspr / Surfe Extensão Chrome (usuário navega) US$ 74 / US$ 39 por mês Não serve para bulk

Decisão: LinkedIn entra como sinal de cargo comprado em dataset licenciado (Bright Data para bulk, PDL para match pontual), nunca como scraping nosso. Antes de contratar, pedir amostra de 1.000 perfis brasileiros para medir cobertura.

2.2 Meta / Instagram

2.3 E-mail e telefone

Serviço Preço (2026) Papel
Hunter.io Starter US$ 49/mês (500 buscas + 1.000 verificações); custo por e-mail achado US$ 0,0245 → 0,0084 Achar e-mail corporativo
Snov.io Starter US$ 39/mês (1.000 créditos); Pro US$ 99 (5.000) Alternativa
Prospeo ~US$ 0,01/lead via BYOK; 98% de acurácia declarada Mais barato do lote
FullEnrich Waterfall e-mail+celular, 20+ fontes; a partir de US$ 29–55/mês; só cobra no achado Waterfall pronto se não quisermos construir
Clay Launch US$ 185/mês, Growth US$ 495/mês (preços de mar/2026); ~15 créditos por contato num waterfall de 5 fontes Caro demais para revender a R$ 1/lead; só para operação interna
MillionVerifier US$ 39 por 10.000 (~US$ 3,90/1.000), créditos não expiram Verificação de e-mail (padrão)
ZeroBounce ~US$ 19,50/1.000 5× mais caro; não usar
Evolution API (open source BR) Self-hosted, sem mensalidade por número Check de WhatsApp ("esse número tem WhatsApp?")
Z-API R$ 54,99–99,99/instância/mês; verificação em lote até 50.000 números por requisição Gerenciado, se não quisermos manter Evolution

2.4 Enriquecedores brasileiros (telefone/e-mail a partir de CPF/CNPJ)


3. Concorrentes brasileiros — preço e posicionamento

Concorrente Modelo Preço O que entrega Buraco que a gente ocupa
Speedio Assinatura anual Entry R$ 719/mês (300 empresas), Intermediate R$ 1.079 (500), Advanced R$ 1.379 (1.000); ~R$ 2,40 por empresa exportada; fidelidade 12 meses 80+ filtros, contatos de decisores de "117 fontes" Caro, travado em anual, sem score visível antes de gastar crédito
Econodata Assinatura sob cotação Histórico R$ 590–890/mês; "a partir de R$ 350" Sinais de intenção (notícias, troca de liderança) Idem
Driva Por crédito Capterra lista "a partir de R$ 60" (pagamento único); 1 avaliação Inteligência de mercado + SDR de IA Foco enterprise/indústria
Data Stone Assinatura ~R$ 200/mês (Start) Decisores com e-mail, telefone, WhatsApp validado Concorrente mais próximo em dado; sem score de decisor exposto
Leadjet Pagamento único R$ 97 / 30 dias (150 k empresas), R$ 297 / 180 dias, R$ 497 / 365 dias; exportação ilimitada em CSV CNPJ, telefone, e-mail, CNAE, porte, capital Commodity: lista crua da Receita, zero qualificação
Casa dos Dados Créditos R$ 0,01/CNPJ exportado Lista crua Commodity
LeadCNPJ All-in-one Não encontrado CNPJ + CRM kanban + WhatsApp Operação, não dado
Apollo.io USD Free → US$ 119/usuário Global, fraco em PME brasileira Não fala português nem CNPJ

Leitura de mercado: o mercado brasileiro está bipolar — lista crua a centavos ou plataforma a R$ 700+/mês com fidelidade. Entre R$ 200 e R$ 500 só tem a Data Stone. O nosso lugar: R$ 497/mês ou R$ 1/lead, com score de decisor antes de baixar e sem fidelidade.


4. LGPD — o que dá para fazer (e o que fecha a empresa)

Não sou advogado. Isto precisa passar pelo jurídico da Impero antes do lançamento.

O que a leitura das fontes (guias Think Data, LeadCNPJ, eesier, Guia Orientativo de Legítimo Interesse da ANPD) permite concluir:

Permitido / defensável: - Consultar, armazenar e vender dados cadastrais de empresa (CNPJ, razão social, CNAE, endereço, situação, capital) — dado público por lei. - Consultar e exibir o QSA divulgado pela Receita (nome do sócio, qualificação, faixa etária, data de entrada). É dado pessoal, mas de publicidade legal. - Prospecção B2B com base em legítimo interesse (art. 7º, IX), desde que haja proporcionalidade, transparência e opt-out imediato. A ANPD publicou Guia Orientativo sobre legítimo interesse: a gente precisa documentar um LIA (teste de balanceamento) e ter política de privacidade pública dizendo de onde vêm os dados e como sair. - Telefone e e-mail corporativos (da empresa, do site, do Google Maps, do Instagram Business).

Proibido / risco alto: - Buscar CPF completo, telefone pessoal ou endereço residencial do sócio. - Scraping de LinkedIn com contas (violação contratual + o caso Proxycurl). - Revender dado de Apollo ou de qualquer fornecedor cujo contrato proíba redistribuição. - Vender lead sem contrato que obrigue o comprador a respeitar opt-out e finalidade B2B.

O que o produto precisa ter no dia 1: 1. Página pública "De onde vêm os dados" + canal de opt-out (formulário + e-mail) com SLA de remoção. 2. Termo de uso para o comprador: finalidade exclusiva de prospecção B2B, proibição de spam/consumo pessoal, obrigação de honrar descadastro. 3. LIA documentado, registro de operações (art. 37) e DPO nomeado (pode ser o Angelo ou terceirizado). 4. Nenhum dado sensível, nenhum CPF completo no banco.


5. Modelo de score — como calcular "probabilidade de ser decisor"

O score é a única coisa que ninguém no Brasil mostra antes do download. Dois scores por linha:

5.1 Score de Decisor (0–100) — por pessoa do QSA

Sinal Origem Peso (estimativa inicial, calibrar com feedback)
Qualificação no QSA (sócio-administrador 49, administrador 05, presidente 16, diretor 10 > sócio 22 > cotista) Receita 35
Faixa etária (31–60 pontua mais; <21 e >80 pontuam menos) Receita 10
É representante legal de menor/incapaz? (penaliza) Receita −10
Nº de empresas ativas em que a mesma pessoa é sócia (nome + CPF mascarado) — "empreendedor serial" Receita (cruzamento interno) 10
Recência de entrada na sociedade (entrou nos últimos 24 meses = decisor engajado) Receita 5
Cargo confirmado em dataset licenciado (CEO/Founder/Diretor/Sócio) Bright Data / PDL 20
Contato corporativo encontrado e validado (e-mail MX ok, WhatsApp ativo) Waterfall 20

5.2 Score de Empresa (0–100) — fit e "está viva"

Sinal Origem
Situação cadastral ativa, matriz, tempo de vida (2–15 anos pontua mais) Receita
Capital social e porte (ME/EPP/demais) coerente com o nicho do comprador Receita
Regime Simples/MEI (MEI pontua menos para B2B de ticket alto) Receita
CNAE principal bate com o filtro do cliente Receita
Tem site, tem e-mail com domínio próprio (não gmail) Receita + DNS
Google Maps: nota ≥ 4,0 e ≥ 10 avaliações; Instagram Business com atividade Apify
Nº de filiais, nº de sócios Receita

5.3 Ordem de custo (para o unit economics)

  1. Camada 0 — gratuita: tudo que vem da Receita. O score preliminar já nasce aqui e é o que o usuário vê antes de baixar.
  2. Camada 1 — barata (só nos leads que o cliente baixou): verificação de e-mail (US$ 0,004), WhatsApp check (self-hosted, ~R$ 0), DNS/site (R$ 0).
  3. Camada 2 — cara (só em plano Pro ou lead ≥ 70): Google Maps (US$ 0,004), e-mail finder (US$ 0,01–0,025), dataset LinkedIn (US$ 0,0025 se bulk).

Estimativa de custo variável por lead entregue enriquecido: R$ 0,10 a R$ 0,30. Contra preço de R$ 0,99 a R$ 1,00, dá margem bruta de 70–90% no dado. Isso é conta minha, não medição — precisa validar com os primeiros 5.000 leads.


6. Workflow — do dump ao lead vendido

[MENSAL]   Receita (CSV zip) --cnpj-data-pipeline--> Parquet (R2/S3) --DuckDB--> scoring batch
                                                                                   |
[MENSAL]   Bright Data LinkedIn dataset (BR) ---------- join por nome+empresa -----+
                                                                                   v
[SERVE]    Postgres (tabelas: empresa, estabelecimento, socio, score, contato) <---+
                |
[APP]      Next.js: filtros (CNAE, UF, cidade, porte, capital, idade, score) --> preview com score, sem contato
                |  usuario escolhe N leads -> debito de creditos
                v
[JOB]      Fila: waterfall de contato (Receita -> Maps -> e-mail finder -> verificacao -> WhatsApp check)
                |
[ENTREGA]  CSV/XLSX no Vercel Blob + webhook/API + push para CRM (Kommo, Pipedrive, HubSpot)
                |
[FEEDBACK] cliente marca "era decisor / nao era" --> recalibra pesos do score (loop)

Pontos de atenção: - Deduplicação por pessoa: o mesmo sócio aparece em N empresas. Chave = nome_socio + cpf_mascarado. É a mesma chave que gera o sinal "empreendedor serial". - Freshness: dump é mensal. Mostrar "dados da Receita de " na UI — honestidade vende. - Preview sem vazar: o preview mostra nome da empresa, CNAE, cidade, score e iniciais do decisor. O nome completo e o contato só depois do débito.


7. Formatação do software — arquitetura recomendada

Componente Escolha Alternativa se der problema
Frontend + API Next.js 15 App Router, TypeScript, Tailwind, shadcn/ui, na Vercel (Fluid Compute, Node 24)
Auth Clerk (Marketplace Vercel) Supabase Auth
Banco servindo o app Postgres gerenciado (Neon via Marketplace para começar) Se a base de 60 mi pesar no preço do Neon, VPS Hetzner com Postgres próprio (estimativa €30–50/mês)
Data lake Parquet no Cloudflare R2 + DuckDB S3
ETL mensal cnpj-data-pipeline rodando em cron (GitHub Actions ou VPS)
Fila Vercel Queues (beta) Trigger.dev / Inngest
Enriquecimento Serviços da §2 atrás de uma interface Enricher única (trocar fornecedor sem mexer no app)
Exports Vercel Blob (privado, link assinado) R2
Billing Asaas (PIX, cartão, boleto, recorrência) Stripe (quando PIX sair do convite)
E-mail transacional Resend
WhatsApp (notificação + check) Evolution API self-hosted Z-API
Analytics Vercel Web Analytics + PostHog
Observabilidade Sentry

Fase 1 (setembro): Receita + score camada 0 + preview + compra por PIX + export CSV. Sem LinkedIn, sem Maps. Isso já é vendável. Fase 2 (outubro): waterfall de contato + WhatsApp check + integrações de CRM. Fase 3 (novembro): dataset LinkedIn licenciado + API pública + plano agência.


8. O que ficou sem resposta (não inventei)


Fontes