Instalação do moonlighter¶
O moonlighter roda na sua própria máquina como um servidor MCP para o Claude Code (ou qualquer cliente MCP), mais uma ferramenta de linha de comando por pacote. A configuração tem três passos: rodar o assistente, preencher dois arquivos YAML e registrar o servidor.
Requisitos¶
- uv — baixa o Python 3.14 para você; não precisa instalar separado
- Chrome, Chromium ou Brave — opcional, só necessário se você instalar uma extensão de scan baseada em browser (ex.: scan do LinkedIn, veja Extensões). O produto base (escanear as APIs de ATS configuradas e preparar candidaturas) nunca abre um browser.
- Um backend de LLM, alternável no
config.yamla qualquer momento: llm_backend: cli(padrão) — o Claude Code CLI, cobrado na sua assinatura do Claude. Sem API key.llm_backend: api— o SDK da Anthropic, cobrado em créditos de API. ExigeANTHROPIC_API_KEY: do ambiente ou, quando ela não estiver lá, de uma linhaANTHROPIC_API_KEY=...em~/.config/anthropic/api.env.- Credenciais OAuth do Gmail (opcional — só para o acompanhamento pelo Gmail)
Configuração¶
Com pressa? O caminho inteiro é:
uvx moonlighter init # assistente: grava o config.yaml
# preencha profile.yaml e company_list.yaml (exemplos abaixo)
claude mcp add-json --scope user moonlighter '{"command":"uvx","args":["moonlighter"]}'
# nova sessão do Claude → "escaneia minhas empresas"
Os detalhes:
Opção A — plugin do Claude Code (recomendado)¶
O primeiro comando registra o marketplace; o segundo instala o plugin a partir dele.
Depois rode o assistente de configuração:
Opção B — qualquer cliente MCP¶
Depois registre o servidor MCP:
Usa outro cliente MCP? Registre o mesmo comando e argumentos (uvx / ["moonlighter"]) pelo mecanismo de registro do seu próprio cliente — o comando claude mcp add-json acima é específico do Claude Code CLI.
Depois de qualquer uma das opções¶
O assistente grava o config.yaml em MOONLIGHTER_HOME (padrão: ~/.moonlighter/). Dois arquivos ainda precisam de você:
| Arquivo | O que vai nele |
|---|---|
profile.yaml |
Sua experiência, suas skills e os criteria (os filtros duros e flexíveis que guiam a nota) |
company_list.yaml |
As empresas a escanear e qual ATS cada uma usa |
Comece a partir de profile.example.yaml e company_list.example.yaml.
O assistente grava um config.yaml mínimo; o config.example.yaml documenta o resto da superfície de configuração (resumida em Configuração), principalmente o bloco cv e o bloco email. O bloco cv só é necessário para usar um currículo diferente por empresa: por padrão o prepare_application aponta o cv.pdf do MOONLIGHTER_HOME para a pergunta de upload de arquivo do formulário, e avisa claramente se nenhum estiver configurado. profile.yaml, company_list.yaml, config.yaml e cv.pdf (seu currículo — o moonlighter só diz o nome dele para você anexar, nunca faz o upload sozinho) ficam todos em MOONLIGHTER_HOME (padrão: ~/.moonlighter/).
Reinicie o Claude Code, ou abra uma sessão nova, para que as ferramentas do moonlighter apareçam. Depois de conectado, peça ao Claude para rodar get_pipeline — além do funil de candidaturas, ele reporta problemas de configuração, como perfil, currículo ou browser ausentes.
Próximo passo: rode seu primeiro scan. O acompanhamento de respostas é opcional e configurado à parte — veja Acompanhamento pelo Gmail.
Desenvolvendo no moonlighter¶
Para trabalhar no código em vez de só usar a ferramenta, veja o CONTRIBUTING.md (em inglês).