dsh-resume-matcher · 简历诊所
DeepSeek Harness(dsh)插件:HR 视角的中文简历深度优化工作台。上传简历(PDF/DOCX)+ 目标岗位 JD,会话模型按「五步审计」方法论产出完整报告,报告与优化后简历自动归档;优化简历一键进入 a4cv 可视化编辑器微调排版、导出 PDF,侧栏「简历诊所」面板随时回看。
移植自开源项目 resume-matcher-agent-cn(HR批评简历,Flask + Next.js),本插件为其 dsh 化形态:纯技能驱动、零 API key、零 Python 依赖。
核心功能
📄 解析归档:
resume_matcher工具解析 PDF / DOCX 简历(含双列布局保序),结构化信息 JSON 归档🧠 五步审计(hr-critic 技能,由会话模型执行):
第一印象 — 目标岗位 + 职级判断,30 秒定论
地毯式审计 — 「批判 ❓ - 解析 🤔 - 建议 💡」三段式反馈
修改蓝图 — 影响力叙事公式 + 改写对比示例 + 启发式提问
重写简历 — 忠于原文,缺失信息用占位符标注
最终裁决 — 整体评价 + 核心风险 + 行动清单
🧾 报告存档 — Step 4 的优化简历自动抽取并做 a4cv 结构归一化(加粗小节标题转
##、补#姓名);抽不到代码块时从结构化简历兜底拼装✏️ a4cv 可视化编辑器(v2 核心)— 报告页「编辑器微调」一键进入:34 套风格预设、布局/配色/字号微调、AI 优化、导出 PDF;同源 sessionStorage 投递(
?pickup=session),另支持新窗口?md=通道,不改 a4cv 一行代码🖥 简历诊所面板 — 概览 / 简历库 / 岗位库 / 分析报告 / 发起分析(一键开新对话填入草稿),明暗跟随 dsh 主题
使用流程
归档材料:在对话里发简历文件(PDF/DOCX 路径)或粘贴文本;也可以在面板「简历库 / 岗位库」直接新增——上传 PDF/DOCX(本地解析)或粘贴 JD 全文
发起分析:面板「发起分析」选简历 × 岗位 → 嵌入 dsh 时一键开新对话自动填入草稿(未结构化的档案,模型会先补抽取再分析);独立预览时复制草稿到剪贴板
模型自动:结构化归档 → 五步审计 → 报告存档 → 全文输出
报告页「编辑器微调」进 a4cv 排版导出 PDF;优化简历一键复制 / 下载
安装
# dsh 0.2.x:把仓库 clone 到本地后以 link 方式安装
dsh plugin add https://github.com/liangdabiao/dsh-resume-matcher
依赖会自动安装(@deepseek-ai/schemastery、unpdf)。数据存放在 ~/.dsh/resume-matcher/(可用 DSH_HOME 改)。
开发
npm install
npm test # 单元测试(parser / markdown / store)
node scripts/smoke.mjs # 冒烟:真实 DOCX + 最小 PDF + 面板 API 全链路
npm run build # client.js → dist/client.js
# 可选预览:
DSH_HOME=<数据目录> node scripts/seed-preview.mjs # 种子数据(原项目样例)
node scripts/devserver.mjs 5175 # http://127.0.0.1:5175/resume-matcher/
架构
├── src/host.js Host 半边:resume_matcher 工具 + 技能提供方 + 系统提示注入 + 面板路由
├── src/systemPrompt.js 硬规则(何时解析/归档/存档)
├── lib/parser.js DOCX(手解 zip+xml,双列保序)+ PDF(unpdf)
├── lib/store.js JSON 原子写档案库(resumes/jobs/reports);存报告时抽取+归一化优化简历
├── lib/markdown.js 报告渲染 + 优化简历启发式抽取(```md 代码块评分)
├── lib/a4cv.js a4cv 对接:结构归一化(加粗标题转 ##、补姓名)+ 兜底拼装
├── lib/api.js /resume-matcher 前缀路由(面板 API + lab/a4cv 静态资源)
├── lib/skills.js hr-critic 技能提供方
├── skills/hr-critic/ 五步审计方法论(移植自原项目 prompts.py)
├── a4cv/ a4cv 可视化简历编辑器静态资源(原样集成,未改动)
├── client.js → dist/ 浏览器半边:侧栏入口 + iframe + 主题/开新对话桥
└── lab/ 面板页面(瑞士风设计系统,明暗双主题;#/editor/ 编辑器视图)
边界与说明
.doc/.pages/ 扫描件图片 PDF 不支持,请转 PDF 文字版或粘贴文本分析结论由模型生成,属专业意见而非事实保证;请勿在简历中编造经历
a4cv 编辑器内置的「AI 优化」需在编辑器内自行配置模型 API(与插件本体零 API key 无关)
v2 已完成 a4cv 集成;后续可选:内置 OpenAI 兼容客户端(面板一键重跑)
更新日志
0.3.1(2026-11-10)安装后实测修复:
面板主区四边内边距恢复(
--sp-12未定义让整条padding声明失效,正文贴着左侧导航)短优化简历(Step 4 有 ≤1000 字预算)不再被「长度 > 150」门槛误判——优化稿不会被结构化兜底稿顶替
报告回执区分「已抽取 / 兜底拼装 / 未抽取」,不再把兜底稿说成优化稿
resume_matcher参数的resumeId/jobId重复定义合并(save_resume的回填说明不再被覆盖)面板品牌图标
/resume-matcher/icon.svg补上路由(原先 404 破图)结构化归档:camelCase 输入(
personalData等)不再被同义别名静默清空DOCX 表格排版(个人信息表)按「单元格 = tab / 行 = 换行」输出,不再挤成一竖条
0.3.0 初版:五步审计技能 + 档案工具 + 侧栏「简历诊所」面板 + a4cv 编辑器集成
致谢
resume-matcher-agent-cn:五步审计 prompt、双列 DOCX 解析、启发式简历抽取与 a4cv 归一化均移植自该项目
a4cv(阿真的开源简历编辑器):可视化简历编辑器,本插件原样集成其静态资源
dsh-guizang-design:面板瑞士风设计系统与插件形态参考
linux.do:社区支持
License
MIT
