JD - Triage

评估职位描述与用户存储的职业标准,输出裁决和多轴5星评分。

已扫描
适合谁
求职者、跳槽者、职业规划者
不适合谁
无需评估JD的用户、不想保存个人职业标准的用户
国内可用性
国内友好。面向国内用户较友好。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @bwancoding/jd-triage

Skill 说明

命令、参数、文件名以原文为准

jd-triage

根据用户存储的职业偏好标准评估 JD。两大职责:

  1. 引导并维护 位于 ~/.openclaw/workspace/jd_criteria.md 的个人偏好配置文件。
  2. 评估 用户提供的任意 JD,给出裁决 + 五星评分。

语言

从用户输入中检测其语言,并用该语言回复(支持中文或英文)。如果用户语言不明确,默认使用英文。

表面语言
引导问答、评估输出、/history 列表、/compare 表格用户语言
jd_criteria.md 字段键、jd_history.md 结构标签(EvaluatedVerdictScoresSummaryTriggered red linesAction taken 等)始终英文(机器可读,适合 grep)
jd_criteria.md 值、jd_history.md 自由文本内容(公司名称、JD 标题、概要一句话、红线引用、操作备注)写入时的用户语言——之后绝不自动翻译
裁决级别标签(Strong Apply / Apply / Caution / Skip / OUT存储文件中使用英文;仅 UI 输出时翻译

当列出或比较不同语言编写的历史记录时,将结构标签以当前用户语言渲染,但存储的自由文本内容保持原样(不翻译)。禁止自动翻译——它会丢失细微差别并可能引入错误。

状态机

每次调用时,读取 ~/.openclaw/workspace/jd_criteria.md 并分支:

状态条件动作
S1: 缺失文件不存在执行完整引导,写入文件
S2: 模式缺失文件存在但缺少当前模式的字段仅询问缺失字段,修补文件
S3: 新鲜文件完整且 last_updated ≤ 15 天前直接跳到评估(提示“使用来自 <date> 的标准”)
S4: 过期文件完整且 last_updated > 15 天前问一个问题:“薪资/城市/红线/偏好有变化吗?(y/n)”——n → 刷新时间戳;y → 用户指出哪些字段,仅修补这些字段,刷新
S5: 显式更新用户说“更新条件”/“重新填”//jd-triage update//jd-triage reset完整引导,当前值预先填写;用户仅更改他们想要的部分

引导/刷新后,如果触发时包含 JD,则继续进行评估。如果触发仅为更新请求,则在写入后停止。

引导

如果 ~/.openclaw/workspace/ 不存在,则创建它(mkdir -p)。绝不覆盖现有的 jd_criteria.md,除非经过 S5。

按照 references/bootstrap-questions.md 中的问题提问。将它们分为三个块(个人资料 / 硬门 / 软轴),并一次询问一个块,而不是一次一个字段。收集所有答案后,以用户语言显示完整摘要,并在写入前请求确认。

使用 assets/criteria-template.yaml 中的模板写入文件。字段键必须为英文;值遵循用户语言。

评估

1. 解析 JD

提取:标题、公司名称(如果可见)、职责、要求、薪酬信息、地点、工作强度信号(加班/待命/ crunch 语言)、汇报线和团队结构(如果提到)。

如果 JD 只有标题而没有职责,停止并请用户粘贴完整的 JD。不要猜测。

2. 硬门

按顺序检查。多数失败 → ❌ OUT + 停止。红线关键词匹配使用下面职责权重规则,并可能产生 ⚠️ 条件性 而非 OUT。

  • salary_floor —— JD 给出的薪酬必须达到或超过。如果 JD 没有薪酬信息,标记“未知”并继续(不自动失败)。
  • target_cities —— JD 地点必须在列表中(如果用户接受远程,则远程可行)。
  • lifestyle_tier —— JD 的强度信号不得超过用户的等级。扫描 JD 中匹配更高等级模式的关键词(参见 references/scoring-rubric.md)。
  • hard_red_lines —— 子串/关键词匹配 JD 文本,然后应用职责权重
红线关键词出现的位置裁决
在 JD 标题中,或在前 1–2 个职责要点中,或估计占据角色 >30%❌ OUT(核心职责)
仅出现在尾部要点中,表述为“支持/协助/辅助/support/assist”,且主要职责显然适合用户⚠️ 条件性 —— 继续软评分,标记该红线要点,并添加一个对用户确认的开放问题(与 HR 核实)
仅出现在“资格/优先”部分,而非核心职责中在开放问题中备注,不设门

在裁决中引用匹配到的子串及其位置(哪个要点、具体措辞)—— 不要只引用关键词。

3. 软轴(五星评分)

根据 references/scoring-rubric.md 为每个轴评分 1–5。绝不默认给 3★ 来凑数 —— 如果 JD 缺少某个轴的信息,明确输出 ★★★☆☆ (信息不足)

轴:

  • 职位匹配度 —— 匹配 target_title_keywords
  • 行业/赛道匹配度 —— 匹配 target_industries
  • 公司类型匹配度 —— 查询 company_type_preferences
  • 公司规模匹配度 —— 查询 company_size_preferences
  • 氛围匹配度 —— JD/公司与 vibe_anchors_positivevibe_anchors_negative 的语义比较
  • 薪资匹配度 —— 相对于 salary_floorcurrent_salary

4. 裁决

将总分 + 轴分布映射到四个等级之一:

层级标准
强烈申请所有维度 ≥ 4★,无维度低于 3★,无硬性门控接近失败
🎯 申请平均分 ≥ 3.5★,无维度低于 2★
⚠️ 有条件在非核心职责中命中红线关键词(职责权重规则),或者存在可能改变结论的关键未知项(薪资/城市/范围)——列出在决定前需要向 HR 确认的问题
⚠️ 谨慎平均分 ≥ 2.5★ 或存在一个严重短板(例如氛围 1★)——申请前需深入调查
跳过平均分 < 2.5★ 或某个高权重维度为 1★
OUT硬性门控未通过(核心职责红线、薪资低于下限、城市不匹配、生活方式超出层级)

氛围匹配 一项得 1★ 就足以降至 ⚠️ 谨慎,即使其他维度评分很高。氛围是承重维度。

5. 记录到历史

做出判定(无论结果如何)后,向 ~/.openclaw/workspace/jd_history.md 追加一条记录。生成 ID JD-YYYYMMDD-XXX(每日顺序递增)。详细程度遵循用户在标准文件中的 history_detail 设置(默认 standard)。记录格式见 references/history-format.md

history_detail = full 时,在存储原始 JD 文本(可能包含招聘方联系方式/保密薪酬信息)之前,需向用户确认一次。

6. 输出模板

判定:<emoji + 层级>

职位匹配         ★★★★☆
行业/赛道        ★★★★★
公司类型         ★★★☆☆
公司规模         ★★★★☆
氛围             ★★☆☆☆  ← 引用锚点:"<正面或负面锚点名称>","<触发该评分的 JD 短语>"
薪资匹配         ★★★★☆

一句话总结:<核心判断,一句话>
行动:<申请 / 先与 HR 确认 / 先谈判 / 备选 / 跳过>

待确认问题(决定前需向 HR 咨询):
- <例如:总包范围>
- <例如:"支持商业化"占比,是核心 KPI 还是边缘协作>
- <仅在存在真正未知项时列出;否则省略此部分>

💡 如果本次评估让你对任何标准产生了新的看法,请说 "update criteria"。

对于 ⚠️ 有条件(非核心职责中的红线),使用上述标准模板,但一句话总结必须明确说明条件:"如果 <X 确认> 则适合;如果 <X 是核心职责> 则 OUT。"

对于 ❌ OUT(硬性门控未通过),使用以下更长的格式——即使跳过,也要展示哪些方面匹配,以便未来类似的 JD 更容易识别:

判定:❌ OUT
触发条件:<红线 / 未通过的门控,包括位置和确切短语>
一句话总结:<原因>

已匹配的优势(供未来参考):
- <例如:新加坡/英语环境——匹配外企偏好+海外背景>
- <例如:Agent + RAG + 提示工程——匹配目标岗位关键词>
- <仅列出具有强烈正面信号的维度;无则省略>

行动:跳过

历史记录与比较

该技能维护一个仅追加的日志文件 ~/.openclaw/workspace/jd_history.md。每次评估追加一条记录,包含唯一的 JD-YYYYMMDD-XXX ID、判定结果、评分以及评估时使用的 criteria_version

触发方式

输入操作
/jd-triage history 或 "show my JD history" / "看下之前评估过的 JD"以单行表格列出最近 10 条记录
/jd-triage compare <id1> [<id2>] 或 "compare with last one" / "和上次对比"并排显示评分对比表
用户通过公司名称引用之前的 JD通过 jd_history.md 的 grep 解析为 ID,然后执行相应操作

标准版本

标准文件包含一个整数字段 criteria_version。每次进行 S1 / S2 / S5 写入时递增此版本号。对于 S4 "无变更" 确认(仅更新 last_updated),不要递增版本号。

当比较两条 criteria_version 值不同的记录时,在输出前添加一条 ⚠️ 这两次评估之间的标准已发生变化 的警告。

记录格式、ID 生成和命令详情见 references/history-format.md

行为约束

  • 不要粉饰。 OUT 就是 OUT。不要因为用户“已经在考虑”这个职位而软化语气。
  • 不要编造评分。 如果 JD 缺少某个维度的信息,标注“信息不足”——绝不要用 3★ 来填补。
  • 不要从训练数据中预填。 启动字段仅来自用户。不要推断薪资标准、城市层级或公司声誉。
  • 氛围评分必须引用锚点。 每次氛围评分都要明确指出用户画像中的一个正面或负面锚点,并引用触发该评分的 JD 短语。禁止仅凭形容词做出判断。
  • 红线是加权的,不是字面的。 在宣布 OUT 之前,应用职责权重规则。一个出现在尾部支持性要点中的关键词应视为“有条件”,而非 OUT。
  • OUT 时仍要输出优势。 跳过时,要展示哪些方面匹配(公司类型、语言环境、部分职责匹配),以便用户积累信号。
  • 待确认问题是第一优先级的。 当薪资/城市/范围未知或触发“有条件”时,输出一个“待确认问题”列表——具体可向 HR 询问的事项——而不是默默忽略未知项。
  • 不要空洞的鼓励。 避免“希望有帮助”/“祝求职顺利”之类的结尾。
  • 信任标准文件。 如果用户手动编辑了 jd_criteria.md,解析其中的内容。如果某个字段格式错误,指出该行并要求用户修正——不要覆盖。
  • 一次评估一个 JD。 如果用户粘贴了多个 JD,逐个评估,不要合并报告。

检测触发条件

当用户输入包含以下任何内容时,激活此技能:

  • 一个长度 ≥ 200 字符的粘贴块,看起来像 JD(类似标题的第一行 + 带项目符号的职责/要求)
  • 显式调用命令:/jd-triage/jd-triage update/jd-triage reset/jd-triage history/jd-triage compare ...
  • 短语如 "should I apply"、"evaluate this role"、"这个岗位值得投吗"、"帮我看下这个 JD"、"重新填 criteria"、"update my criteria"、"compare with last one"、"和上次对比"、"看下评估过的 JD"

本技能包含的文件

  • SKILL.md — 此文件(主要行为)
  • _meta.json — ClawdHub 发布元数据
  • assets/criteria-template.yaml~/.openclaw/workspace/jd_criteria.md 的模板
  • references/bootstrap-questions.md — 完整引导问题集(首次运行 / S5 时加载)
  • references/scoring-rubric.md — 每轴 5 星定义(评估期间加载)
  • references/history-format.mdjd_history.md 条目格式 + 比较命令(记录或比较时加载)

仅在对应流程运行时加载参考文件,以保持主上下文轻量。

B
@bwancoding

已收录 1 个 Skill

相关推荐