360 Secure SkillHub
360 安全技能中心

offer-tracker

面向中文秋招/实习求职进度管理,解析批量发送的公司、岗位、状态和 DDL,写入浏览器可打开的 HTML 进度表,并同步维护可合并导入的 JSON 备份,支持增量更新与进度汇报。

sharinchan233
sharinchan233
热度 11.03
最近更新 2026-08-31 18:50:42
分类:效率依赖:读写文件 / 代码执行 / 内部调用大模型应用场景:任务管理 / 数据处理 / 工作流 / 模板 ...

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add offer-tracker
Metadata
name
offer-tracker
description
中文秋招/实习求职进度管理技能。将用户以自由格式("日期 公司-岗位 状态"批量)发送的目标公司、投递岗位、应聘状态、DDL 等信息,识别并录入到一个浏览器可打开的 HTML 进度表,并维护一份可回灌的 JSON 备份。当用户用 /offer、/offer-tracker 或提交成批的"公司-岗位-状态"求职记录时使用。
agent_created
true

offer-tracker:求职进度表工作流

把零散、批量、自由格式的求职消息,整理成一张可搜索/筛选/导出的 HTML 进度表,并同步维护一份 JSON 备份以便浏览器端"合并导入"恢复。本技能聚焦从零建立进度表 → 识别并录入用户发送的多条记录 → 增量更新 → 备份与汇报的完整闭环。

与通用 offer 技能的关系:通用 offer 偏重"招聘邮件/截图 → 漏斗"的抽象规范;本技能提供可直接复用的 HTML 模板与批量中文输入解析规则,适合用户以聊天方式成批报进度的场景。两者可并存,本技能优先用于"建表 + 批量录入"的需求。

资源定位

  • 进度表模板:assets/application-tracker.html(自带 initialRecords 数据数组,浏览器打开即渲染,数据存于 localStorage)。
  • 详细解析规则与样本:references/parsing-rules.md(输入切分、字段抽取、边界案例,按需读取)。

若技能被复制到别处,模板一律从本技能 assets/ 目录读取,不要重新制作。

工作流程

1. 初始化进度表(仅首次)

  1. 检查目标路径(默认桌面 C:/Users/<user>/Desktop/application-tracker.html)是否已存在。
  2. 不存在时,将 assets/application-tracker.html 复制到该路径。
  3. 已存在则跳过复制,直接在其 initialRecords 上增量追加(见步骤 4)。
  4. 同时准备一份 JSON 备份文件(默认桌面 秋招投递进度备份.json),首次写入时放空数组 [] 或首批记录。

说明:浏览器数据存于 localStorage,文件内 initialRecords 只是"种子"。用户在页面上的增改只存浏览器本地。因此每次更新都要同时改 HTML 的 initialRecords 和覆盖写 JSON 备份,保证"合并导入"能补回最新全量。

2. 解析用户输入

输入形如 8.31 a公司-b岗位 投递(备注:xxxxx)。按以下顺序抽取:

  1. 日期前缀:行首 M.DD 或 M月DD → 当年日期 2026-MM-DD;缺省则用当前日期。
  2. 切分多记录:优先按全角分号 ; 切,其次顿号 、、逗号 ,(仅当逗号前后是独立公司条目时)。同一公司名(中文/字母开头)标识一条新记录起点。
  3. 单条字段抽取(详见 references/parsing-rules.md):
    • 公司:段首到第一个 - 之前(公司名本身可含 - 的例外少见,出现时按"第一个 - 分隔公司/其余"处理,岗位可继续含 -)。
    • 岗位:公司之后、状态词之前的部分;拿不准或用户未给时留空,绝不臆造。
    • 状态:由关键词映射(见下方状态表)。"投递后笔试"→ 记 笔试。
    • DDL/时间:ddl9.1、DDL 9.1、(9.1 15:00)、9.1 15:00 等 → 写入 next 字段并备注。
    • 备注:备注:…、(备注:…)、或状态后的补充说明 → note 字段。

3. 处理边界案例

  • 同公司不同岗位/工作室:视为独立记录,不要合并;备注里标明区别。
  • 同公司同岗位:后来的状态(测评/笔试/面试/拒信/Offer)视为对原记录的推进,覆盖早期"已投递",并保留原 id。
  • 岗位未知:position 留空字符串。
  • "预计挂/应该挂":状态仍记实际阶段(如"已投递"),把判断放进 note,等正式拒信再改 status=拒绝。

4. 录入记录

  1. 为每条新记录生成 UUID(python3 -c "import uuid;print(uuid.uuid4())" 或等效)。
  2. 在 HTML 的 const initialRecords = [ 数组末尾(最后一个 } 之后、]; 之前)追加对象,字段固定为: { id, date, time:'', company, position, status, next, note, updatedAt:'YYYY-MM-DDT' }
  3. 用 Edit 工具精确替换 最后一条记录 },\n ]; → 最后一条记录 },\n { 新记录 },\n ];。务必先 Read 确认当前数组末尾内容,避免 old_string 不匹配(status 可能是"一面"而非"已投递"等)。
  4. 覆盖写 JSON 备份:读完现有全部记录(HTML 内 + 本次新增),重新生成完整数组写入备份文件。

5. 汇报

回复包含:本次新增(表格)、完整进度总览(编号 + 公司 + 岗位 + 状态)、文件位置、临近 DDL/面试的提醒。格式参考 references/parsing-rules.md 的"输出样本"。保持要点式、去 AI 味。

状态关键词映射

用户原话关键词 记入 status
投递 / 投了 / 发送 / submit 已投递
笔试 / 测评 / 机考 笔试
一面 / 初面 一面
二面 / 三面 / HR面 / 终面 对应阶段
offer / OC / 录用 Offer
拒信 / 挂了 / 未通过 / 感谢信 拒绝
测评中 / 筛选中 对应阶段

状态不足推断时(如仅自动回执)标记为"待确认"。

默认约定

  • 进度表路径:C:/Users/<user>/Desktop/application-tracker.html
  • JSON 备份路径:C:/Users/<user>/Desktop/秋招投递进度备份.json(单文件,每次全量覆盖)
  • 备份用途:浏览器若只显示旧数据,用页面"合并导入"选该 JSON 即可补齐,不丢原记录。
  • 不得把申请编号、密码、验证码、无关个人信息写入技能模板或公开资源。