Hoje

O que está esperando você e como o funil está andando.

Precisa de você
Funil agora
Atividade recente Ver tudo

Sinais

O Thomas propõe o que sabe procurar. Você decide o que define um bom contato — nada é coletado até você confirmar.

Montador de grupos

Uma lista de contatos é uma consulta, não um arquivo. Escolha os sinais que um bom contato precisa ter — e os que o desqualificam — e veja quantas empresas combinam agora.

Descobrir

Encontre empresas que combinam com o seu perfil de cliente ideal. Escolha uma fonte, veja quanto vai custar e então execute — nada é chamado até você apertar o botão.

Fonte
Executar

Empresas

Organizações que o Thomas pesquisou, das que mais combinam para as que menos. Clique numa linha para ver os contatos dela.

Contatos

Pessoas que o Thomas encontrou, quanta certeza ele tem do endereço e em que ponto cada uma está.

Campanhas

Sequências de e-mail que o Thomas escreveu e até onde cada uma chegou.

Caixa de saída

Mensagens esperando você. Leia uma, decida, siga em frente — A aprovar, R rejeitar, E editar, J/K para mover.

Conversas

Cada resposta e como o Thomas tratou.

Atividade

Um registro corrido de cada ação dos agentes do Thomas.

Uso

Uso de modelos na sua assinatura (Claude ou Codex): chamadas e tokens por provedor, agente e tarefa. Planos de assinatura não cobram por token, então não há custos em dólar aqui.

Ajustes

As credenciais ficam guardadas no servidor do Thomas, em .env ou no banco de dados (a conexão da uazapi), e nunca são enviadas a lugar nenhum além dos próprios serviços.

Envio
WhatsApp (uazapi)
Provedor de e-mail Ativo: … · definir channels.email.provider em harvey.yaml para gmail, microsoft, smtp ou instantly

Gmail / Google Workspace Recomendado

Use uma caixa de e-mail num domínio secundário dedicado. Crie um cliente OAuth (tipo "App para computador") no Google Cloud Console → API do Gmail, cole o id e o segredo, salve e clique em Conectar o Google. No Google Cloud, deixe a tela de consentimento como Interno: em Teste, o Google cancela o acesso depois de 7 dias.

Caixa de e-mail SMTP + IMAP

Qualquer caixa de e-mail de verdade (AgentMail, Fastmail, uma senha de aplicativo do Workspace). O IMAP usa o servidor e o login do SMTP se ficar em branco.

Ler respostas de outro servidor IMAP ou login

Microsoft 365 / Outlook

A Microsoft desligou o login por senha no IMAP, então as caixas do Outlook se conectam por OAuth. No Entra → Registros de aplicativos, registre um aplicativo só para a sua organização e adicione o URI de redirecionamento http://localhost:8766 como "Cliente público/nativo". Cole os dois IDs aqui, salve e depois rode thomas microsoft auth. Não precisa de segredo do cliente.

Instantly Legado

Pegue a sua chave de API em Instantly, Configurações → Integrações (plano Growth ou superior para usar a API).

Verificação de e-mail Muito recomendado

Verificadores

Adicione pelo menos um para que os e-mails encontrados sejam verificados. Sem nenhum, os endereços ficam como e nunca são enviados. A Reoon tem a melhor faixa grátis (600 por mês).

Opcional

LinkedIn

Para prospecção automática no LinkedIn. O Thomas faz login e busca como uma pessoa.

Cloudflare

Leitura profunda de sites, com JavaScript, durante o treinamento do produto. Cerca de US$ 5 por mês.

Controles

Inicie e pare o ciclo do Thomas e acompanhe o que ele está fazendo.

Agente

Parado

Registros recentes

Ainda não há registros. Inicie o Thomas para ver a atividade.

Ajuda

O que é o Thomas, como funciona e como resolver os problemas mais comuns.

O que é o Thomas?

O Thomas é um agente de vendas autônomo, com IA, da BTW. Depois de configurado, ele trabalha sozinho: encontra empresas que combinam com o cliente ideal, escreve mensagens personalizadas, envia pelo WhatsApp (e, quando ligado, por e-mail) dentro dos limites do dia, lê cada resposta, trata objeções e trabalha para marcar uma reunião. Você revisa tudo por este painel.

O Thomas roda na assinatura do Claude (ou, se você optar, no seu plano do ChatGPT pelo Codex), então não há custo extra de IA. Tudo fica em uma única pasta.

Primeiros passos

São três coisas a fazer:

1. Vá à aba Ajustes e conecte um provedor de e-mail (Gmail é o recomendado) 2. Treine o Thomas no seu produto (pelo Claude ou pela linha de comando) 3. Vá à aba Controles e clique em Iniciar

A aba Hoje mostra exatamente o que já foi feito e o que ainda falta.

Onde fica cada coisa

Tudo o que o Thomas precisa está nesta pasta do projeto. Nada fica guardado em outro lugar.

.envSuas chaves de API e credenciais (nunca compartilhadas nem versionadas)
harvey.yamlDados do seu produto, clientes-alvo e ajustes de comportamento
skills/Arquivos de conhecimento de vendas. Edite para mudar como o Thomas escreve e vende.
skills/product_knowledge.mdTudo o que o Thomas sabe sobre o seu produto (gerado do treinamento)
prompts/Modelos de instruções de cada agente. Personalização avançada.
data/harvey.dbBanco de dados com todos os contatos, campanhas e conversas
data/harvey.logArquivo de registro do que o Thomas está fazendo

Como pegar suas chaves de API

Chave de API da Instantly (legado)

A Instantly é a opção antiga de envio; o recomendado é Gmail ou SMTP.

1. Crie uma conta em instantly.ai (é preciso o plano Growth para usar a API)

2. Vá em Configurações > Integrações

3. Copie sua chave de API

4. Cole na aba Ajustes aqui

Credenciais do LinkedIn (opcional)

Se você quer que o Thomas encontre contatos no LinkedIn, informe o e-mail e a senha do LinkedIn. O Thomas usa um navegador de verdade para buscar como uma pessoa, com pausas aleatórias e limites de ritmo para não ser detectado.

Se você pular isso, o Thomas encontra contatos por buscas no Google e pela leitura dos sites das empresas.

Cloudflare Browser Rendering (opcional)

Só é usado durante o treinamento do produto (quando o Thomas lê o seu site para aprender sobre o produto). Ele cuida de sites pesados em JavaScript que um leitor simples não consegue ler.

1. Crie uma conta em Cloudflare (plano pago do Workers, cerca de US$ 5 por mês)

2. Vá em Workers & Pages > Browser Rendering

3. Crie um token de API com permissão de edição do Browser Rendering

4. Informe o ID da conta e o token de API na aba Ajustes

Sem isso, o Thomas usa um leitor próprio que funciona bem na maioria dos sites, mas não executa JavaScript.

Problemas comuns

"command not found: thomas"
Primeiro é preciso ativar o ambiente virtual: source .venv/bin/activate
A API da Instantly devolve 401
Sua chave de API está errada, ou você precisa do plano Growth (o plano grátis não inclui acesso à API). Confira a chave em Configurações > Integrações no painel da Instantly.
O modo sem tela do Claude falha
Confirme que você rodou claude login no terminal e que tem uma assinatura ativa do Claude. O Thomas usa a assinatura que você já tem, não uma chave de API separada.
As chamadas do Codex falham
Com brain.provider: codex, defina brain.model para o ID de um modelo disponível, incluindo Luna, Sol ou Terra (por exemplo gpt-6.1-sol), ou deixe em branco para escolher um modelo da lista. O Thomas roda esses modelos sem ferramentas; gpt-5.5 também continua aceito quando está no catálogo da sua conta. Rode codex login e escolha "Sign in with ChatGPT" (logins por chave de API são recusados). O Thomas nunca renova o seu login do Codex: se o registro disser que ele venceu ou está perto de vencer, use o Codex uma vez ou rode codex login. O Thomas precisa da CLI do Codex 0.159.3 no macOS ou no Linux (o Codex não é aceito no Windows; use o Claude lá) e recusa outras versões. Enquanto o Codex não pode ser usado, o Thomas pausa (a aba Hoje mostra "Codex pausado" e o motivo), não mexe nas respostas nem nos e-mails na fila e volta quando o problema for resolvido; thomas status --check confere sob demanda. Se o registro disser que o isolamento não pôde ser verificado, uma camada de configuração do Codex está forçando de volta uma ferramenta, um gancho, um servidor MCP ou um endereço próprio — o Thomas recusa enviar instruções até isso ser removido. O Thomas nunca troca para o Claude por conta própria.
O Thomas não está achando contatos
Confira se o seu ICP (perfil de cliente ideal) em harvey.yaml tem cargos, setores e regiões realistas. Se o LinkedIn estiver configurado, confira se as credenciais estão certas. Veja a aba Atividade para saber o que o Thomas tem tentado fazer.