Rastreador de Candidaturas a Empregos
Use um quadro de empregos local e portátil como a única fonte da verdade para registros de candidaturas. Deixe o usuário falar naturalmente; resolva o quadro correto, preserve as informações existentes e aplique alterações determinísticas e seguras contra conflitos.
Política de Idioma
Mantenha a implementação da skill, as instruções do Agente, referências, scripts, esquemas, comentários e testes em inglês. Trate nomes e definições em inglês como canônicos.
Superfícies voltadas para o usuário podem ser localizadas. O README.md e os arquivos de front-end assets/dashboard-* atualmente incluem chinês e inglês. Armazene códigos neutros em idioma para estágios e lotes, de modo que o idioma de exibição nunca altere o significado subjacente.
Referências Obrigatórias
Leia apenas a referência necessária para a operação atual:
- Leia references/data-model.md antes de registrar, atualizar, validar, resumir ou lembrar.
- Leia references/deployment.md antes de instalar, ativar, localizar, mover, reparar ou iniciar um quadro.
- Leia references/board-ui.md antes de reconstruir ou alterar o painel, lançadores, servidor local ou lógica de visualização.
Resolva o Quadro Primeiro
Indique o diretório selecionado como BOARD_DIR.
Use python3 no macOS/Linux. No Windows, substitua python3 nos comandos abaixo por py -3 quando disponível, caso contrário, python.
-
Se o usuário fornecer um caminho, inspecione-o:
python3 <skill-dir>/scripts/board_locator.py inspect --board-dir <caminho>Se ele contiver
data.jsonlegítimo, mas não tiver o marcador, explique que um arquivo de identidade portátil e não sensível será adicionado e, em seguida, execute:python3 <skill-dir>/scripts/board_locator.py mark --board-dir <caminho> -
Caso contrário, descubra quadros marcados:
python3 <skill-dir>/scripts/board_locator.py discover -
Interprete a descoberta exatamente:
- Saída 0: use o único quadro válido e relate seu caminho e contagem de registros.
- Saída 4: solicite um caminho existente ou permissão explícita para criar um novo quadro.
- Saída 5: mostre cada candidato e exija que o usuário escolha.
Nunca escolha por data de modificação, contagem de registros ou suposição. Nunca crie um quadro apenas porque a descoberta falhou. Nunca armazene um registro de caminho absoluto global no diretório inicial do usuário.
Fluxo de Trabalho Seguro de Dados
Para cada leitura ou gravação:
-
Resolva
BOARD_DIR. -
Obtenha a data real atual quando as datas afetarem a operação: execute
date +%Y-%m-%dno macOS/Linux ou(Get-Date).ToString('yyyy-MM-dd')no Windows PowerShell. -
Tire uma captura de segurança:
python3 <skill-dir>/scripts/data_store.py snapshot \ --data <BOARD_DIR/data.json> -
Preserve o
boardTitleretornado, olangopcional, osstageLevelsopcionais, todos os registros, todos os campos de registro desconhecidos, mas válidos, e o ETag retornado. -
Para uma gravação, crie um arquivo JSON candidato e substitua com segurança:
python3 <skill-dir>/scripts/data_store.py replace \ --data <BOARD_DIR/data.json> \ --input <candidate.json> \ --expected-etag <etag> -
Trate a saída 3 como um conflito de edição simultânea. Tire uma nova captura de segurança, reaplique apenas a alteração solicitada pelo usuário e tente novamente. Nunca force uma gravação desatualizada.
-
Confirme o sucesso somente após a ferramenta ter sucesso.
Nunca escreva data.json diretamente. Nunca carregue exemplos de ensino sem confirmação explícita do usuário ou os trate como candidaturas reais. Nunca modifique arquivos de motor implantados durante uma operação exclusiva de dados.
Operações Principais
Registrar ou Atualizar uma Candidatura
- Leia references/data-model.md.
- Corresponda um registro existente por empresa e cargo. Se o alvo for ambíguo, peça ao usuário para escolher.
- Para um novo registro, exija empresa e cargo. Pergunte uma vez sobre detalhes opcionais ausentes—canal, portal de candidatura, cidade e lote de recrutamento—e então aguarde a resposta do usuário ou solicitação explícita para pular antes de salvar.
- Insira um novo registro no início de
recordspara que novas candidaturas apareçam primeiro por padrão. Preserve a posição existente do array ao atualizar um registro. - Para um registro existente, altere apenas os campos que o usuário mencionou.
- Avance o progresso anexando um evento; nunca mantenha um campo de status separado.
- Para um estágio personalizado não visto, preserve seu texto exato e adicione uma regra
stageLevels. Use o posicionamento solicitado pelo usuário; caso contrário, padrão para um nível distinto imediatamente antes dek_hr. - Mantenha
notevazio, a menos que o usuário peça explicitamente para escrever algo nele. - Use o fluxo de trabalho seguro de dados e relate o registro exato e o evento alterado.
Nunca invente empresa, cargo, data, canal, local, salário, resultado ou rodada de entrevista.
Mostrar um Resumo de Progresso em Texto
- Leia references/data-model.md.
- Tire uma captura de segurança sem modificar dados.
- Coloque lembretes com data de hoje até os próximos sete dias primeiro.
- Agrupe registros em: em andamento, oferecidos, encerrados e ainda não aplicados.
- Identifique registros parados em andamento e próximos marcos.
- Termine com uma ação concreta seguinte.
Não reconstrua HTML a menos que o usuário peça explicitamente.
Abrir ou Reconstruir o Quadro Visual
- Leia references/deployment.md e references/board-ui.md.
- Resolva e valide o quadro existente antes de tocar nos arquivos do motor.
- Normalmente, diga ao usuário para iniciar o quadro e abrir
http://127.0.0.1:8770/. - Recopie o conjunto do motor de front-end apenas quando um arquivo do motor estiver faltando ou o usuário pedir explicitamente para reconstruir ou atualizar o motor.
- Preserve
data.jsone todos os backups.
Instalar ou Ativar
Leia references/deployment.md e siga seu fluxo de trabalho de descoberta primeiro. A instalação da skill e a criação de um novo quadro são ações separadas. Criar um quadro requer intenção explícita do usuário.
Regras Rígidas
- Use apenas um
BOARD_DIRresolvido e marcado. - Não crie silenciosamente um quadro substituto.
- Não escaneie recursivamente o diretório inicial do usuário.
- Não armazene um registro de caminho global.
- Use
data_store.pypara cada gravação de dados do lado do Agente. - Preserve dados não mencionados e campos existentes.
- Mantenha
notevazio, a menos que solicitado explicitamente. - Use códigos de estágio e lote neutros de
references/data-model.md. - Use a data real atual; não confie em cálculos de data mental.
- Se a permissão de gravação de arquivo não estiver disponível, explique os passos manuais exatos e nunca afirme que uma gravação foi bem-sucedida.
- Não combine uma mutação de dados com uma reconstrução do motor, a menos que o usuário solicite explicitamente ambos.
- Não sobrescreva
data.json,.data.backup.*.jsonou.job-tracker-board.jsonao implantar ou atualizar arquivos do motor.
Recursos Agrupados
scripts/board_locator.py: identifique, marque e descubra com segurança diretórios de quadros.scripts/data_store.py: tire capturas, valide, verifique conflitos, substitua atomicamente e faça backup de dados.assets/dashboard-template.html,dashboard.cssedashboard-*.js: módulos de painel localizados e sem dependências.assets/server.py: servidor local apenas de loopback e API de dados validada.assets/start.command/assets/stop.command: lançadores macOS.assets/start-board.bat/assets/stop-board.batcom auxiliares PowerShell correspondentes: lançadores Windows com verificações de integridade e logs de diagnóstico.assets/data.json: semente vazia apenas para um novo quadro solicitado explicitamente.tools/: utilitários determinísticos de regressão de cruzamento Sankey.