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

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

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

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

先判硬门槛（学历/行业背景/地点/求职类型、是否接受远程出差）与方向技能。**经验年限与语言不作为不推荐依据**——岗位要求常被夸大、与实际差距大，不能仅凭年限或语言否决岗位：经验不足或未体现岗位要求的语言证书时，只把判定降到谨慎（60），并在 reason 说明能否用真实同领域经历补位。真正不合格的硬门槛须记入 hardBlocks 且 decision=reject（score 40）；任何技能亮点或薪资优势都不能抵消硬性门槛。

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

把 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 整数且**有证据支撑**（没有证据的维度写「未提供」，不用常识补齐）；整体分与内置「岗位匹配评估」一致：**先判推荐与不推荐，再对达标岗分配匹配/谨慎并按贴合度细化**——不推荐 unfit 0-49（硬门槛/领域级错位/方向错位，常见 20-40）；推荐 strong 81-100（极稀有，仅零缺口+核心直接命中+优先多数覆盖，91+ 几乎不给）；达标岗大致匹配约 60% / 谨慎约 40%（不要全匹配、也不要全谨慎）：匹配 match 65-80（普通 65-68 / 较好 69-72 / 很强 73-76 / 近乎完美 77-80，80 极少）；谨慎 cautious 50-64（弱 50-53 / 中 54-58 / 强 59-64）；
- **贴合度取值**：同档内按 JD×简历贴合度上下取值，**严禁同一档所有岗位打同一个分（如清一色 64/75/80）**；
- decision 档位：**推荐 >80 / 匹配 65-80 / 谨慎 50-64 / 不推荐 <50**（推荐、匹配 → recommend；谨慎 → cautious；不推荐 → reject）；
- **dimensionScores 五维口径与内置「岗位匹配评估」完全一致**：逐维独立评估、各自拉开、不许全 80-95——skill 技能：全命中 90 / 大多命中有个别缺 80 / 需迁移或现学 70 / 缺口明显 60 / 缺口很重 50 / 领域级错位 20；direction 方向：完全同向 90 / 基本同向 80 / 近似 70 / 有偏移 60 / 弱相关 50 / 错位 40；salary 薪资（按本地校准信息）：达标偏上 85 / 高度重叠 75 / 部分重叠偏低 60 / 明显低于期望 30 / 期望未设或面议 60；education 学历：达标 90 / 高于要求 70 / 未要求 65 / 不达标 30；experience 经验（年限比例）：≥要求 85 / 八成 75 / 六成 60 / 四成 45 / 不足 30 / 未要求 60；技能维同义/同族已覆盖不计缺口（Git 覆盖 GitHub/GitLab、FastAPI 覆盖 Flask/Django、TypeScript/React 覆盖 JavaScript）；
- **技术栈错位不做一刀切**：仅「领域级」无关才算根本错位（如岗位核心在电子/硬件/嵌入式/通信基带/固件、简历只有纯软件开发）；同属软件开发时语言/框架不同不算错位（Java↔Python、React↔Vue、前端↔后端、Go↔Java、C#↔Java），按需迁移/现学给 60-70；技能维 ≤25 时整体档位不得高于谨慎；信息不足给中性分 + 「未提供」依据，不用常识补齐；五维加权（34%/28%/14%/8%/6%）只参与总分档内微调、**不得改变档位**（唯一例外：技能维 ≤25 强制整体不高于谨慎）；
- 严禁把招聘方在线/活跃状态或岗位发布时间当作匹配理由；
- **reason 用求职者视角的中性分析**：客观说明硬性条件是否匹配、技能命中与缺口、整体判定（推荐/匹配/谨慎/不推荐）。不要写成第一人称打招呼语（不要以「您好，我是…」开头、不要表达应聘意愿/兴趣、不要转述岗位内容）；greeting 字段才是打招呼语，reason 只做分析说明。

## 事实边界

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