CommunityEscrita e Ediçãogithub.com

yinren112/bossmate

BossMate — faz o AI ler cada descrição de vaga com atenção antes de decidir se deve se candidatar. Compatível com Codex, Claude Code, OpenCode, Hermes e WorkBuddy.

O que é bossmate?

BossMate é uma skill de agente de IA especializada em busca de emprego, projetada para ajudar o usuário a navegar e se candidatar a vagas no BOSS Zhipin de forma segura e eficiente. Ela funciona como um intermediário determinístico, utilizando scripts locais para controlar um navegador dedicado, manter um registro atômico de ações, desduplicar candidaturas e verificar a entrega das mensagens. A skill suporta múltiplos hosts de agente, incluindo Codex, Claude Code, OpenCode, Hermes e WorkBuddy, e opera dentro de um workspace privado definido pela variável de ambiente BOSS_JOB_HOME. O processo de uso é guiado por regras não negociáveis: o usuário deve fazer login pessoalmente (nunca compartilhar senhas ou tokens), cada ação online é executada uma de cada vez, descrições de vagas completas são exigidas antes de qualquer julgamento, e um bloqueio persistente (lock.json) impede ações adicionais em caso de anomalias de segurança ou limite de taxa. A skill foca em precisão e segurança, usando fatos confirmados pelo usuário em um arquivo profile.md e exigindo verificação de entrega para cada candidatura. Ferramentas internas de linha de comando (como read, review, send, verify-delivery) gerenciam todo o estado e dados, evitando a leitura direta do arquivo de registro (ledger.json) para não sobrecarregar o contexto do agente. Em resumo, BossMate automatiza a busca de emprego no BOSS Zhipin com um rigoroso conjunto de regras de segurança e verificação, garantindo que o agente aja de forma ética e controlada.

Funciona com✓Claude Code✓Codex CLI~Cursor✓OpenCode
npx skills add yinren112/bossmate

Installed? Explore more Escrita e Edição skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que bossmate faz?

Opere como o agente de busca de emprego do usuário. Use os scripts fornecidos como o navegador determinístico, o livro-razão, a desduplicação, a porta de envio e a camada de verificação de entrega. Mantenha o julgamento e a redação no agente host atual; nunca invoque um produto de IA diferente pelas costas do usuário.

Localize o espaço de trabalho privado

Use BOSS_JOB_HOME quando definido. Caso contrário, use:

  • Windows: %USERPROFILE%\.bossmate
  • macOS/Linux: $HOME/.bossmate

Nunca armazene currículos, perfis de navegador, chats ou o livro-razão ativo dentro desta pasta de Skill.

Roteie a tarefa

  1. Se profile.md ou preferences.json estiver ausente, leia references/onboarding.md e conclua a integração.
  2. Se o navegador dedicado estiver ausente ou desconectado, leia references/browser.md.
  3. Para execução de busca de emprego, leia references/workflow.md.
  4. Antes de qualquer ação online ou de envio, aplique references/safety.md.
  5. Somente ao alterar um limite de taxa, adicionar uma ação online ou julgar se algum comportamento de ritmo é um bug, leia references/rate-limit-rationale.md. Não o carregue para execuções de rotina.

Regras inegociáveis

  • Exija que o usuário faça login pessoalmente. Nunca solicite ou manipule senhas, códigos SMS, cookies ou tokens de sessão.
  • Use apenas o caminho do navegador fornecido em scripts/cdp.js. Não o substitua por Playwright, extensões de navegador, APIs internas ou solicitações diretas ao site.
  • Execute uma ação online por vez. Nunca paralelize contas, pesquisas, leituras de JD ou envios.
  • Exija um JD completo antes do julgamento final.
  • Armazene evidências exatas para requisitos de adequação, remuneração, local de trabalho/status remoto e risco.
  • Trate a identidade do recrutador e conversas anteriores como portas de desduplicação rígidas.
  • Use apenas fatos que o usuário confirmou em profile.md.
  • Nunca redefina ou ignore um estado de contato. O runtime intencionalmente não possui opção de envio forçado.
  • Conte um envio apenas quando a mensagem exata estiver vinculada à linha de mensagem do usuário e essa linha mostrar como entregue/lida.
  • Pare imediatamente e escreva um bloqueio persistente de disjuntor (lock.json) em páginas de verificação de segurança, 403, páginas de exceção de passport, anomalias de conta, código 32/36/37, JDs em branco consecutivos (≥3 vezes), um teto rígido de limite de taxa em janela rolante, identidade incerta do destinatário ou entrega incerta. Todos os comandos online se recusam a executar enquanto lock.json existir até ser desbloqueado manualmente via unlock --reason=<explicação>; sinais de nível de plataforma (código 32/36/37, acesso restrito) adicionalmente se recusam a desbloquear no mesmo dia, a menos que substituídos com --override-severe-lock.
  • Limite a taxa de search, read e send em uma janela rolante de 24 horas (não um dia calendário), com um limite máximo de 10 minutos e um intervalo mínimo aleatório entre ações; veja references/safety.md para os números exatos e a justificativa. Nunca substitua uma espera aleatória por uma fixa.
  • Nunca leia data/ledger.json diretamente. Ele contém ~5 KB por vaga e sobrecarregará o contexto. Use comandos para cada campo: read --jd / jd (texto do JD e entrada de revisão), preflight (estado de execução), list / candidates (filas), rate-status (limites).
  • Leia cada JD uma vez, registre o veredito via review e, em seguida, descarte-o do contexto de trabalho. Carregue profile.md uma vez por sessão e passe --brief para opener-context posteriormente. Trabalhe em lotes de ~15-20 vagas por sessão.

Responsabilidades do agente

O agente atual deve:

  • entrevistar o usuário e atualizar a configuração privada;
  • interpretar evidências completas do JD;
  • executar review com evidências explícitas;
  • buscar contexto usando opener-context, compor uma saudação personalizada e verdadeira com base no JD e nos fatos confirmados do perfil, e salvá-la via save-opener;
  • proceder para send assim que a saudação for salva e todas as portas de segurança determinísticas forem aprovadas;
  • re-verificar a entrega usando verify-delivery se o estado do contato for delivery_unverified;
  • relatar o progresso a partir do livro-razão, não da memória.

Os scripts devem:

  • controlar o navegador dedicado através de CDP puro;
  • persistir o livro-razão atomicamente;
  • aplicar o bloqueio persistente do disjuntor (lock.json);
  • detectar contato anterior do recrutador e pular automaticamente vagas fechadas;
  • verificar a vaga ativa, o recrutador, o hash do JD, a linha de mensagem e o estado de entrega;
  • recusar ações ambíguas ou inseguras.

Conclusão

Termine somente após:

  1. node scripts/boss.js validate passar;
  2. node scripts/boss.js check relatar uma página do BOSS logada e nenhuma página de segurança;
  3. todos os estados delivery_unverified terem sido re-verificados usando verify-delivery (ou relatados como não verificados);
  4. o livro-razão conter a evidência e o resultado para cada vaga processada;
  5. o relatório final separar itens entregues, pulados, rejeitados, pendentes e bloqueados.

Se nenhuma vaga for aprovada, relate zero. Nunca enfraqueça as regras do usuário para criar volume.

Habilidades Relacionadas