---
name: jwb-jd
description: Use when 用户粘贴或提供岗位 JD、招聘信息、职位描述，要求判断是否值得投递、评估岗位匹配度、给岗位打分或比较多个 offer 方向时。English triggers：job description, paste a JD, is this job worth applying for, evaluate job fit, score a position, compare offer directions.
compatibility: Python 3.12+；jobws 指仓库内的 python tools/jobws.py（在仓库根运行）；工作区已初始化；全本地运行，产物只写你的工作区。
license: MIT
metadata:
  version: 26.10.0
allowed-tools: Bash(jobws:*)
---

# 解析 JD 并判定是否值得投递

**执行前必读**：工作区的 `AGENTS.md`（档案、硬门槛事实、自定义红线）与 `jwb-recruit-coach` 技能（评分标准与档位表）。不读这两处不得开始评分。

## 流程

### 1. 建岗目录并存原文

在工作区的 `01_岗位池/` 下建 `<公司>_<岗位>/`，把 JD 原文完整落盘为 `JD原文.md`。

**保留原始文本，不改写、不摘要、不翻译。** 后续判断都要能回到原文核对。

只给岗位名没给 JD → 提示需要 JD 原文，不得凭岗位名臆测内容。

### 2. Eligibility Gate（硬门槛过滤）

顺序判定：学历 → 专业 → 届数 → 外语 → 城市。事实只从档案的「硬门槛事实」取值。

**字段为 `[待填]` → 门槛结论写「待补档案」，不终止流程**：解析卡「硬门槛」节加一行 `缺失字段: <字段名、…>`，缺失字段值保持 `[待填]`；「结论」节写 `补齐档案后可继续评分`。**仍不打分、不生成材料**，并向用户输出：

```
无法完成硬门槛判定：AGENTS.md 中「<字段名>」尚未填写。
补齐后重新执行即可继续评分。
```

**明确 fail（档案有事实、判定为不满足）→ 终止流程**：解析卡只填「基本信息」与「硬门槛」两节，写明不通过原因。不打分、不生成材料。

**禁止猜测，禁止按「可能满足」放行。**「待补档案」不是放行——只有明确 fail 才终止，档案没填的不判死也不放行，判定权在补完档案之后。

城市拆两级：

- **硬性不可行**（要求本地户籍、必须长期驻外、明确不接受异地）→ fail，终止；
- **偏好类**（"本地优先""周边亦可""可接受搬家"）→ 不判 fail，在「培养与稳定性」扣分：轻度 -3、较强 -5，**城市相关扣分合计不超过 5**（判据见 jwb-recruit-coach 技能 references 下的 scoring.md）。

工作形态问题（长期驻场、倒班、长期出差）不在此判定，同样归「培养与稳定性」扣分。

### 3. 确认领域与方向

词典在领域插件目录（`profiles/<domain-id>/lexicon.md`），方向锚点在 `directions/<direction-id>.md`。

不确定时可先查：

```
jobws jd --show-profile --domain <X> --direction <Y>
```

方向不属于当前领域 → 回退该领域第一个方向，并在解析卡末尾标注「结论仅供参考」。

### 4. 填写解析卡

从 `01_岗位池/_模板_解析卡.md` 复制模板。四维度打分（权重与档位见 `jwb-recruit-coach` 技能的评分表）：

- **技术匹配 30**：比对插件词典。Primary 3 分/项、Secondary 1.5 分/项。命中 Weak 不扣分，但必须登记并触发风险提示。
- **经历匹配 25**：逐条比对档案中的经验资产与 JD 职责，对上核心职责 8–10 分、侧面支撑 3–5 分、无关 0 分。**必须回查 `00_事实库/`**，不得以概述为准。
- **方向契合 30**：按方向锚点表取值。岗位名与职责不一致时以职责为准并说明依据。
- **培养与稳定性 15**：按教练技能的四分档判据。

评分依据要引用 JD 原文措辞与 `00_事实库/` 具体条目，不写空泛理由。

**证据标签（每次命中必标）**：技术匹配每一条命中都要在词条后追加【精确/模糊/语义】标签说明「这条匹配是怎么判出来的」，写法与判据见 `references/scoring-evidence.md`。旧卡无标签也能读，但新卡一律带标签以支撑前端「评分证据可追溯」下钻展示。

### 5. 校验并出结论

```
jobws jd "<工作区>/01_岗位池/<公司>_<岗位>/解析卡.md" \
    --workspace <工作区> --domain <X> --direction <Y>
```

校验失败（退出码非 0）→ 按指出的字段修正后重跑，**不得跳过校验直接给结论**。

通过 → 把档位与下一步回填解析卡「结论」小节，并向用户输出：总分、四维度明细、档位、下一步、命中 Weak 项及桥梁话术建议。

### 6. 桥梁话术的约束

只能指向**真实可迁移能力**，并明确标注是知识性了解。**不得生成听起来像亲身经历的表述。**

## JD↔简历差距清单

解析卡通过后，可选做差距分析——它把「补关键词」拆成两类，直接服务诚实红线：

- **已覆盖（matched）**：JD 要求的词典词，当前简历版本里能直接证明
- **可召回（injectable）**：母版（`简历_主版_v1.0.md` + `00_事实库/`）里有、这一版没用上 —— **从既有事实召回即可，不构成编造**
- **真实缺口（missing）**：简历与母版都没有 —— 只能靠补真实经历，**不得靠改词硬凑**

给用户的建议措辞必须区分「召回」与「补经历」：injectable 是安全的，missing 永远不建议靠编造解决。命令与输出细节见 `references/scoring-evidence.md`；Web 端岗位详情页有同样的差距面板。

## 输出要求

不复述 JD 内容。聚焦：判了什么、为什么这么判、下一步做什么。

## 宿主形态：没有仓库时（MCP / DSH）

宿主未接仓库（`jobws` CLI 不可用，如装进 DSH 的形态）时，本流程等价走 MCP 工具面
（工具名含 `jobws`，宿主可能显示为 `mcp__jobws__*`）：

- 选岗位与读数据：`list_jobs`；岗位正文用只读工具 `read_job_text(job_name, kind)`
  ——`job_name` 是**单个目录名**（如 `云帆_后端`，不是路径），`kind` 取 `jd`（JD 原文，
  默认）或 `card`（解析卡）。**不要依赖 `jobws://` 资源读法**：DSH 宿主不桥接 MCP
  资源（2026-10-12 核验），资源只在支持 resources 的宿主（CodeBuddy / Claude Code）可用。
- 评分卡就绪后用 `score_jd` 读取与校验（四维之和必须等于总分才给档位）。
- **可得性纪律**：正文读不到（岗位目录下没有 JD原文.md / 解析卡.md）就是没有——请用户
  从界面或工作区提供，**绝不凭岗位名推断 JD 内容**；本形态没有写文件的工具，要落盘请
  引导用户回界面或仓库形态，**不要声称已写入**。
- 输出形态：结论先行（建议投 / 谨慎 / 不投）→ 核心理由 → 能力缺口。
