Match resume against a job description. Quantified scoring and prioritized improvement tips.
Coding
job-match-priority
Try itMatch and prioritize job listings against a candidate profile using KSAO-based dual-layer funnel scoring with Agent reasoning.
What it does
Match and prioritize job listings against a candidate profile using KSAO-based dual-layer funnel scoring with Agent reasoning.
The skill document
JD 匹配优先级判定
基于 KSAO 框架(Knowledge / Skills / Abilities / Other)的双层漏斗匹配。全链路 Agent 推理,零脚本。
快速开始
当用户要求简历匹配、JD 匹配、岗位筛选时,触发此 skill。
Workflow
Step 0: 判断使用阶段
首次使用 → 进入引导流程(Step 0.1 - 0.6) 非首次使用 → 检查已存配置,直接进入 Step 1
判断依据:
- 用户是否已有候选人画像(KSAO)→ references/candidate-profile.md
- 用户是否已校准过匹配标准
- 用户是否明确说"用之前的配置"
Step 0.1: 收集求职偏好(5 问,逐问逐答)
交互原则:每问一答,不一次甩 5 个问题。
| # | 问题 | 目的 | 输出 |
|---|---|---|---|
| 1 | 你期望的岗位方向是什么?(如:总助、HR、产品经理、运营...) | 确定目标岗位类型 | 岗位类型标签 |
| 2 | 期望薪资范围?(月薪,如 15-20K) | 硬过滤阈值 | 薪资区间 |
| 3 | 期望工作城市?(可多选) | 硬过滤阈值 | 城市列表 |
| 4 | 有哪些绝对不考虑的行业/岗位类型? | 硬过滤排除项 | 排除列表 |
| 5 | 对工作强度/福利的底线要求?(如:双休、不加班、不接受单休...) | 硬过滤福利项 | 福利底线 |
Step 0.2: 提供简历
两种方式(二选一):
- 方式 A: 提供简历文件路径(本地文件)
- 方式 B: 直接粘贴简历文本内容
Step 0.3: 生成双画像
画像 A:候选人画像(KSAO)
从简历中提取,按 KSAO 四维度结构化。详见 references/candidate-profile.md#一、候选人画像结构(KSAO 四维度)。
输出格式:
【候选人画像】
K(知识):学历 X,院校 XX,行业知识 XX
S(技能):硬技能 XX,管理技能 XX,工具技能 XX
A(能力):战略能力 L_X,组织能力 L_X,沟通能力 L_X,执行能力 L_X
O(其他):动机 XX,价值观 XX
画像 B:求职 JD 画像(理想岗位特征)
综合求职偏好 + 候选人能力画像,生成"理想 JD":
【求职 JD 画像】
目标岗位:XX(XX方向)
岗位层级推断:L_X-L_X(基于 X 年经验 + 薪资期望)
核心能力维度:XX、XX、XX
加分维度:XX、XX
排除项:XX、XX
福利底线:XX
Step 0.4: 确认漏斗标准 + 自定义能力维度
重要:能力维度需根据用户画像动态生成,而非使用预设维度。
将画像转化为可执行的匹配规则,向用户确认:
基于你的画像,我拟定了以下匹配标准:
【硬过滤】
- 薪资:XX-K 之外直接标记 low
- 地点:非 XX 且不接受远程 → low
- 行业:XX、XX → low
- 排除:XX、XX
【能力维度权重】(根据你的画像定制,5-8 个维度)
- 核心维度:XX、XX(权重最高)
- 重要维度:XX、XX
- 加分维度:XX、XX
【能力深度要求】
- 目标岗位层级:L_X-L_X
- 深度匹配范围:L_X-L_X 可接受
以上标准是否需要调整?可以增删维度或调整权重。
维度生成原则:
- 从候选人简历中提取高频能力关键词,聚类为维度
- 结合目标岗位的典型能力要求
- 用户可自定义维度名称和同义词簇
- 总维度数建议 5-8 个
用户确认 → 进入校准测试
Step 0.5: 校准测试(用户提供 ≥10 份 JD)
目的: 用真实数据验证匹配标准,让用户校准判定结果。
要求用户提供:
- ≥10 份 JD(飞书表格链接 / 本地 CSV / 直接粘贴)
- 优先选择用户已知"应该匹配"和"不应该匹配"的 JD(用于验证)
执行:
- 对每份 JD 执行完整的 Layer 1-3 匹配(详见 Step 3)
- 生成匹配结果表格:
| # | 岗位名称 | 公司 | 判定 | 理由 | 命中维度 | 深度匹配 |
|---|---|---|---|---|---|---|
| 1 | XX | XX | high | XX | 维度A+维度B | 匹配 |
| 2 | XX | XX | low | XX | 仅维度C | 不匹配 |
| ... | ... | ... | ... | ... | ... | ... |
Step 0.6: 用户审阅 + 校准
展示结果后,问用户:
以上 10 份 JD 的匹配结果,是否有需要调整的?
- 哪些判定偏高了?(实际不匹配但判为 high/medium)
- 哪些判定偏低了?(实际匹配但判为 low)
- 漏斗标准需要修改吗?
用户反馈处理:
| 反馈类型 | 处理方式 |
|---|---|
| "这条应该是 high 不是 medium" | 检查维度命中和深度,调整对应维度权重或阈值 |
| "这条不应该被过滤" | 调整硬过滤规则(放宽薪资/地点/行业限制) |
| "这条应该被过滤掉" | 增加硬过滤规则(添加排除项) |
| "整体没问题" | 确认配置,进入正式匹配 |
校准循环:
- 用户有调整 → 修改标准 → 重新跑校准测试 → 再次审阅
- 用户确认无误 → 存储最终配置 → 进入 Step 1
Step 1: 检查数据源与 JD 完整性
1.1 数据源识别
| 输入类型 | 处理方式 |
|---|---|
| 飞书多维表格链接 | 通过 bitable API 读写 |
| 本地 CSV 文件 | 新建 <原名>_判定结果.csv |
| 本地 Excel 文件 | 新建 <原名>_判定结果.xlsx |
| 直接粘贴 JD | 逐条分析 |
1.2 JD 信息完整性检查
对每条 JD 检查以下字段是否齐全:
| 字段 | 必要性 | 缺失影响 |
|---|---|---|
| 岗位名称 | 必需 | 无法判断岗位类型和 AI 提升 |
| 公司名称 | 重要 | 无法判断行业 |
| JD 描述 | 必需 | 无法进行能力维度匹配 |
| 薪资范围 | 重要 | 硬过滤可能误判 |
| 工作地点 | 重要 | 硬过滤可能误判 |
| 经验要求 | 参考 | 深度匹配精度下降 |
| 行业信息 | 参考 | 行业过滤可能误判 |
完整性判定:
- 完整: 岗位名称 + JD 描述 + 薪资 + 地点 齐全
- 基本完整: 岗位名称 + JD 描述 齐全,缺薪资或地点
- 不完整: 缺岗位名称或 JD 描述
处理方式:
- 完整 / 基本完整: 正常执行匹配,结果可信
- 不完整: 提醒用户,说明"基于不完整信息分析,结果可能不准确",仍执行匹配
1.3 数据去重(必须)
- 按
job_id或岗位名称+公司名称去重,保留首条 - 去重后统计实际总数,汇报去重数量
Step 2: 读取待处理记录
- 获取表格记录(飞书 bitable / 本地文件)
- 过滤:排除已有"优先级判断"的记录
- 获取准确的
record_id
Step 3: 批量判定(每批 5 条)
对每条记录执行完整匹配流程:
Layer 1:硬过滤
按 references/priority-rules.md#Layer 1:硬过滤 执行:
- 薪资过滤
- 地点过滤
- 行业过滤
- 排除项检查
不通过 → 直接标记 low,理由说明硬过滤原因
Layer 2:能力维度匹配(语义聚类)
按 references/priority-rules.md#Layer 2:能力维度匹配(语义聚类) 执行:
- 使用 Step 0.4 用户确认的自定义能力维度(5-8 个)
- 每个维度有同义词簇
- 命中任一同义词 → 该维度得分 +1(不重复计分)
- 统计命中维度数
Layer 3:能力深度匹配
按 references/priority-rules.md#Layer 3:能力深度匹配 执行:
- 从 JD 推断岗位层级(多维信号)
- 评估候选人能力深度
- 判断深度匹配类型(精准/超配/不足)
综合判定
Layer 1 不通过 → low
Layer 1 通过 → 结合 Layer 2 + Layer 3 综合判定
→ high / medium / low
判定标准参考 references/priority-rules.md#综合判定(Layer 1-3 汇总), 但以 Step 0.4 用户确认的标准为准。
AI 关键词提升
仅检测职位名称(title),不检测职位描述(description)。 title 含 AI 关键词 → 提升 1 级(low→medium, medium→high)。 详见 references/priority-rules.md#AI 关键词提升规则。
理由生成
30 字以内,格式:[核心原因],[辅助说明]
Step 4: 写入结果
飞书多维表格: 每批 5 条判定完成后立即 batch_update
本地 CSV / Excel: 创建新文件 <原名>_判定结果.<扩展名>
- 检查是否已有
优先级判断和优先级判断理由字段,若无则追加 - 原始文件不做任何修改
字段配置: 见 references/field-config.md
失败 → 记录失败 record_id,继续下一批,最后重试
Step 5: 汇报结果
简洁汇报:
匹配完成
总计:X 条(去重后)
high:Y 条(Z%)
medium:M 条(N%)
low:L 条(P%)
不完整 JD:N 条(结果可能不准确)
核心提醒
- 数据必须先去重(按 job_id 或 岗位+公司),否则重复记录导致判定结果膨胀
- AI 提升仅检测 title,description 中的 AI 关键词不触发提升
- 能力维度按维度计分,不按关键词计分,避免同义词重复膨胀
- 全链路 Agent 推理,不使用脚本,确保语义理解准确性
- JD 不完整时必须提醒用户,说明结果可信度下降
- 能力维度需动态生成,根据用户画像定制,而非使用预设维度
相关文件
| 文件 | 用途 | 何时加载 |
|---|---|---|
| references/candidate-profile.md | 候选人画像标准(KSAO 框架 + 能力深度模型) | Step 0.3 生成画像时 |
| references/priority-rules.md | 优先级判定规则(硬过滤 + 能力维度 + 深度匹配 + AI 规则) | Step 3 批量判定时 |
| references/field-config.md | 飞书多维表格字段配置 + 易错点 + 错误回滚 | Step 1 检查字段 + Step 4 写入时 |
Assets(模板与文档)
| 文件 | 用途 |
|---|---|
| assets/usage-guide.md | 用户使用指南(首次使用流程说明) |
| assets/edge-cases.md | Edge Cases 与特殊情况处理 |
Related skills
Evaluates how well a candidate's resume matches a target job description (JD) and produces a clean, professional HTML assessment report. Parses the resume (v...
Reverse-engineer job descriptions: translate jargon ("5 years" → 3), infer company culture (red flags, vibes), match to your resume, detect negotiation signa...
Use when comparing two or more job offers, deciding between a remote and on-site role, weighing a higher salary against a long commute, moving cities for a job, pricing the real value of benefits, or preparing a salary negotiation counter-offer. Computes true total compensation — base + expected bonus + capped retirement match + risk-discounted equity − health premiums − commute cost (km + parking) − cost-of-living adjustment — then effective hourly rate on REAL hours (contracted + overtime + commute), PTO valuation, and the exact break-even base salary the losing offer needs to match the winner. Outputs a negotiation-ready target number.
Turn interview notes into a structured candidate scorecard and hire recommendation. Use when asked to write an interview scorecard, a candidate evaluation, a...
Use for WorkorAI talent marketplace requests. Candidate triggers: "найди мне работу", "ищу работу", "подбери вакансию", "find me a job", "I need work", "help...