Rastreador de Solicitudes de Empleo
Use un tablero de empleo local y portátil como la fuente única de verdad para los registros de solicitudes. Permita que el usuario hable de forma natural; resuelva el tablero correcto, conserve la información existente y aplique cambios deterministas y seguros contra conflictos.
Política de Idioma
Mantenga la implementación de la habilidad, las instrucciones del agente, las referencias, los scripts, los esquemas, los comentarios y las pruebas en inglés. Trate los nombres y definiciones en inglés como canónicos.
Las superficies orientadas al usuario pueden localizarse. README.md y los archivos front-end assets/dashboard-* actualmente incluyen chino e inglés. Almacene códigos neutrales al idioma para las etapas y lotes, de modo que el idioma de visualización nunca cambie el significado subyacente.
Referencias Requeridas
Lea solo la referencia necesaria para la operación actual:
- Lea references/data-model.md antes de registrar, actualizar, validar, resumir o recordar.
- Lea references/deployment.md antes de instalar, activar, localizar, mover, reparar o iniciar un tablero.
- Lea references/board-ui.md antes de reconstruir o cambiar el panel, los lanzadores, el servidor local o la lógica de visualización.
Resuelva el Tablero Primero
Denote el directorio seleccionado como BOARD_DIR.
Use python3 en macOS/Linux. En Windows, reemplace python3 en los siguientes comandos con py -3 cuando esté disponible, de lo contrario python.
-
Si el usuario proporciona una ruta, inspecciónela:
python3 <skill-dir>/scripts/board_locator.py inspeccionar --tablero-dir <ruta>Si contiene un
data.jsonheredado válido pero carece del marcador, explique que se agregará un archivo de identidad portátil y no sensible, luego ejecute:python3 <skill-dir>/scripts/board_locator.py marcar --tablero-dir <ruta> -
De lo contrario, descubra tableros marcados:
python3 <skill-dir>/scripts/board_locator.py descubrir -
Interprete el descubrimiento exactamente:
- Código de salida 0: use el único tablero válido e informe su ruta y número de registros.
- Código de salida 4: solicite una ruta existente o permiso explícito para crear un nuevo tablero.
- Código de salida 5: muestre cada candidato y requiera que el usuario elija.
Nunca elija por hora de modificación, número de registros o conjeturas. Nunca cree un tablero simplemente porque el descubrimiento falló. Nunca almacene un registro de ruta absoluta global en el directorio personal del usuario.
Flujo de Trabajo Seguro de Datos
Para cada lectura o escritura:
-
Resuelva
BOARD_DIR. -
Obtenga la fecha real actual cuando las fechas afecten la operación: ejecute
date +%Y-%m-%den macOS/Linux o(Get-Date).ToString('yyyy-MM-dd')en Windows PowerShell. -
Tome una instantánea:
python3 <skill-dir>/scripts/data_store.py instantánea \ --datos <BOARD_DIR/data.json> -
Conserve el
boardTitledevuelto, ellangopcional, losstageLevelsopcionales, todos los registros, todos los campos de registro desconocidos pero válidos, y el ETag devuelto. -
Para una escritura, cree un archivo JSON candidato y reemplácelo de forma segura:
python3 <skill-dir>/scripts/data_store.py reemplazar \ --datos <BOARD_DIR/data.json> \ --entrada <candidato.json> \ --etag-esperado <etag> -
Trate el código de salida 3 como un conflicto de edición concurrente. Tome una nueva instantánea, reaplique solo el cambio solicitado por el usuario y reintente. Nunca fuerce una escritura obsoleta.
-
Confirme el éxito solo después de que la herramienta tenga éxito.
Nunca escriba data.json directamente. Nunca cargue ejemplos de enseñanza sin confirmación explícita del usuario ni los trate como solicitudes reales. Nunca modifique archivos de motor implementados durante una operación solo de datos.
Operaciones Principales
Registrar o Actualizar una Solicitud
- Lea references/data-model.md.
- Coincida un registro existente por empresa y puesto. Si el objetivo es ambiguo, pida al usuario que elija.
- Para un nuevo registro, requiera empresa y puesto. Pregunte una vez por los detalles opcionales faltantes (canal, portal de solicitud, ciudad y lote de reclutamiento), luego espere la respuesta del usuario o una solicitud explícita para omitir antes de guardar.
- Inserte un nuevo registro al principio de
recordspara que las nuevas solicitudes aparezcan primero de forma predeterminada. Conserve la posición existente del array al actualizar un registro. - Para un registro existente, cambie solo los campos que el usuario mencionó.
- Avance el progreso agregando un evento; nunca mantenga un campo de estado separado.
- Para una etapa personalizada no vista, conserve su texto exacto y agregue una regla
stageLevels. Use la ubicación solicitada por el usuario; de lo contrario, predetermine a un nivel distinto inmediatamente antes dek_hr. - Mantenga
notevacío a menos que el usuario pida explícitamente escribir algo en él. - Use el flujo de trabajo seguro de datos e informe el registro y evento exactos cambiados.
Nunca invente una empresa, puesto, fecha, canal, ubicación, salario, resultado o ronda de entrevista.
Mostrar un Resumen de Progreso en Texto
- Lea references/data-model.md.
- Tome una instantánea segura sin modificar datos.
- Coloque los recordatorios con fecha calificados desde hoy hasta los próximos siete días primero.
- Agrupe los registros en: en progreso, ofrecidos, finalizados y aún no solicitados.
- Identifique registros en progreso estancados y hitos próximos.
- Termine con una acción concreta a seguir.
No reconstruya HTML a menos que el usuario lo solicite explícitamente.
Abrir o Reconstruir el Tablero Visual
- Lea references/deployment.md y references/board-ui.md.
- Resuelva y valide el tablero existente antes de tocar los archivos del motor.
- Normalmente, dígale al usuario que inicie el tablero y abra
http://127.0.0.1:8770/. - Vuelva a copiar el conjunto del motor front-end solo cuando falte un archivo del motor o el usuario solicite explícitamente reconstruir o actualizar el motor.
- Conserve
data.jsony todas las copias de seguridad.
Instalar o Activar
Lea references/deployment.md y siga su flujo de trabajo de descubrimiento primero. La instalación de la habilidad y la creación de un nuevo tablero son acciones separadas. La creación de un tablero requiere la intención explícita del usuario.
Reglas Estrictas
- Use solo un
BOARD_DIRresuelto y marcado. - No cree silenciosamente un tablero de reemplazo.
- No escanee recursivamente el directorio personal del usuario.
- No almacene un registro de ruta global.
- Use
data_store.pypara cada escritura de datos del lado del agente. - Conserve los datos no mencionados y los campos existentes.
- Mantenga
notevacío a menos que se solicite explícitamente. - Use códigos de etapa y lote neutrales de
references/data-model.md. - Use la fecha real actual; no confíe en la aritmética de fechas mental.
- Si el permiso de escritura de archivos no está disponible, explique los pasos manuales exactos y nunca afirme que una escritura tuvo éxito.
- No combine una mutación de datos con una reconstrucción del motor a menos que el usuario solicite explícitamente ambas.
- No sobrescriba
data.json,.data.backup.*.jsono.job-tracker-board.jsonal implementar o actualizar archivos del motor.
Recursos Incluidos
scripts/board_locator.py: identificar, marcar y descubrir directorios de tableros de forma segura.scripts/data_store.py: instantánea, validación, verificación de conflictos, reemplazo atómico y copia de seguridad de datos.assets/dashboard-template.html,dashboard.cssydashboard-*.js: módulos de panel localizados y sin dependencias.assets/server.py: servidor local solo de bucle de retorno y API de datos validada.assets/start.command/assets/stop.command: lanzadores de macOS.assets/start-board.bat/assets/stop-board.batcon asistentes PowerShell coincidentes: lanzadores de Windows con verificaciones de salud y registros de diagnóstico.assets/data.json: semilla vacía solo para un nuevo tablero solicitado explícitamente.tools/: utilidades deterministas de regresión de cruce Sankey.