Dreamwork
Busca de empregos para assistentes de IA: navegue por vagas, personalize currículos e cartas de apresentação, candidate-se e acompanhe as inscrições. A navegação pública não exige conta; as ferramentas com conta seguem seu plano Dreamwork.
Servidor MCP hospedado
npx add-mcp 'https://mcp.dreamworkhq.com/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
O código-fonte público do MCP do Dreamwork está aqui. O cliente chama a API hospedada do Dreamwork; ele não inclui a API, o banco de dados, os workers ou o serviço OAuth hospedado.
Conecte via HTTP em https://mcp.dreamworkhq.com/mcp, ou execute o cliente stdio
com npx -y @dreamworkhq/mcp. A navegação pública de vagas funciona sem chave.
Para desenvolvimento do código-fonte, use Node 22 e pnpm 10.23.0:
pnpm install --frozen-lockfile
pnpm check
pnpm test
pnpm build
pnpm test:package
O cliente MCP está em apps/mcp. packages/api-contracts e
packages/assistant-contracts contêm suas dependências de código-fonte; elas são empacotadas
no CLI publicado. source-export.json registra o commit do código-fonte do release.
Veja CONTRIBUTING.md para saber como as alterações chegam a um release.
@dreamworkhq/mcp
Servidor MCP para Dreamwork: ferramentas de busca de empregos para agentes de IA. Qualquer cliente MCP (Claude Desktop, Cursor, o MCP Inspector) pode usá-lo para encontrar vagas, classificá-las, personalizar candidaturas, se candidatar e acompanhar resultados para uma pessoa ao longo do tempo.
Este servidor é um gateway leve: ele chama a API do Dreamwork via HTTPS e não possui acesso próprio a banco de dados. O transporte é stdio, e o stdout carrega apenas quadros JSON-RPC.
Instalação
Não há etapa de instalação. Clientes MCP o executam sob demanda com npx. Os exemplos abaixo usam npx -y @dreamworkhq/mcp.
Nenhuma chave ou conta é necessária para começar. Sem DREAMWORK_API_KEY o servidor
executa em modo convidado gratuito, onde seu agente pode pesquisar e ler todos os anúncios.
Os blocos env abaixo são opcionais; adicione uma chave quando quiser as ferramentas
de conta (veja Modo convidado e chaves de API).
Configuração
Claude Desktop
Adicione uma entrada ao seu claude_desktop_config.json
(~/Library/Application Support/Claude/claude_desktop_config.json no macOS):
{
"mcpServers": {
"dreamwork": {
"command": "npx",
"args": ["-y", "@dreamworkhq/mcp"],
"env": {
"DREAMWORK_API_KEY": "sk_..."
}
}
}
}
Reinicie o Claude Desktop após editar. Coloque as credenciais no bloco env. Não
envolva command em um shell ou em um carregador de ambiente como dotenvx run -- …: em um
servidor stdio, qualquer banner que o wrapper imprima no stdout corrompe o fluxo JSON-RPC e
trava as chamadas de ferramentas.
Cursor e outros clientes
Qualquer cliente MCP stdio funciona. O Cursor usa a mesma configuração mostrada acima: aponte o
comando para npx -y @dreamworkhq/mcp e passe DREAMWORK_API_KEY no
ambiente. Para verificar a configuração com o Inspector:
DREAMWORK_API_KEY=sk_... npx @modelcontextprotocol/inspector npx -y @dreamworkhq/mcp
Endpoint hospedado
O Dreamwork também serve essas ferramentas via Streamable HTTP em
https://mcp.dreamworkhq.com/mcp. No claude.ai, Claude Desktop ou ChatGPT,
adicione essa URL como um conector personalizado e faça login no Dreamwork. Não há nada
para instalar e nenhuma chave para colar. A tela de consentimento pergunta quais escopos o
conector recebe.
Clientes que definem cabeçalhos de requisição podem enviar uma chave de API para a mesma URL em vez disso. No Claude Code:
claude mcp add --transport http dreamwork https://mcp.dreamworkhq.com/mcp \
--header "Authorization: Bearer sk_..."
Modo convidado e chaves de API
O modo convidado é gratuito e não precisa de conta. Sem chave definida, o servidor inicia em
modo convidado e expõe as ferramentas públicas somente leitura: browse_listings,
get_listing, get_platform_context e get_upgrade_link. O servidor informa
ao agente que está em modo convidado, para que o agente possa dizer o que funciona agora. As ferramentas
de conta respondem com uma mensagem curta "Sem chave de API" que lista os passos para obter uma.
Uma chave de API precisa de uma conta gratuita. Correspondências classificadas contra seu currículo, vagas salvas,
materiais personalizados, o pipeline, e-mails de recrutadores e candidaturas precisam de uma chave de API.
Qualquer conta do Dreamwork pode gerar uma, incluindo o plano gratuito. Seu plano define
o limite de taxa e as permissões de uso da chave. Entre em
dreamworkhq.com, abra Perfil e depois MCP (ou use
o botão Obter chave na página Agentes), então defina a chave como
DREAMWORK_API_KEY (formato sk_...) e reinicie seu cliente MCP.
Ao gerar uma chave, você escolhe o que ela pode fazer: ler, escrever, candidatar-se, enviar e-mail. A página de perfil começa com todos os quatro selecionados; desmarque qualquer coisa que seu agente não deva fazer. Uma chave pode fazer menos do que você pode, nunca mais.
Variáveis de ambiente
| Variável | Obrigatória | Padrão | Finalidade |
|---|---|---|---|
DREAMWORK_API_KEY | Para ferramentas de conta | nenhuma | Chave de API (sk_...). Desbloqueia pipeline, currículo, candidatura, divulgação, perfil, entrevistas. |
DREAMWORK_API_URL | Não | https://api.dreamworkhq.com | Substitui o endpoint da API (dev local / auto-hospedado). |
DREAMWORK_UNREAD_NOTICES | Não | ativado | off (também 0/false/no) impede que os resultados das ferramentas carreguem uma nota sobre e-mails não lidos de recrutadores. No máximo uma verificação a cada cinco minutos; verificar nunca marca e-mail como lido. |
JOBLESS_API_TOKEN e JOBLESS_API_URL ainda são aceitos como aliases
retrocompatíveis para DREAMWORK_API_KEY e DREAMWORK_API_URL; prefira os nomes DREAMWORK_
para novas configurações.
Telemetria
Para medir o uso, o servidor gera um id de instalação anônimo e aleatório (um
UUID) na primeira execução e o armazena no diretório de estado do seu sistema operacional
($XDG_STATE_HOME/dreamwork/install-id, ~/.local/state/dreamwork/install-id no
Linux/macOS, ou %LOCALAPPDATA%\dreamwork\install-id no Windows). É um valor
aleatório, nunca derivado do seu hostname, nome de usuário ou qualquer atributo da máquina. Ele
conta instalações únicas do uso de convidado (não autenticado). Ele é gravado em
tempo de execução na sua máquina, nunca em tempo de build ou publicação.
Para desativar, defina qualquer uma das variáveis de ambiente:
DREAMWORK_TELEMETRY=0(tambémfalse/no/off)DO_NOT_TRACK=1(o padrão de desativação; tambémtrue/yes/on)
Com a telemetria desativada, nenhum id de instalação é gerado, lido ou enviado.
Ferramentas
O fluxo típico: navegue pelo índice público, salve vagas no pipeline, personalize
materiais, candidate-se e depois acompanhe respostas e entrevistas. Chame
get_platform_context primeiro. Ele descreve o que o Dreamwork pode fazer, para que o agente
escolha o fluxo de trabalho certo.
Públicas (sem chave):
browse_listings, get_listing, get_platform_context, get_upgrade_link
Ações de assistente: uma ferramenta por capacidade no registro de assistentes do Dreamwork, cada uma passando pela mesma escada de autorização e registro de recibos que o assistente no site usa. Uma ação consequente pausa na primeira chamada, respondendo com um resumo e um confirmationToken; envie esse token de volta com argumentos idênticos para prosseguir.
apply, cancel_apply, confirm_hypothesis, dismiss_match, edit_answer, edit_cover_letter, edit_resume, forget_hypothesis, format_resume, generate_pack, get_application_documents, get_application_readiness, get_application_status, get_autopilot_settings, get_autopilot_status, get_career_record, get_communication_preferences, get_inbox, get_job, get_pack_status, get_pipeline, get_preferences, get_resume_download_link, get_resume_work_history, get_task, get_unread_reminders, get_updates_since, get_usage, import_job, list_dismissed_matches, list_matches, list_tasks, mark_applied_offsite, mark_messages_read, move_pipeline, parse_preferences_text, prepare_applications, remember_hypothesis, replace_application_document, reply_to_recruiter, restore_match, restore_material, save_application_answers, save_job, set_autopilot, start_checkout, strengthen_application, undo_last, update_autopilot_settings, update_communication_preferences, update_preferences
Ferramentas diretas do produto: rotas sem ação de registro por trás delas.
add_contact, add_jobs, generate_outreach, generate_resume, get_application_materials, get_generated_resumes, get_profile, get_stats, list_contacts, list_interviews, reopen_application_materials, update_application_materials, update_profile, upload_resume
O servidor também oferece cinco prompts, que hosts como Claude Desktop e
Claude Code mostram como comandos: morning_brief (o que mudou desde a última
verificação), find_and_prepare (pesquisar, escolher, preparar materiais),
apply_to_prepared (preencher respostas ausentes, revisar, candidatar-se com
confirmação), interview_prep e autopilot_setup.
Notas sobre algumas ferramentas:
- Nenhuma ferramenta envia e-mail ou submete uma candidatura na primeira chamada.
apply,reply_to_recruiter,set_autopilot,update_autopilot_settingsestart_checkoutretornamheldcom um resumo e umconfirmationToken, e agem somente quando você envia esse token de volta com argumentos idênticos. - A versão 1.3.0 removeu as ferramentas da 1.2.0 que uma ação de registro substituiu:
search_jobselist_applications(useget_pipeline;browse_listingspesquisa o índice),apply_to_job(apply),add_listing_to_pipeline(save_job),skip_job(dismiss_match) esend_outreach. Respostas e reenvios passam porreply_to_recruitereapply. - Releases após 1.5.1 não incluem mais
list_escalationseresolve_escalation, e o servidor hospedado não as oferece mais. O Dreamwork não devolve mais uma candidatura para você como escalonamento, então não há nada para elas listarem ou resolverem. update_application_materialsereopen_application_materialsestão abertas para a coorte de rollout de Candidaturas que a API admite; fora dela, elas retornam a própria recusa da API.get_statsagrega o pipeline do próprio candidato conectado, então precisa de uma chave como as demais.
Escopos de chave
Uma chave de API carrega escopos, escolhidos quando você a gera:
| Escopo | O que ele desbloqueia |
|---|---|
read | Toda ação de leitura: correspondências, pipeline, caixa de entrada, status, uso, recibos |
write | Gravações baratas e em fila: salvar, dispensar, mover, editar materiais, preferências, links de checkout |
apply | Submeter uma candidatura, cancelar uma que ainda está enviando e Autopilot |
send | Enviar e-mail a um recrutador |
Um escopo protege todos os caminhos para a ação, incluindo rotas diretas.
write é o mínimo para mudar qualquer coisa: uma chave sem ele é recusada em qualquer
requisição que não seja GET, HEAD ou OPTIONS, então uma chave de leitura não pode reescrever
um perfil ou mover o quadro chamando a rota diretamente. Uma chave sem
apply é recusada em apply, e também em
POST /jobs/:id/apply, nas rotas de candidatura turbo e nas rotas de escalonamento. Uma chave
sem send é recusada em reply_to_recruiter, em
POST /outreach/send e em POST /conversations/:id/reply. Uma chamada direta
responde 403 com
api_key_scope_required, o escopo que deseja e uma mensagem dizendo o que fazer;
uma ação de assistente responde action_not_authorized com o mesmo próximo passo.
Uma chave nunca pode gerenciar chaves, rotacionar o token de sessão ou excluir a conta.
Essas ações respondem 403 session_required independentemente do que ela tiver.
A página de perfil pré-seleciona todos os quatro escopos, e uma solicitação de chave que não nomeia escopos recebe leitura e gravação. Uma chave criada antes de os escopos existirem mantém tudo o que já podia fazer.
Solução de problemas
- Chamadas de ferramentas travam / expiram, mas o handshake funciona. Algo está
gravando bytes não JSON-RPC no stdout. Certifique-se de que
commandnão esteja envolvido em um carregador de ambiente ou shell que imprima um banner, e atualize para a versão mais recente (npx -y @dreamworkhq/mcp@latest; limpe o cache do npx comrm -rf ~/.npm/_npxse um build antigo estiver em cache). O stdout deve carregar apenas quadros de protocolo. Todo o log do servidor vai para o stderr. - Toda ferramenta de conta diz "Sem chave de API".
DREAMWORK_API_KEYnão está chegando ao processo. Confirme que está no blocoenvda configuração do seu cliente. - Toda ferramenta de conta diz "Chave de API rejeitada". A chave chegou ao servidor,
mas expirou ou foi revogada. Crie uma nova em Perfil, depois MCP,
substitua
DREAMWORK_API_KEYpor ela e reinicie seu cliente MCP. - Candidatura retorna
missing_onboarding_fieldsoumissing_profile_fields. A ferramenta relata os campos ausentes e o caminho no Dreamwork que corrige cada um. Complete esses detalhes no Dreamwork antes de tentar novamente; a requisição com falha não iniciou uma candidatura.
Desenvolvimento
pnpm --filter @dreamworkhq/mcp check # typecheck
pnpm --filter @dreamworkhq/mcp build # emit dist/
pnpm --filter @dreamworkhq/mcp test # unit tests
O entrypoint stdio é src/stdio.ts; as definições de ferramentas estão em
src/mcp.ts; o cliente da API HTTP é src/client.ts.
O servidor lê a configuração apenas do ambiente do processo. Ele não carrega
um arquivo .env. Para desenvolvimento local, exporte as variáveis no seu shell (ex.:
DREAMWORK_API_URL=http://127.0.0.1:3000 pnpm --filter @dreamworkhq/mcp stdio).
Decisões de fronteira de pacotes, convenções de registro de ferramentas
(registerDreamworkTool), regras de erro/versionamento e gatilhos de revisão adiada
são registrados em ARCHITECTURE.md. O catálogo de ferramentas acima é
verificado contra desvios em relação às ferramentas registradas por test/tool-catalog.test.ts.
Licença
MIT