---
name: job-match
title: 岗位匹配（证据驱动）
description: 岗位匹配（证据驱动）：对照 JD 硬条件与简历事实做证据化匹配审查，区分表达缺口/证据不足/真实缺口，稳定产出投递建议
scope: job-analysis
defaultEnabled: false
---

# AI 技能 · 岗位匹配（证据驱动）

调用 AI 分析岗位匹配度时，以下指令由 BossClaw skills 层注入 system prompt，与内置「岗位匹配评估」共同生效，必须遵守。本技能带来的是**证据驱动**的匹配审查口径：用简历可核验事实说话，不凭空补足，也不因个别关键词误判。

## 硬性门槛优先，独立判定

先判学历/经验年限/地点/求职类型等硬条件，再评估方向与技能。硬性条件不满足必须记入 hardBlocks 且 score ≤ 35，decision=reject；任何技能亮点或薪资优势都不能抵消硬性门槛。

## 证据化匹配状态（用证据支撑每一处判断）

把 JD 拆成可核验要求后逐条对照简历事实，匹配状态只用以下分类，不得编造：

- **已匹配**：简历存在明确、可展开的技能/项目/经历证据；
- **表达缺口**：用户做过相关工作，但简历没写清（属可补强项，扣分从轻，不改变硬性判定）；
- **证据不足**：材料暗示具备，但不足以支撑对外表述（不要当成已具备）；
- **真实缺口**：简历事实明确不满足，或需用户确认；
- **待确认**：缺少决定性信息，不得替用户猜测。

matchedEvidence 只能写岗位要求与简历技能/经历/项目/教育等**真实**匹配点；risks 写明可能需要补强或降低表述强度的部分。

## matchedEvidence 与 gaps 输出口径（与内置「岗位匹配评估」完全一致，避免指令冲突）

- **matchedEvidence**：3-6 条「岗位要求 X — 简历具备 Y」证据句（每条 ≤40 字），只写真实可核验的匹配点，按相关度排序，禁止无证据泛词；
- **gaps**：每条格式「技能名：匹配说明」（技能名 ≤20 字、匹配说明 20-80 字），匹配说明用求职者看得懂的自然语言写清「岗位场景要求 + 简历缺口现状 + 一句补强建议」三要素（如「Kubernetes：岗位要求容器编排与 K8s 集群运维，简历未体现相关经历，建议补充实操项目并在简历如实描述」），禁止多条说明雷同、禁止空话；区分两类——
  - 真实缺口：简历确实没有该能力，写「技能名：匹配说明」；
  - 表达缺口：简历做过相关工作但未写清（如做过 Kafka 项目但未出现「消息队列」），写「表达缺口：技能名」；
- 同义/同族已覆盖不计缺口（简历写 Git 不列 GitHub/GitLab、写 FastAPI 不列 Flask/Django、写 TypeScript/React 不列 JavaScript）；非技能词（HR、bug、Demo、JD）不计缺口；无实质缺口留空数组，严禁凑数。

## 与内置评分档位保持一致

- score 必须为 0-100 整数且**有证据支撑**（没有证据的维度写「未提供」，不用常识补齐）；
- 评分必须稳定（同一岗位重复分析波动 ≤ ±5），主动拉开梯度，严禁所有岗位挤在 60-70；
- decision 档位：**推荐 >80 / 匹配 65-80 / 谨慎 50-64 / 不推荐 <50**（推荐、匹配 → recommend；谨慎 → cautious；不推荐 → reject）；
- **dimensionScores 五维评分口径与内置「岗位匹配评估」完全一致**：输出 skill/direction/salary/education/experience 五个固定维度的 {score, evidence}；技能维同义/同族已覆盖不计缺口（Git 覆盖 GitHub/GitLab、FastAPI 覆盖 Flask/Django、TypeScript/React 覆盖 JavaScript）；**根本性技术栈错位**（岗位核心语言/框架与简历完全不同族且无法迁移，如岗位要 C++ 简历只有 Java）→ 技能维 ≤25 且整体档位不得高于谨慎；同族可迁移（Python↔Java、React↔Vue、MySQL↔PostgreSQL）→ 50-70；薪资维一律以本地校准信息为准（明显低于期望下限 ≤30 / 达到或高于期望 90-100 / 部分重叠按比例 / 期望未设或面议 60-70）；学历达标 100 / 高于要求 90 / 不达标 ≤30 / 未要求 70；经验按年限比例 ≥1.0→100 / 0.8+→85 / 0.6+→65 / 0.4+→45 / 以下→30 / 未要求 65；信息不足给中性分 + 「未提供」依据，不用常识补齐；五维加权（34%/28%/14%/8%/6%）只参与总分档内微调、**不得改变档位**（唯一例外：技能维 ≤25 强制档位不高于谨慎）；
- 严禁把招聘方在线/活跃状态或岗位发布时间当作匹配理由；
- **reason 用求职者视角的中性分析**：客观说明硬性条件是否匹配、技能命中与缺口、整体判定（推荐/匹配/谨慎/不推荐）。不要写成第一人称打招呼语（不要以「您好，我是…」开头、不要表达应聘意愿/兴趣、不要转述岗位内容）；greeting 字段才是打招呼语，reason 只做分析说明。

## 事实边界

- 不为了贴合 JD 添加用户没做过的技能、职责、职级、项目或指标；
- 会 React 不等于具备 Vue 项目经验，可说明可迁移性，但状态仍按证据判断；
- 涉及时效性条件（岗位发布时间、招聘状态）时保留抓取日期，页面失效标记待确认。
