Back to home@wangzhanchao883

dsh-resume-screening

Resume screening plugin for DeepSeek Harness (HR): ingest up to 100k resumes into one library, rule pre-filter + LLM fine-judge, auto-ingest & dedupe with ingest time. DeepSeek Harness 简历筛选插件:批量收简历建档,大白话下指令,库内规则粗筛+LLM精判,自动入库去重、可导出。

Stars
0
Language
JavaScript
Created
Sep 8, 2026
Updated
Sep 8, 2026

Introduction

dsh-resume-screening

DeepSeek Harness 简历筛选插件:面向 HR 的批量简历入库 + 自动化初筛工具。单个简历库可管理 10 万份以内的简历(docx / pdf / xlsx / xls / md / txt),统一建档入库后用自然语言下达筛选条件:先靠数据库精准粗筛,再对少数入围者做 LLM 精判,秒级返回按适配度排序的候选人名单。

核心能力

① 简历批量入库与统一管理

  • 支持 docx / pdf / xlsx / xls / md / txt,自动转换为统一格式的 Markdown 归档;
  • 按文件内容哈希自动去重,重复投递不重复建档;
  • 每条简历记录入库时间与源文件修改时间,方便识别"收进来太久"的简历。

② 结构化建档(一次入库,永久复用)

  • 入库即抽取并写入结构化档案:
    • 硬性字段(规则抽取,确定性高):学历 / 性别 / 年龄 / 工作年限 / 学校 / 专业;
    • 细粒度技能(LLM 兜底抽取):如 Java、Spring Boot、Vue 3、MySQL…;
    • 粗颗粒类别(规则 + LLM 兜底):技能类别(计算机 / 财务 / 金融 / 管理 / 外贸…)、经验方向(编程开发 / 财务会计 / 数据分析…),供后续快速粗筛;
  • 抽取遵循"规则优先(快、免费、可复现)→ LLM 兜底(低置信 / 语义字段,JSON 强约束防幻觉)",全部标签带置信度与来源。

③ 两段式智能筛选

  • 第一段 · 规则粗筛:在库内按「必选硬条件 + 可选加分加权」匹配,毫秒级缩小范围(如:必须男、本科及以上、会 JAVA,最好 2 年工作经验加分);
  • 第二段 · LLM 精判:仅对粗筛入围者逐份读原文判"适配度",输出 0-100 分、结论档位(强烈推荐 / 可面试 / 保留 / 不推荐)、命中技能、缺口、硬字段复核;
  • 一次筛选的规则分与 LLM 分都会落库,同一个岗位条件可反复复用。

④ 增量自动入库

  • resume_screen 支持传入简历文件夹:先把该文件夹里未入库的新简历自动入库(去重 → 建档 → 打标 → 记录时间),再对全库整体筛选。用户拿任何一批新简历发起筛选都不会漏。

⑤ 岗位条件可复用

  • 用自然语言把招聘要求保存为「岗位」(必选 / 加分 + 算子 + 权重),例如「JAVA 工程师岗」,后续有新简历即可一键按同一套标准复筛。

⑥ 工程底座

  • Markdown 归档为真相源,SQLite 为筛选索引(多值标签 / 加权排序 / 多条件 AND),索引可随时从归档全量重建
  • 批量处理带状态机 + 断点续跑 + 幂等去重;
  • LLM 调用复用 DSH 当前对话模型(宿主标准流式接口 ctx.llm.stream),结构化抽取/精判请求显式关闭思维链以控制成本与延迟。

对比:用本插件 vs 直接把简历丢给 LLM

维度直接把简历丢给 LLM本插件
规模化上下文有限,数百份即溢出或质量下降简历提前入库建档,筛选在库内完成,最高支持 10 万份量级
成本每次筛选全量重读全部简历,费用随数量线性膨胀只有粗筛入围的少数人才调用 LLM
硬条件准确度依赖模型"读",标准不稳定、可能看漏数据库字段过滤,确定性高、可复现
增量简历记不住历史,需全量重筛自动入库 + 自动去重,增量筛选
结果追溯分数 / 理由 / 入库时间全部留档,可导出 CSV

核心优势:快(库内粗筛秒级)、省(LLM 只精判少数人)、准(硬条件查档案,不会双标不漏人)、全(新简历永不漏、重复自动去重、入库时间可考)。

快速开始(对话)

# 1. 初始化简历库 + 收简历
resume_init
resume_ingest folderPath="D:\简历库\0908简历"

# 2. 建立岗位要求(自然语言结构化)
resume_define_rule 岗位名="JAVA工程师岗"
   必选: gender=男;education in 本科/硕士/博士;skill contains java
   加分: experience_years>=2 (+15)

# 3. 自动入库 + 初筛 + LLM 精判(一次完成)
resume_screen reqId=2 folderPath="D:\简历库\0908简历" llm=true

# 4. 导出结果
resume_export reqId=2 outPath="D:\简历库\结果.csv"

工具一览

工具作用
resume_init初始化简历库(归档目录 + SQLite + 标签字典)
resume_ingest扫描文件夹收简历,内容哈希去重,入库待处理
resume_process批量 转换 → 规则抽取 → LLM 兜底 → 归档 + 入库
resume_status查看库内简历处理状态分布
resume_define_rule / resume_list_rules保存 / 查看岗位筛选条件
resume_screen执行筛选;llm=true 追加精判;folderPath 触发自动入库
resume_export导出筛选结果 CSV(含入库时间 / 源文件时间)
resume_rebuild从归档 Markdown 全量重建索引

斜杠命令:/resume_screen(host 直跑,不经模型)。

工作原理

角色
Markdown 归档(真相源)每份简历一篇 .md,含结构化属性与原文,可读、可迁移、永不丢
SQLite(筛选索引)派生索引:候选人 / 标签 / 标签值 / 岗位 / 条件 / 筛选结果,为筛选而生,可随时全量重建
筛选引擎(规则层)必选硬过滤 → 可选加分加权排序,纯函数、可复现
LLM 精判层对入围者读原文判适配度,输出结构化评分与理由

标签体系

  • 硬性字段(列存):学历、性别、年龄、工作年限、学校、专业
  • 语义 / 分类标签(多值标签表):skill(细粒度技能)、skill_category(技能类别)、experience_direction(经验方向)、project_management(项目管理经验)
  • 时间字段ingested_at(入库时间)、source_mtime(源文件修改时间)
  • 标签字典可在 Web 面板增改(键 / 显示名 / 类型 / 说明 / 是否多值);skill_categoryexperience_direction 为核心粗分类维度,默认始终注入,不受历史持久化设置遮蔽。

Web 设置面板

参考 dsh-study-notebooksettings.section 模式:

  1. 通用:简历库根目录、归档子目录、是否保留原文件、LLM 开关与阈值、批次大小
  2. 标签库:增改标签定义
  3. 岗位要求:一岗位一组条件(标签 + 算子 + 阈值 + 必选/可选 + 权重 + 说明文案)

配置

持久化于 ~/.dsh-resume-screening/config.json,默认简历库 D:\简历库\。Web 设置面板在默认值之上叠加用户设置(settings.yaml)。

依赖

  • @deepseek-ai/dsh-tools(peer,宿主提供)
  • @deepseek-ai/schemasterymammoth(docx)、pdfjs-dist(pdf)、xlsx(excel)
  • 存储:node:sqlite(Node 22+,零外部原生依赖)
  • LLM:复用宿主 dsh-llmctx.llm.stream 标准流式接口,非自建通道)

License

MIT