U5 · Secundários

Reachant

Gerador de listas de prospecção B2B para o Brasil e os EUA. Busca empresas no Google Places por segmento e cidade e enriquece cada lead com site, contatos e decisor. Tem API e servidor MCP para agentes de IA.

Decisões técnicas

  • Isolamento entre contas derivado do usuário logado: toda leitura passa por `scoped(Model)`, que lança erro se não houver conta. Rota sem guard falha alto em vez de devolver dados de outra conta.
  • Dois pipelines de enriquecimento, escolhidos pelo mercado de cada busca. No Brasil: Firecrawl para site e CNPJ, BrasilAPI para razão social e sócios. Nos EUA: Perplexity e Serper para decisores. Leads enriquecidos em paralelo, com limite configurável.
  • Créditos debitados com `UPDATE` condicional, sem corrida entre workers. Sem saldo, a etapa paga é pulada e o lead fica com os dados básicos. Cada débito registra o custo do fornecedor num ledger.
  • Webhook do Stripe idempotente: assinatura validada e cada `event_id` gravado, então evento repetido ou corrida entre workers vira no-op.
  • Busca fora da requisição, num pool de threads, e todo scraping passa por um `safe_get` que bloqueia IPs privados e revalida cada redirect (proteção contra SSRF).
  • API v1 em duas etapas para agentes: estimativa gratuita que devolve um token assinado, e criação de busca idempotente sobre esse token. Um pacote MCP expõe isso a clientes como o Claude.

Resultados

  • 9 ferramentas no servidor MCP.
  • 558 funções de teste pytest em 82 arquivos, mais 17 no pacote MCP.
  • 4.036 categorias de negócio para os EUA e 3.872 para o Brasil.
  • Interface em português e inglês.

Stack

PythonFlaskPostgreSQLGoogle Places APIFirecrawlBrasilAPIPerplexityStripeMCPDocker

O que mostra

Mostra que sei construir um SaaS que gasta dinheiro com APIs de terceiros sem perder o controle do custo, com cobrança, isolamento entre clientes e acesso para agentes de IA.