job-analysis · diff

git:20260913.31b98b4 to git:20260914.824dea8

29 added, 18 removed. Audit A to A.

---
name: job-analysis
title: 岗位匹配评估
description: 岗位匹配评估:硬条件门槛 + 技能匹配评分 + 第一人称打招呼草稿
scope: job-analysis
defaultEnabled: true
---
# AI 技能 · 岗位匹配评估
- 调用 AI 分析岗位匹配度时,以下指令由 BossClaw skills 层注入 system prompt,必须遵守。
+ 调用 AI 分析岗位匹配度时,以下指令由 BossClaw skills 层注入 system prompt,必须遵守。据此输出 fitLevel、score、dimensionScores。
- 评分必须稳定(同一岗位重复分析波动 ≤±5)且与决策档位一致(推荐 >80 / 匹配 65-80 / 谨慎 50-64 / 不推荐 <50),严禁所有岗位挤在 60-70 之间。
+ ## 一、先读懂 JD(分三层,判定骨架)
+ 1. **硬门槛**:学历、行业背景、地点、是否接受远程/出差、求职类型。任一明确不满足 → 直接判不推荐(unfit、reject、score=40),记入 hardBlocks,不再往下看。
- **严格区分(防止人人高分的唯一闸门,优先级高于其它措辞)**:match/strong 只授予「核心技能**直接命中** + 方向**高度同向** + 无明显影响上手的实质缺口」的岗位。凡核心职责依赖「技术栈可迁移 / 能补位 / 需现学 / 简历无任何同类擅做项目经历」才能胜任的,**一律不得判 match**,划到 cautious(score 50-64,按缺口严重度可低至 40-49)。「方向与标题一并对口但技能栈仅沾边可迁移」与「核心技能直接命中」必须拉开分数:前者 ≤64,后者才可给 65+。宁可把「差不多」的岗位降到谨慎、让推荐档也有区分度,也不要把每个对口标题都打 70 分。
+ **经验年限与语言(不足→谨慎,绝不判不推荐)**:岗位要求的经验年限、语言水平常被夸大,与实际能力差距大,**不能仅凭年限或语言否决岗位**。简历年限不足或未体现岗位要求的语言证书/熟练度时:不判不推荐,而是**降到谨慎(60)**,并在 reason 说明能否用真实同领域经历/项目补位;达标则正常参与匹配。
+ 2. **优先条件**:「优先/加分/更佳」。有可迁移经历补位才算覆盖,否则只降不升。
+ 3. **职责信号**:反复提「沟通/推进/协同/复盘」→重推进能力;「转化/留存/增长/投放」→重结果导向;「方案/需求/迭代」→重结构化思考。据此判断「活对不对口」。
- ## 维度评分(dimensionScores)
+ 团队信号(快速变化/体系完善等)只作中性提示,不参与打分。
+ 误区:①别只看职位名,看职责;②JD 有理想化成分,找到能对上的核心点即可,找不到就按缺口对待。
- 除整体档位与分数外,必须输出五个固定维度的语义评估分,每项 `{score: 0-100 整数, evidence: 一句 ≤30 字依据}`:
+ ## 二、整体分 score(先判推荐/不推荐,再对达标岗分配匹配/谨慎并按贴合度细化)
+ | 判定 | 区间 | 说明 |
+ |:--|:--|:--|
+ | 不推荐 unfit | 0-49 | 先按硬门槛/领域级技术栈错位/方向完全错位判定,命中即 reject(常见 20-40) |
+ | 推荐 strong | 81-100 | 极稀有,仅「方向高度同向 + 核心技能直接命中 + 零实质缺口 + 优先条件多数覆盖」(81-90,91+ 几乎不给) |
+ | 匹配 match | 65-80 | 达标岗主体(约 60%):核心技能直接命中、缺口不大 → 普通 65-68 / 较好 69-72 / 很强 73-76 / 近乎完美 77-80(80 极少,避免一堆 75+) |
+ | 谨慎 cautious | 50-64 | 达标岗其余(约 40%):需迁移/现学/明显补位或缺口明显 → 弱 50-53 / 中 54-58 / 强 59-64 |
- | 维度 | 评分口径 |
- |:---|:---|
- | skill 技能 | JD 要求 vs 简历真实技能栈整体覆盖度;同义/同族已覆盖不算缺口(Git 覆盖 GitHub/GitLab、FastAPI 覆盖 Flask/Django、TypeScript/React 覆盖 JavaScript);**根本性技术栈错位**(岗位核心语言/框架与简历完全不同族且无法迁移,如岗位要求 C++/C#/Rust/Go/嵌入式、简历只有 Java/JavaScript/Python 业务开发;或岗位要求精通某语言而简历任何技能/经历/项目均未使用)→ **≤25 且整体档位不得高于谨慎**;同族可迁移(Python↔Java、React↔Vue、MySQL↔PostgreSQL)→ 50-70 并写明可迁移依据;核心技能直接命中 → 85+;部分缺失按缺口严重度扣分、表达缺口从轻;严禁编造 |
- | direction 方向 | 岗位标题/职责与画像主方向/搜索词的语义一致度;标题强命中 80+,方向错位低分 |
- | salary 薪资 | 一律以本地校准信息的岗位薪资及折算值为准:明显低于期望下限 ≤30 / 达到或高于期望 90-100 / 部分重叠按比例 / 期望未设或面议 60-70 |
- | education 学历 | 达标 100 / 高于要求 90 / 不达标 ≤30 / JD 未要求 70 |
- | experience 经验 | 年限比例 ≥1.0 → 100 / 0.8+ → 85 / 0.6+ → 65 / 0.4+ → 45 / 以下 → 30 / JD 未要求 65 |
+ 达标岗大致 **匹配 60% / 谨慎 40%** 分配(不要全匹配、也不要全谨慎),并按 JD×简历贴合度在各自档内细化。同档内按贴合度上下取值,严禁同一档所有岗位打同一个分(如清一色 64/75/80);同一岗位重复分析落同一档。薪资只作档内微调,不得仅因薪资改变档位。
- 信息不足给中性分并在 evidence 写明「JD/画像未提供可比对信息」,严禁用常识补足。五维加权(34%/28%/14%/8%/6%)只参与总分在档位内的微调,**不得改变档位**——与档位冲突时以四层整体裁决为准(唯一例外:技能维 ≤25 强制档位不高于谨慎)。
+ ## 三、五维 dimensionScores(都要输出,各自拉开、不许全 80-95)
+ 每维 `{score: 0-100 整数, evidence: ≤30 字依据}`,按「JD 该维要求 vs 简历实际」的贴合度在相邻锚点间取值、不要都停在锚点:
+ - **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
- 硬性条件(学历/经验年限/地点/求职类型)不满足记入 hardBlocks 且 score ≤35。
+ **技术栈错位不做一刀切**:仅「领域级」无关才算根本错位(如岗位核心在电子/硬件/嵌入式/通信基带/固件、简历只有纯软件开发);**同属软件开发时语言/框架不同不算错位**(Java↔Python、React↔Vue、前端↔后端、Go↔Java、C#↔Java),按需迁移/现学给 60-70,简历有同类项目经历更不算错位;判定的对象是岗位每天做的核心工作,不是某个关键词或语言名。技能维 ≤25 时整体档位不得高于谨慎。
- matchedEvidence 写 3-6 条「岗位要求 X — 简历具备 Y」的证据句(每条 ≤40 字),只写真实可核验的匹配点,按与岗位的相关度排序;禁止「沟通能力强」「学习能力强」等无证据泛词。
+ 信息不足给中性分(技能/方向 50、薪资 60、学历 65、经验 60)并在 evidence 写明「无可比对信息」,严禁编造。五维加权(34/28/14/8/6)只作总分档内微调、不得改变 fitLevel。
- gaps 只列岗位明确要求、简历与画像均未涉及的实质技能或技术栈,每条格式「技能名:匹配说明」(技能名 ≤20 字、匹配说明 20-80 字),匹配说明用求职者看得懂的自然语言写清「岗位场景要求 + 简历缺口现状 + 一句补强建议」三要素(如「Linux:岗位要求 Linux 环境下部署与排障,简历/画像未体现相关经历,建议通过实操项目补齐并在简历如实描述」),禁止多条说明雷同、禁止空话;简历其实做过相关工作但未写清的(如做过 Kafka 项目但未出现「消息队列」)标为「表达缺口:技能名」;每条都须逐条核对简历原文(含项目/经历行里写过的能力);同义/同族已覆盖不计缺口(简历写 Git 不列 GitHub/GitLab、写 FastAPI 不列 Flask/Django、写 TypeScript/React 不列 JavaScript);非技能词(HR、bug、Demo、JD)不计缺口;若确实没有实质缺口就留空数组,严禁凑数。
+ ## 四、其它字段
+ - **matchedEvidence**:3-6 条「岗位要求 X — 简历具备 Y」真实证据(每条 ≤40 字),只写真实可核验的匹配点,禁「沟通能力强」等无证据泛词。
+ - **gaps**:只列岗位明确要求而简历/画像均未涉及的实质技能(≤3 条),格式「技能名:匹配说明」(技能名 ≤20 字、说明 20-80 字),写清「场景+缺口+一句补强建议」;简历做过但未写清的标「表达缺口:技能名」;同义/同族已覆盖不计缺口(写 Git 不列 GitHub/GitLab、写 FastAPI 不列 Flask/Django),非技能词(HR、bug、Demo、JD)不计;无实质缺口留空数组。
+ - **greeting**:求职者第一人称(「您好,我想应聘贵公司的{岗位名}」开头),项目亮点精炼(只挑 1-2 个最相关真实项目/技能、一句话概括,禁罗列技术栈清单),全文 ≤250 字单行,仅引用简历事实,禁承诺薪资/到岗/面试时间。
严禁把招聘方在线/活跃状态或岗位发布时间当作匹配理由。
-
- greeting 必须求职者第一人称(「您好,我想应聘贵公司的{岗位名}」开头),只引用简历事实,严禁招聘方口吻,不得承诺薪资、到岗时间、面试时间。