LeadAce

Agente de vendas outbound para Claude Code: pesquisa por prospect, redação de e-mails, envio via Gmail, acompanhamento de respostas e feedback estruturado de rejeição.

Documentação

LeadAce

Status: Public Beta License

Plugin autônomo de geração de leads para o Claude Code. Cria listas de prospects, executa divulgação outbound e itera sobre a estratégia — tudo sem intervenção manual.

Site: https://leadace.ai

Duas formas de executar. Use o serviço hospedado em app.leadace.ai (Plano gratuito — 5 divulgações/dia, planos pagos a partir de US$ 29/mês), ou auto-hospede o backend no seu próprio Cloudflare + Supabase. O plugin é o mesmo em ambos os casos — aponte-o para o MCP hospedado ou para o seu próprio.

Para Usuários

Pré-requisitos

  • Claude Code
  • Uma conta LeadAce em https://app.leadace.ai (Plano gratuito — sem cartão)
  • Uma conta Gmail conectada — para envio de e-mails (concedida ao entrar com o Google, ou pelo banner "Conectar Gmail" no aplicativo web)
  • Gmail MCP (integrado ao claude.ai) — para verificar respostas de e-mail
  • claude-in-chrome MCP — para envio de formulários e DMs em SNS (formulários podem alternativamente usar qualquer outro MCP de automação de navegador que você mesmo configure, ex.: Playwright; DMs em SNS exigem claude-in-chrome)

Instalação

Uma linha no seu terminal:

claude plugin marketplace add aitit-inc/leadace && claude plugin install leadace@leadace

Ou, de dentro de uma sessão do Claude Code em execução:

/plugin marketplace add aitit-inc/leadace
/plugin install leadace@leadace

Para atualizar depois:

/plugin marketplace update
/plugin update leadace@leadace

Entrar no LeadAce

Na primeira vez que o plugin chama uma ferramenta do LeadAce, seu navegador abre para o login do Google (a mesma conta Google do aplicativo web). O token é armazenado em cache localmente para execuções subsequentes. Consulte plugin/README.md para detalhes e solução de problemas.

Uso

A maioria dos comandos usa o nome do seu projeto como primeiro argumento (escolhido durante o onboarding do /leadace); o próprio /leadace aceita uma pergunta livre ou URL da página inicial.

ComandoFinalidade
Configuração
/leadacePonto de entrada — onboarding, configuração / verificação do ambiente, criação de estratégia, visão geral e roteamento
Adicionar prospects (escolha um)
/build-list <name>Pesquisa na web por novos prospects
/import-prospects <name>Carregar CSV / Excel / SQLite
/match-prospects <name>Reutilizar prospects já existentes no seu tenant
Ciclo de vendas
/outbound <name>Enviar por e-mail, formulários de contato, DMs em SNS
/check-responses <name>Coletar respostas do Gmail + SNS → banco de dados
/evaluate <name>PDCA — analisar, melhorar a estratégia automaticamente e expor sinais táticos de rejeição (fila de recontato, indicações de tomadores de decisão, dicas de segmentação)
Reflexão
/check-feedback <name>Expor sinais de PMF a partir do feedback de rejeição (lacunas de funcionalidades, presença de concorrentes) — reflexão ad-hoc sobre o produto
Automação
/daily-cycle <name> [count]Pacote único: verificar-respostas → avaliar → outbound + criar-lista
/setup-cron <name>Agendar /daily-cycle no sistema operacional (LaunchAgent / Task / cron)
Manutenção
/delete-project <name>Excluir permanentemente um projeto e todos os seus dados

Projetos, prospects, registros de divulgação e documentos de estratégia ficam na nuvem — não há arquivos locais para gerenciar. Revise tudo no aplicativo web em https://app.leadace.ai.

Fluxo

flowchart TD
  LA["/leadace<br/>onboard · setup · strategy"] --> P{add prospects}

  P -- web search --> BL["/build-list"]
  P -- CSV / Excel --> IP["/import-prospects"]
  P -- reuse tenant --> MP["/match-prospects"]

  BL --> OB["/outbound"]
  IP --> OB
  MP --> OB

  OB --> CR["/check-responses"]
  CR --> EV["/evaluate"]
  EV -- next round --> P

  CR -. PMF signals .-> CF["/check-feedback"]
  CF -. revisit strategy .-> LA

  DC["/daily-cycle<br/>check + outbound + build, one shot"]
  SC["/setup-cron<br/>OS schedule"] --> DC
  DC -. replaces manual loop .-> P

  DEL["/delete-project"]

Setas sólidas = o ciclo principal. Tracejadas = opcional / ocasional / wrapper. O /evaluate também consome a fatia tática do feedback de rejeição (solicitações de recontato, indicações de tomadores de decisão, clusters de indústria not_relevant) registrada pelo /check-responses — sem etapa separada do usuário.


Licença

O LeadAce é distribuído sob a Licença de Código Aberto LeadAce — um Apache 2.0 modificado com duas condições adicionais:

  • Sem SaaS multi-tenant para terceiros sem uma licença comercial da SurpassOne Inc. Auto-hospedagem para sua própria organização é permitida.
  • O logotipo e os direitos autorais do frontend devem ser preservados em qualquer implantação que exponha o console do LeadAce.

Serviço hospedado (nuvem)

  • Plano gratuito: 1 projeto, 500 prospects, 5 ações de divulgação por dia (limite vitalício de 100)
  • Planos pagos começam em US$ 29/mês. Gerencie sua assinatura pelo aplicativo web.

Auto-hospedagem

Consulte docs/self-host.md. A edição auto-hospedada roda no nível ilimitado — sem Stripe, sem limites. Para consultas sobre licença comercial, entre em contato com leo.uno@surpassone.com.


Para Desenvolvedores

Estrutura do repositório

plugin/                          # Claude Code plugin
├── .claude-plugin/plugin.json   # Manifest
├── .mcp.json                    # MCP server config (uses LEADACE_MCP_URL)
├── skills/                      # Slash commands (each directory has SKILL.md)
├── scripts/fetch_url.py         # Local web fetch helper
└── references/                  # Shared reference docs
backend/                         # API + MCP servers (Cloudflare Workers, Hono, Drizzle)
frontend/                        # Web app (SvelteKit, Cloudflare Pages)
docs/                            # Project-wide docs (deploy runbook, self-host, architecture)
docker-compose.yml               # Bare Postgres for non-Supabase local dev
  • Convenções do plugin e o fluxo de trabalho de alteração de schema: CLAUDE.md
  • Auto-hospedagem e desenvolvimento local: docs/self-host.md

Início rápido (desenvolvimento local)

Configuração única — copie os modelos de env:

cp backend/.dev.vars.example backend/.dev.vars
cp frontend/.env.example frontend/.env

Preencha as chaves do Supabase a partir do supabase status — ele as imprime assim que a stack local estiver em execução, então execute o make dev uma vez primeiro (ele inicia o Supabase), depois cole as chaves.

Para o login do Google na sua stack local, crie também um cliente OAuth do Google e exporte SUPABASE_AUTH_EXTERNAL_GOOGLE_CLIENT_ID / _SECRET no seu shell (via .envrc) antes do primeiro make dev — ele inicia o Supabase, que os lê do shell no momento da inicialização. Consulte docs/self-host.md → Desenvolvimento local. (Essas variáveis de shell controlam o login; as GOOGLE_CLIENT_ID / _SECRET em backend/.dev.vars são separadas — elas alimentam o envio do Gmail.)

Em seguida, inicie toda a stack com um único comando — Supabase, migrações, o seed mestre, os Workers de API/MCP e o frontend, tudo junto. Ctrl-C encerra os servidores de desenvolvimento (o Supabase permanece ativo para um reinício rápido; o make stop o interrompe):

make dev          # or: ./scripts/dev.sh
ServiçoURL
Frontendhttp://localhost:5273
API Workerhttp://localhost:8787
MCP Workerhttp://localhost:8788
Supabase Studiohttp://localhost:54323

Para executar em portas diferentes (ex.: uma está ocupada por outro servidor de desenvolvimento), copie dev.ports.env.example para dev.ports.env e defina as portas lá — o dev.sh reconfigura todas as URLs dependentes (e o login do Google continua funcionando). Os padrões permanecem inalterados quando o arquivo está ausente.

Execute as etapas manualmente
npx supabase start                      # Auth + Postgres on ports 54321/54322
cd backend
npm install
npm run db:migrate
npx tsx scripts/seed-master-documents.ts

npm run dev:api                         # API → http://localhost:8787
npm run dev:mcp                         # MCP → http://localhost:8788  (separate terminal)

cd ../frontend
npm install
npm run dev                             # → http://localhost:5273

Verificações de pré-lançamento:

cd backend && npm run typecheck
cd frontend && npm run check

Atualizando dependências (pegadinha do lockfile)

O npm install com node_modules já presente pode remover dependências opcionais de outras plataformas (binários @emnapi/*, @img/sharp-*, esbuild) do package-lock.json (npm/cli#7961, npm 10.3+–11.x). O CI então executa o npm ci contra esse lockfile podado e falha com Missing: … from lock file. Isso afeta tanto o backend/ quanto o frontend/, e é o que faz os PRs de npm do Dependabot ficarem vermelhos.

Quando você alterar um package.json / package-lock.json (ou corrigir um PR do Dependabot), regenere o lockfile com o toolchain fixado do repositório — não no Docker:

nvm use                 # node 22 (repo .nvmrc) — matches CI
cd backend              # or cd frontend
rm -rf node_modules     # removing this first is what avoids the prune
npm install --no-audit --no-fund

Em seguida, faça commit do package-lock.json regenerado. Alterações apenas de código não precisam disso — o CI consome o lockfile commitado como está.