Communitygithub.com

ShuchangZhang/求职申请追踪器

一个本地优先的求职申请追踪工具,支持自然语言更新和可视化桑基图仪表盘。

求职申请追踪器 是什么?

这个AI技能实现了一个本地优先的求职申请追踪器,用户可以通过自然语言与智能体对话,轻松记录和更新求职进度。它使用用户指定的本地目录作为唯一数据源,通过原子写入和ETag冲突检测确保数据安全,避免并发编辑导致的数据损坏。技能支持通过桑基图仪表盘可视化申请流程,自动识别并处理公司、职位、渠道等核心字段,能够根据事件流而非状态字段来推进申请阶段,并处理自定义阶段。该技能适用于Claude Code、Cursor、Codex等支持自定义技能的AI编码代理,特别适合求职者管理多个申请,提供文本进度摘要和本地可视化看板两种交互方式。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add ShuchangZhang/job-application-tracker

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

求职申请追踪器 是做什么的?

将本地便携式求职看板作为申请记录的单一数据源。让用户自然语言描述需求;智能体负责解析正确的看板,保留已有信息,并执行确定性的、无冲突的修改。

语言策略

技能实现、智能体指令、参考文档、脚本、数据模式、注释和测试均使用英文。英文名称和定义视为规范。

面向用户的界面可本地化。README.md 和 assets/dashboard-* 前端文件当前包含中文和英文。对阶段和批次使用语言无关的代码,确保显示语言不会改变底层含义。

必需参考文档

仅读取当前操作所需的参考文档:

首先解析看板路径

将选定的目录记为 BOARD_DIR。

在 macOS/Linux 上使用 python3。在 Windows 上,将以下命令中的 python3 替换为 py -3(如果可用),否则使用 python。

  1. 如果用户提供了路径,则检查该路径:

    python3 <skill-dir>/scripts/board_locator.py inspect --board-dir <path>
    

    如果目录包含有效的旧版 data.json 但缺少标记文件,则解释将添加一个便携式、非敏感的身份文件,然后运行:

    python3 <skill-dir>/scripts/board_locator.py mark --board-dir <path>
    
  2. 否则,发现已标记的看板:

    python3 <skill-dir>/scripts/board_locator.py discover
    
  3. 对发现结果进行精确解释:

    • 退出码 0:使用唯一的有效看板,并报告其路径和记录数。
    • 退出码 4:询问现有路径或明确许可创建新看板。
    • 退出码 5:显示所有候选看板,要求用户选择。

不得根据修改时间、记录数或猜测来选择。不能因为发现失败就创建看板。不得在用户主目录中存储全局绝对路径注册表。

安全数据工作流

每次读取或写入:

  1. 解析 BOARD_DIR。

  2. 获取真实当前日期(当日期影响操作时):在 macOS/Linux 上运行 date +%Y-%m-%d,在 Windows PowerShell 中运行 (Get-Date).ToString('yyyy-MM-dd')。

  3. 创建快照:

    python3 <skill-dir>/scripts/data_store.py snapshot \
      --data <BOARD_DIR/data.json>
    
  4. 保留返回的 boardTitle、可选的 lang、可选的 stageLevels、所有记录、所有未知但有效的记录字段以及返回的 ETag。

  5. 对于写入操作,创建候选 JSON 文件并安全替换:

    python3 <skill-dir>/scripts/data_store.py replace \
      --data <BOARD_DIR/data.json> \
      --input <candidate.json> \
      --expected-etag <etag>
    
  6. 将退出码 3 视为并发编辑冲突。拍摄新快照,仅重新应用用户请求的更改并重试。绝不强制执行过时的写入。

  7. 仅在工具成功后确认成功。

绝不直接写入 data.json。未经用户明确确认,不得加载教学示例或将其视为真实申请。在仅执行数据操作期间,不得修改已部署的引擎文件。

核心操作

记录或更新申请

  1. 阅读 references/data-model.md。
  2. 根据公司和职位匹配现有记录。如果目标不明确,请用户选择。
  3. 对于新记录,需要公司和职位。询问一次缺失的可选详细信息——渠道、申请门户、城市和招聘批次——然后等待用户的回答或明确要求跳过后再保存。
  4. 在 records 数组开头插入新记录,以便新申请默认显示在最前面。更新记录时保留其原有数组位置。
  5. 对于现有记录,仅更改用户提到的字段。
  6. 通过追加事件来推进进度;绝不维护单独的“状态”字段。
  7. 对于未见过的自定义阶段,保留其确切文本并添加 stageLevels 规则。使用用户要求的放置位置;否则默认放在 k_hr 之前的一个独立级别。
  8. 保持 note 为空,除非用户明确要求在其中写入内容。
  9. 使用安全数据工作流,并报告确切修改的记录和事件。

绝不编造公司、职位、日期、渠道、地点、薪资、结果或面试轮次。

显示文本进度摘要

  1. 阅读 references/data-model.md。
  2. 创建安全快照,不修改数据。
  3. 首先列出从今天起未来七天内符合条件的带日期提醒。
  4. 将记录分为进行中、有 offer、已结束和尚未申请。
  5. 识别停滞的进行中记录和即将到来的里程碑。
  6. 以一个具体的下一步操作结尾。

除非用户明确要求,否则不重建 HTML。

打开或重建可视化看板

  1. 阅读 references/deployment.md 和 references/board-ui.md。
  2. 在接触引擎文件前,先解析并验证现有看板。
  3. 通常告知用户启动看板并打开 http://127.0.0.1:8770/。
  4. 仅在引擎文件缺失或用户明确要求重建或更新引擎时,才重新复制前端引擎集合。
  5. 保留 data.json 和所有备份。

安装或激活

阅读 references/deployment.md 并遵循其“先发现”的工作流。技能安装和创建新看板是两个独立的操作。创建看板需要用户明确意图。

硬性规则

  1. 仅使用已解析、已标记的 BOARD_DIR。
  2. 不得静默创建替代看板。
  3. 不得递归扫描用户主目录。
  4. 不得存储全局路径注册表。
  5. 每次智能体端数据写入必须使用 data_store.py。
  6. 保留未提及的数据和现有字段。
  7. 保持 note 为空,除非用户明确请求。
  8. 使用来自 references/data-model.md 的中立阶段和批次编码。
  9. 使用真实当前日期;不依赖心理日期计算。
  10. 如果文件写入权限不可用,则解释确切的手动步骤,绝不说写入成功。
  11. 不要将数据修改与引擎重建合并,除非用户明确要求两者。
  12. 在部署或更新引擎文件时,不得覆盖 data.json、.data.backup.*.json 或 .job-tracker-board.json。

捆绑资源

  • scripts/board_locator.py:识别、标记和安全发现看板目录。
  • scripts/data_store.py:快照、验证、冲突检查、原子替换和备份数据。
  • assets/dashboard-template.html、dashboard.css 和 dashboard-*.js:本地化的、无依赖的仪表盘模块。
  • assets/server.py:仅回环的本地服务器和经过验证的数据 API。
  • assets/start.command / assets/stop.command:macOS 启动器。
  • assets/start-board.bat / assets/stop-board.bat 及配套的 PowerShell 辅助脚本:Windows 启动器,带健康检查和诊断日志。
  • assets/data.json:仅用于明确要求创建的新看板的空种子文件。
  • tools/:确定性的桑基图交叉回归工具。

相关技能