SKILL · JD 结构化与定级(v0.1.2 骨架)

SkillSearch

A job-search methodology written for agents to read. Not an application script, but a set of judgment disciplines for every decision point.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the SKILL · JD 结构化与定级(v0.1.2 骨架) skill

What this skill tells your AI

The instructions your AI receives, as published by gilgameshcc/ai-native-jobhunt in modules/03-company-analysis/jd-triage/SKILL.md and read by ahel’s review.

把本文件整份交给你的 agent 即可——不依赖任何特定 agent 产品,不需要注册命令、不需要放在特定目录、不需要装任何东西。SKILL.md 只是一个文件名约定,不是某一家的格式。连同一份 JD 原文一起贴给它,就能开始。

⚠️ 这一版是骨架:给的是规则与标定方法,不是一套调好的参数。文中所有 〔…〕 都是留空的参数,需要你自己标定(方法见第三步)。完整定级模板排在 v0.3。


交付约定:易用性与完成度优先

Agent 负责整理并完成本次可做部分,交付可直接人工 review 的成品,不止给建议或空表。先读用户工作区的 policies/;用户可配置的执行偏好和参数集中在这里维护,已有求职条件仍以 positioning.md 为准。明确要求的调整直接写回并在 policies/changes.md 记录旧值、新值、理由与影响;Agent 建议标待确认。

用户已指定路径就直接创建本次所需目录;未指定时一次询问存放位置,同时继续整理材料。不得要求用户先手工建文件夹,不得把个人材料写进公开仓库。具体岗位建立或复用 applications/日期-公司-岗位/README.md,索引实际成品,初始化只补缺失文件;原始材料和历史审阅保留,策略、申请索引及衍生产物可按本次授权更新并记录变更。结束前写 reviews/日期-任务.md:成品路径、结论依据、采用策略、待确认项及影响、实际检查和下一步;重新读取文件核对后给可点击路径。缺材料时先完成不依赖它的部分并标部分完成;无文件写入能力须明确未落盘。可审阅不等于获准发送,外部动作仍按既有授权和模块边界。

交付前交叉核对报告、申请索引、台账和审阅卡:结论与下一步必须一致,已判不投的岗位只说明排除依据及证据或本人条件改变后可重评,不沿用继续推进的话术。内容重排后修正上下文指代;检查数量只填写工具实际统计值,未统计就列检查对象,不手写估数。发现历史审阅错误时另写勘误,保留原记录。

完整规则与模板见 本地交付约定;只拿到本 SKILL 时按以上约定建立最小 Markdown 文件即可,不要求先跑其它模块。

开跑前

要什么

要什么缺了会退化成什么
必需JD 原文只有名称/链接/转述时先按下文主动补齐流程检索原文;未取得前可整理探索线索,但不把转述当JD原句,不伪造抽取表
必需你的必要条件与硬性排除条件(按实际有的提供,不凑数量)缺了不猜、也不用默认值。会先要你写这两组,因为没有它们,所有岗位都会被判成"较匹配"(见「不对劲的时候」第 1 条)
可选positioning.md(定位文件,空模板在 00-workspace)没有就从上一行的口述里现场整理一份最小版本,并存回去,下次直接用
可选加分条件没有就只判"是否满足必要条件 + 是否触排除条件",级别会收敛成三级(强匹配与较匹配分不开),并明确告诉你少了哪一层。⭐ 写了加分条件、但它的上沿还没校准时也走这一档——首轮的每个人都在这个状态里,见第二步「首轮」一节
可选⭐ branches.md(活跃探路分支)一律按主线阈值判,探路岗位会被判成"不投"。 这是缺省的保守行为,不是 bug。但必须明说一句:"我没看到任何活跃探路分支——你如果在试新方向,需要手工告诉我"
可选ledger.md(台账,已跑过的岗位与对方回应)没有就跳过第三步的阈值反推,阈值停在 纯占位待校准,并在每次定级结论末尾标注这一点

⭐ 最小可接受形态

一份JD或可检索的公司/岗位线索,加上你已有的目标条件。 原文和条件缺失时先补齐;只得到线索不等于已完成定级。

散着贴进来就行 —— 微信里复制的一段、招聘页面上整片选中的文字、你自己口述的三句"我不接受什么",都算。整理成结构化表是 agent 的工作,不是你的。

⭐ 补齐原文和条件后,你会拿到 X,但拿不到 Y
✅ X:你会拿到❌ Y:你拿不到
一张结构化抽取表 + 一个级别 + 能追回到条件编号的理由分开的「强匹配」与「较匹配」——没有加分条件表(或有表但上沿还没校准),级别收敛成三级
一份「原文未提及」清单,逐条升级成面试必问项任何一个标着 实践校准 的阈值。全部停在 纯占位待校准——标定要的是你已经做过的判断,一份新 JD 里没有
一条可复核的「不投」理由(指得到具体编号)"我这条排除条件是不是定错了"的答案——那要第三步的三类反推样本,每类 〔2-3〕 条(默认建议值)

一句话:只有线索足够启动补查;取得JD原文和必要条件后才够定级,仍不够标定阈值。定级是"用现有标尺量一次",标定是"检查标尺本身准不准"——后者要的是一批你已经做过的判断,不是一份新的 JD。所以第一次跑完不要问"我的阈值定得对不对":在这个输入量下,那个问题没有答案,任何看起来像答案的东西都是编的。

⛔ 四条禁止(对 agent)

  1. 不许报错退出。 上游文件不存在是常态,不是异常。区分公开可查和用户私有缺口:前者主动查,后者集中问,已有材料继续分析
  2. 不许静默自己编。 没写汇报线就是没写——填"原文未提及"并进"待确认",不要推一个像是那么回事的答案填进去
  3. 不许一次只问一个问题挤牙膏。 要什么一次列全,让人一次补齐
  4. 不许把该自己解决的整理工作推给用户。 用户散着贴来的材料由你整理成结构化表;"请先把 JD 整理成表格再给我"是被禁止的回答

主动补齐信息(进入分析前及遇到关键缺口时)

先读已有材料与定位,不重复问已经给过的事实。把缺口按“会不会改变本次判断”排序,优先处理关键项,不能以一张信息不足清单结束服务。

  1. 公开可查的,agent直接查。 公司官网、产品说明、官方招聘原文及公开公告优先;记录具体URL、材料日期和检索日期。只有公司/职位名或链接时,先尝试找到对应JD;同名不清楚再问,不自行挑一家。补查所得放在独立来源段,不改写原JD的“原文未提及”。
  2. 用户才知道的,主动集中问。 例如希望做什么、不可接受的条件、当前面试阶段、已收到的沟通。可用一句:“我先核实官网与岗位内容;还需要你补充最影响判断的这几项:……”。问题按实际缺口生成,不为填满固定数量追问,不要求用户重排材料。
  3. 边问边做独立工作。 等用户时整理公开事实、列条件性分析和最值得验证的问题;没有回答就保持未知,不把沉默当确认,不以猜测生成硬条件。
  4. 查不到时给具体交接。 写已查入口、失败/冲突和仍需谁回答;网络不可用时明确未查,允许用户提供页面文本。需要岗位内部信息可准备给招聘方的问题,但不代发消息。连续补查没有新增证据时停止泛搜,说明哪条信息才能改变结论。
  5. 补齐后重算。 更新受新证据影响的条件、来源与结论;新事实推翻旧判断要注明原因。无关键缺口就直接分析,不额外设问卷。

本流程主动寻找分析所需材料;新公司机会探索由方向模块承接,不以“必须先提供完整JD”阻断检索。无法找到原文时可做公司层初步分析,但不能虚构JD抽取结果或宣称已完成岗位定级。

第一步 · 抽取(不做评价,只做客观抽取)

用 templates/jd-抽取模板.md 的空表逐栏填。填之前先接受这条纪律:

抽取阶段不下任何判断,原文措辞原样保留。

为什么这条不能松:抽取时就顺手评价(把"负责数据平台的日常维护与迭代"写成"看起来是接手已有系统"),会把 JD 里的原始信号洗掉。后面的定级于是不是在评价 JD,而是在评价一份已经被你评价过的材料——错误从此不可见,因为原文已经不在表里了。

三条执行细则:

  • 原文措辞保留。 不同义替换、不精简、不"翻译成人话"。你觉得含糊的地方,正是要保留的地方——含糊本身是信号
  • 薪资原样抄。 不折算、不换算周期、不取区间中点、不补"大概"。以图片形式给出的薪资,抄下你看到的原样文本,并标注它来自图片
  • 原文没写的,写"原文未提及"。 它会自动进入"待确认"清单,成为面试必问项(交给 interview-strategic-assessment),而不是被一个推测填掉

⭐ 核心职责 这一栏比薪资更重要

薪资谈得动,做的事换不动。这一栏的抽取规则是:摘出原文里能支撑下面两组区分的句子——

区分原文里往哪看
从 0 搭体系 vs 接手已有系统前者常出现"搭建 / 建立 / 从无到有 / 定义流程 / 组建";后者常出现"维护 / 迭代 / 优化现有 / 承接 / 保障稳定"。看动词,不看名词
对内提效 vs 对外产品前者常出现"内部效率 / 支持业务团队 / 降本 / 提效 / 赋能";后者常出现"面向客户 / 商业化 / 付费用户 / 对外交付 / 营收"

但抽取阶段只贴句子,不下结论。 表里这一栏写的是"原文原句 + 它指向哪一组",不是"这是一个从 0 搭体系的岗位"。两组都判不出时写"原文未提及",进待确认——这本身就是一个强信号:一份说不清自己要人干什么的 JD,往往对应一个还没想清楚的岗位。

⭐ 「这条是怎么进来的」不是可有可无的登记项

抽取表里有一栏问「这条 JD 是怎么进来的」(搜索命中 / 平台推荐 / 对方主动推来 / 中间人转介 / 其他)。定级用不到它,所以它看起来最像可以省掉的那一栏。恰恰相反:

  • 它是下游判断"你的搜索词在不在漂移"唯一的输入。 反复出现、却不在你关键词列表里的那些岗位形态,只能从这一栏认出来
  • 漏填 = 这条在后面的方向复盘里等于不存在,不是权重低,是不进样本
  • 它事后补不回来。 一周后你不会记得某条是自己搜的还是被推来的,而这两者指向完全相反的解读(前者反映你的关键词,后者反映别人眼里的你)

执行要求:搜索命中 的连搜索词一起记;对方主动推来 的同时在 ledger.md 的「反向吸引」栏打标记;真想不起来就写 其他 + 你记得的那半句。⛔ 不许猜一个具体来源填进去——猜出来的来路会污染的正是这一栏唯一的用途。


第二步 · 定级(四级,排除条件短路)

用 templates/定级规则模板.md。判定必须按这个顺序,顺序本身就是纪律:

① 硬性排除条件  →  命中任一条  →  判「不投」,短路,不再往下算
② 必要条件      →  ⭐ 三态,不是两态:
                    ├─ 满足          → 继续往下
                    ├─ 原文明确不满足 → 看是否落在活跃探路分支里
                    │                    ├─ 是 → 走该分支的更宽阈值 → 可判「探路」
                    │                    └─ 否 → 判「不投」
                    └─ 原文未提及     → 降一档 + 挂待确认 + 升级为面试必问项
                                        ⛔ 不据此判「不投」
③ 加分条件      →  在必要条件全满足的前提下,决定「强匹配」还是「较匹配」

⭐ 硬性排除条件不可被匹配度换

薪资、汇报线、权限这类是不可交易的,不是"权重特别高的加分项"。

  • ❌ 不许写"排除条件命中一条扣 N 分"——只要它出现在同一个加权式子里,就总会被别的项换掉
  • ❌ 不许出现"虽然薪资不达标,但匹配度很高,建议投一下试试"这种结论。这句话就是这条纪律要防的那个错误本身
  • ✅ 正确形态是短路:命中 → 判「不投」→ 停止计算 → 理由里写清命中的是哪一条编号

这与 05-offer 的 gate 是同一条纪律:那边是"加分项再多也换不掉一条必要条件",这边是"匹配度再高也换不掉一条硬性排除条件"。这条纪律在几个模块里都出现过,犯的是同一类错——把不可交易的条件当成了可以加权的项。所以你在多个模块里看到同一句警告,不是重复,是同一条纪律的不同落点。

⭐ 「原文未提及」是第三态,不是「未满足」

JD 不写关键信息是常态,不是例外。 汇报线、权限、办公方式,多数 JD 都不写。所以必要条件这一侧有三态:

态它是什么怎么处理
满足抽取表里有原文能证实正常往下走
未满足抽取表里有原文能证伪除非落在活跃探路分支内,否则判「不投」
⭐ 原文未提及抽取表这一栏是空的 —— 它是一个待确认项,不是一个判定降一档 + 挂进待确认 + 升级为面试必问项。⛔ 不据此判「不投」

「降一档」的意思:强匹配 → 较匹配;较匹配 → 保留,但标注"关键项未确认"。它压低优先级,不关门。

⭐ 三级收敛期怎么降(〔B 上沿〕仍为 纯占位待校准 时 —— 见下面「⭐ 首轮」一节,首轮的每个人都在这个状态里):这时只有「匹配」一档,降无可降。口径写死:保留「匹配」,标注"关键项未确认",并在批内相对排序里排到同等命中数的岗位之后。 ⛔ 不许因为"降不动"就把三态压回两态判「不投」 —— 那正好是这一节要防的那个错误,只是换了个入口进来。

为什么必要条件这一侧要这么处理,理由与排除条件那一侧同源(那边的说法是「推测项不能单独触发不可逆动作」):

  • 「不投」不产生任何反馈——不投递、不接触、没有回应,于是这条判断永远没有机会被证明是错的。它是不可逆的
  • 一份 JD 没写某件事,最常见的原因只是这份 JD 写得糙,不是招聘方在这件事上真的不满足你的条件。用"对方没写"去触发一个不可逆的动作,等于把对方的写作质量当成了你的判据

⛔ 不许出现这种结论:"JD 没提汇报线,按最坏情况算,判不投。" ✅ 正确形态:"N2 待确认——「汇报线」栏为 原文未提及;级别由强匹配降为较匹配,已列入面试必问。"

⚠️ 反过来也不许:不许把「原文未提及」当成「满足」放过去。 那会让定级结论看起来很完整,实际建立在一批没人检验过的默认假设上。三态就是三态,往哪边压成两态都是错的。

四个级别

级别判据你该做什么
强匹配无排除命中 + 必要条件全满足 + 加分条件命中数 ≥ 〔上沿阈值·纯占位待校准〕优先投,值得为它单独定制材料
较匹配无排除命中 + 必要条件全满足 + 加分条件命中数落在〔中段·纯占位待校准〕投,用通用版本即可
探路无排除命中 + 有必要条件未满足但落在活跃探路分支内 + 满足该分支的更宽阈值投,但计入该分支的配额,且到分支截止日一起复盘
不投命中任一硬性排除条件(最高优先级,无条件);或任一必要条件被原文明确证伪且不落在任何活跃探路分支内。⛔ 「原文未提及」不算未满足,见上一节不投。但要把理由写进定级结果文件,并在台账里留一行——"不投"也是数据

⛔ 这里没有"缺口上限"参数 —— 一旦允许"缺几条还能过",必要条件就变成了加权项,正是本模块上一节要防的那件事(硬性排除条件不可被匹配度换)。分支豁免哪几条必要条件,写在 branches.md 里,是显式豁免,不是缺口预算。

⭐ 首轮:加分条件表非空,但它的上沿还没校准

「开跑前」写的是加分条件表为空时收敛成三级。还有一种状态它没覆盖,而首轮的每个人都在这个状态里:加分条件写了几条,但〔B 上沿〕和〔B 中段〕都还是 纯占位待校准——一个没有数值的上沿,分不开「强匹配」和「较匹配」。

这一档这样处理:

  1. 同样收敛成三级(强 / 较合并成一档,就叫「匹配」)。⛔ 不许随手编一个上沿把它们劈开
  2. 但要给出相对排序:这一批内部按加分条件命中数从多到少排出来,并明说一句"这是这一批内部的相对排序,不是绝对档位——换一批 JD,同一个岗位的位置会变"
  3. 每条结论末尾标注:〔B 上沿〕仍为 纯占位待校准,因此强 / 较两档尚未分开

它什么时候自动解开:等你按第三步反推出〔B 上沿〕、把它的来源等级从 纯占位待校准 改成 实践校准(或至少 默认建议值)那一刻,四级自动恢复。触发条件是样本量,不是时间——第三步的三类样本每类攒够 〔2-3〕 条(默认建议值)就可以反推;少于这个量级,反推出来的上沿只是把一两条个例写成了规则。

⛔ 不许为了"能出四级"先编一个上沿。 编出来的档位会立刻开始影响你投哪些岗,而它没有任何依据;更糟的是它长得和一个真阈值一模一样,三个月后你不会记得它是编的。这正是 §来源标注三挡要如实标的原因。

定级理由必须能被追回去

一条合格的定级结论长这样:

青栈网络 / 数据平台负责人 → 不投 命中排除条件 X2(薪资下沿低于你写的下沿)→ 短路,未继续计算匹配度。 补充(不参与判定):必要条件 N1 N3 满足,N2 待确认(原文未提及汇报线)。

一条不合格的结论长这样:

综合看比较匹配,建议可以投一下。

区别不在语气,在可追性:前者能指回具体条件编号,后者指不回任何东西,所以既无法复核,也无法用来校准阈值。每条定级理由都必须指向至少一个条件编号;指不到,就写"指不到",然后回到第一步看抽取表哪一栏是空的。

⭐ 定级结果写到哪(⛔ 不要就地发明一个文件名)

一批 JD 定完级,产出一份文件:

triage/<日期>-定级结果.md
  • 日期 = 这批 JD 的批次日期,与 jobs/<日期>-一批说明.md 对齐,两份文件肉眼就能配上对
  • 位置与命名的权威定义在 00-workspace 的工作区骨架
  • 没有工作区、只是单跑一次的:把同样的内容原样输出给用户,并告诉他"将来建工作区时,这份东西放 triage/"。⛔ 不许现场发明一个文件名,也不许把它塞进 JD 原文那份文件里

一条都不许少的三样东西:

  1. 每条岗位的级别(强匹配 / 较匹配 / 探路 / 不投;三级收敛期就写「匹配」并注明原因)
  2. 理由,且能追回到具体条件编号(X1 / N2 / B1…)。指不到编号就写"指不到",不许用"综合看还行"顶上
  3. 待确认项:所有 原文未提及 与 我推测的,逐条写清"要证实它该问谁 / 查什么",并标出它把级别压低了几档

四个位置各管一件事,别互相塞:

位置装什么⛔ 不装什么
jobs/<日期>-一批说明.mdJD 原文与抽取表任何级别与判断——判断进 triage/
triage/<日期>-定级结果.md级别 + 可追编号的理由 + 待确认项JD 原文的改写版(原文只在 jobs/,这里引用原句即可)
ledger.md 的「级别」栏一个字母(S/A/B 之类),用来分层看回复率理由——一个字母装不下"能追到条件编号的理由",那是 triage/ 的活
assessments/<公司>.md面试前的疑点与红旗绿旗判据投前定级——读者和时机都不同(那边服务"要不要去",这边服务"要不要投")

⚠️ 判成「不投」的那些也要写进这份文件,并在 ledger.md 里留一行。 「不投」是本模块产出最多、也最容易蒸发的一类结论;它不落地,第三步的阈值校准就永远缺掉最重要的那一类样本。


第三步 · ⭐ 怎么定你自己的阈值

仓库不给数字。 下面是标定方法,完整表格在 templates/定级规则模板.md。

从哪几条已投过的岗位反推

不要凭空想一个阈值,从你已经做过的判断里反推。取三类样本,每类几条即可:

样本类型它告诉你什么
① 投了、且对方有回应的你的实际命中区在哪
② 投了、但事后后悔的你漏写了哪条排除条件——后悔的那个理由,就是那条排除条件的原文
③ ⭐ 犹豫很久、最后没投、但一直惦记的最有价值的一类。 它标出的是你真实的下沿,而不是你以为的下沿。你写下的排除条件往往比你真实的底线更严——这类样本是唯一能发现这件事的入口

方法:把这几条岗位按第一步抽取成表,然后问"要让我当时的判断成立,阈值得设在哪"。反推出来的阈值标 实践校准;凭感觉定的标 默认建议值;没定的保持 纯占位待校准。

先松后紧,不是先紧后松

默认先松。 理由是不对称的:

  • 先紧的代价不可回收——被判「不投」的岗位不产生任何反馈(不投递、不接触、没有回应),于是阈值再也校不动了。这是一个自我封闭的错误:越紧,越看不见自己错在哪
  • 先松的代价可回收——无非是多读几份 JD、多写几条"不投"的理由。这些恰好是下一轮校准的样本

唯一的例外:排除条件反过来,一开始就要写死、写紧。 松的是匹配度那一侧,不是排除那一侧。把这两侧搞反是最常见的误用——结果是"什么都投得出去,但底线也守不住"。

多久回头校一次

按新增样本量触发,不按时间。 时间到了但样本没增加,校准只是在重新解释同一批数据。

三个强制校准时机(不等样本量):

  1. 连续多条「强匹配」零回应 —— 要么是抽取错了,要么是阈值标在了一个和市场无关的位置
  2. 一条探路分支开启或关闭时 —— 分支的更宽阈值和主线阈值必须一起看,否则会漂移成两套互不相干的标准
  3. 你的必要条件本身变了 —— 这时旧阈值全部作废,回到 纯占位待校准,不要拿旧数字硬套新条件

来源标注

每条结论都要能一眼看出它是哪来的。三挡,不要第四挡:

标注什么时候用例
你给的用户提供的事实与偏好必要条件 / 排除条件 / 阈值 / 你对某条职责的解读
公开可查JD 原文里的字段、公司公开信息岗位名称、城市、薪资原文、招聘方公开介绍
我推测的JD 没写、由 agent 推断的"看起来汇报给业务负责人""团队规模应该不大""这大概是个从 0 搭的岗位"

每条 我推测的 必须附一句"要证实它,你该问谁 / 查什么"。 例:

汇报线:推测直接汇报给业务线负责人 · 我推测的 要证实它:面试时问"这个岗位向谁汇报,团队现在有几个人" —— 这类问题对方大概率能答,答不上来本身也是信号。

⭐ 推测项不能单独把一个岗位判成「不投」

一条标着 我推测的 的信息,不足以触发硬性排除条件。它可以让级别降一档并挂上"待确认",但不能直接关门。

⭐ 去向与必要条件的第三态同构,一条都不许少:降一档 + 挂待确认 + 升级为面试必问项(交给 interview-strategic-assessment)。 ⛔ 只挂在"待确认"里、不给去向的推测项,到面试当天不会变成任何一个你问得出口的问题 —— 它会一直停在那里,而级别已经被它压低了。

理由:排除条件的杀伤力是短路式的、不可逆的(不投 = 没有反馈 = 阈值校不动)。用一个猜测去触发一个不可逆的动作,是这个模块最贵的错误形态。 这与 05-offer 的「推测项不参与排序」是同一条处理方式。


不对劲的时候

症状 → 最可能原因 → 你下一句该说什么

症状最可能原因你下一句该说什么
⭐ 所有岗位都判成「较匹配」硬性排除条件没定,或全部用了默认值——于是没有任何东西能把岗位推到两端"先把你的必要条件和排除条件各写 2-3 条,再重跑一次"
所有岗位都判成「不投」① 排除条件写得比你的真实底线更严 ② 你在试新方向,但它读不到任何活跃探路分支,按主线阈值判"把这几条排除条件按'不满足我就真的不会去'再筛一遍;如果我在试新方向,先把这条探路分支说给你听"
定级理由是"综合看比较匹配"这种一句话抽取表没填完,或条件没编号——理由无处可追"把每条定级理由改成指向具体条件编号的形式;指不到就直接说指不到,我们回去看抽取表哪一栏是空的"
抽取表里出现了 JD 原文里没有的措辞抽取阶段做了评价或润色,原始信号已被洗掉"重新抽一次,这一栏只许贴原文句子;原文没写就写'原文未提及'"
同一家公司两条岗位定级完全相反,但 JD 差别不大核心职责 那一栏的两组区分没做,或薪资原文被折算过"把两份 JD 的核心职责原文并排贴出来,我们看差在哪一句"
⭐ 一批岗位因为"JD 没写"被判成「不投」必要条件被当成两态判了——「原文未提及」被算成了「未满足」"把所有因为『原文未提及』判成不投的重判一遍:那是待确认项,不是判定——降一档 + 挂待确认 + 升级为面试必问,不投的只留原文能证伪的那些"
⭐ 它问你"定级结果存哪",或者自己起了个文件名落点规则没读到"定级结果一批一份,存 triage/<日期>-定级结果.md,日期和这批 JD 的 jobs/ 文件对齐;里面每条要有级别 + 能追到条件编号的理由 + 待确认项"
⭐ 强匹配和较匹配总是分不开,或者忽然冒出一个上沿数字加分条件的上沿还是 纯占位待校准(首轮的默认状态);后一种是它自己编了一个"这一批先收敛成三级,只给批内相对排序,别编上沿;等我攒够可反推的样本再按第三步标定"

三级自救阶梯

不要一出问题就把活推回给人。 上面那张表是 L3 的载体,不是"一遇事就回报"的入口。

级什么时候到这一级该做什么⛔ 不该做什么
L1 有现成的,直接走抽取模板与定级规则命中按规则执行,不问。已有条件能裁决的判断自己裁决不为"确认一下"打断用户
L2 没现成的,自己走通 + ⭐ 沉淀上游文件缺 / 用户散着贴来一堆材料 / JD 格式怪 / 某一栏原文没写自己把散料整理成抽取表;自己从口述里现场整理出最小版本的条件清单;拿不准就按更保守的一侧判并记下理由。走通之后写回去——条件清单存进 positioning.md、新的抽取线索补进模板、定级结果与理由记进 ledger.md⛔ 不把"这次绕过去了"只留在会话里。没沉淀 = 下次还得再试一遍 = 等于没走通
L3 实在不行,才回报人L2 也走不通;或只有用户本人才有的事实(他的真实底线、他是不是在试新方向)输出 症状 + 已经试过什么 + 建议你做什么(给可选项)⛔ 不输出裸错误;⛔ 不说"请提供更多信息"这种没有指向的话;⛔ 不把 L2 该自己解决的整理工作推给用户

变更日志

  • v0.1.2(来自 fixtures/jd-triage/ 首轮双向断言,只改判据表述,不动结构):两处都不是区分力失败,是首跑时 hit 侧无判据可依 / 落点缺失 ——
    • 三级收敛期的「降一档」没有取值:SKILL 只定义了"强匹配→较匹配 / 较匹配→保留但标注",而首轮的每个人都在三级收敛期(〔B 上沿〕未校准),那时只有「匹配」一档、降无可降。已写死口径:保留「匹配」+ 标注"关键项未确认" + 批内排到同等命中数之后,⛔ 不许因为降不动就把三态压回两态判「不投」。
    • 排除条件侧的推测项没有去向:必要条件第三态明写"降一档 + 待确认 + 升级为面试必问项",而 §来源标注「推测项不能单独判「不投」」只写了前两样。已补齐第三样并写明理由 —— 只挂在待确认里、不给去向的推测项,到面试当天不会变成任何一个你问得出口的问题。
  • v0.1.1(来自一次端到端实跑测试):必要条件补第三态「原文未提及」(降一档 + 待确认 + 面试必问,不据此判「不投」)· 定级结果有了明确落点 triage/<日期>-定级结果.md 与四个位置的边界 · 补「加分条件表非空但上沿未校准」这一档(首轮默认状态)与它的解开条件 · 「最小可接受形态」写清拿得到 X / 拿不到 Y · 第一步点明「这条是怎么进来的」这一栏的用途。
  • v0.1.0(首发,骨架):抽取纪律 + 四级定级短路顺序 + 阈值标定方法 + 探路分支更宽阈值与降级行为 + 三段式区块(开跑前 / 来源标注 / 不对劲的时候)+ 三级自救阶梯。所有阈值参数化留空(「不投」一栏不设缺口上限参数——必要条件未满足即不投,豁免只能来自显式的探路分支),完整定级模板排 v0.3。

真人反馈修订 · 2026-09-13

信息不足时主动检索、集中追问并在补齐后更新判断;不只交付缺口清单。

Signals

GitHub stars
61
Forks
8
Last commit
Sep 2026
Advanced
Item type
skill
Key
jd-triage
Source
github.com/gilgameshcc/ai-native-jobhunt