# Job Application Tracker

> 统计简历投递记录并自动更新 README，支持新增/修改记录和可选同步到 GitHub。

- Skill: `piaoxuemoli/job-application-tracker` (Agent Skill)
- Install (CLI): `npx skillmds@latest add piaoxuemoli/job-application-tracker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/piaoxuemoli/job-application-tracker/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: piaoxuemoli (https://skillmd.com/u/piaoxuemoli)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/piaoxuemoli/job-application-tracker

---


## 目标

通过统一对话参数和脚本入口，完成以下能力：

- 新增投递记录并自动重算统计
- 修改已有记录并自动重算统计
- 仅更新 README 机器维护区块，不改动人工内容
- 自动维护 README 时间轴（日期+公司名横向排列，超宽自动换行）
- 可选执行 git add/commit/push 同步到远端仓库

## 触发线

- 新增触发：用户表达“新增投递”“记录投递”
- 修改触发：用户表达“修改投递”“更新进度”

## 参数与枚举

- 投递类型：秋招、春招、日常实习、暑期实习
- 进度：已投递、测评、HR联系、笔试、一面、二面、三面、四面、面委会、HR面、Offer、拒绝、主动中止
- 进度流程非必经，可跳跃或提前结束

## 推荐执行

- 初始化：`pwsh ./scripts/application-tracker.ps1 -Initialize`
- 新增（交互）：`pwsh ./scripts/application-tracker.ps1 -Action add`
- 修改（交互）：`pwsh ./scripts/application-tracker.ps1 -Action update`
- 明确同步：`pwsh ./scripts/application-tracker.ps1 -Action add -Sync yes`

## 约束

- 修改定位优先级：ID > 公司+岗位+时间
- 编号规则为三位数字（001、002...），每次写回按投递时间升序全量重编号，最早记录编号最小
- 官网必须为 http/https，表中渲染为短连接 `[🔗 投递页](url)`
- 同步必须显式确认（`-Sync ask`/`yes`/`no`）
- 提交信息模板：`docs(tracker): update application records [timestamp]`
- **严重警告（防Bug）**：当用户要求「更新面试时间/进度时间」时，**只能改动 `-Progress` 字段**（例如传入 `-Progress "一面(03-19)"`）。**绝对禁止**修改 `-Time` 字段！`-Time` 字段代表「首次投递时间」，修改它会导致时间轴排序混乱和记录丢失原本的投递日期。
- LLM 在填充时间时，若用户没有指定精确的年份或详细时间，允许留空或仅传入短日期格式。底层脚本已具备自动填充当前时间戳的功能；而在 README 表格渲染中，仅展示对齐到 `MM-dd` 精度的日期。
- 对于所有带有 "面" 字的进度（如一面、二面、HR面），若用户未提供日期后缀，底层脚本将自动加上类似 `(MM-dd)` 格式的日期戳记录。

## 缺失信息补全规则

- 使用本 skill 时，如果用户未提供完整字段，系统必须补问并等待补全后再执行写入
- 新增记录最少需要：公司、投递类型、进度、岗位、官网。时间为选填。
- 修改记录最少需要：`ID`，或 `公司+岗位`（结合时间用于兜底定位）
- 若同步策略不明确，必须显式询问是否执行完整 Git 同步流程（add/commit/push）

## README 时间轴维护流程

- 每次 `add`/`update` 后，脚本同时重写 `TIMELINE` 机器维护区块
- 时间轴展示日期与公司名，按投递时间降序排列
- 时间标签仅展示月-日，不展示小时和分钟
- 渲染使用 HTML `div/span` 横向布局，`flex-wrap: wrap` 超宽自动换行

## Git 同步全流程

- 触发条件：用户明确要求“同步仓库 / 提交并推送 / 处理整个 git 流程”
- 执行顺序：`git add` → `git commit` → `git push`
- `git add`：默认添加本次修改文件；未指定时可添加全部变更
- `git commit`：使用模板 `docs(tracker): update application records [timestamp]`
- `git push`：提交后立即推送当前分支
- 失败处理：
  - `add` 或 `commit` 失败时停止后续步骤并返回错误
  - `push` 失败时保留本地提交，提示用户稍后重试推送

