🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

求职情报站 allentnetus/dsh-job-hunting

DeepSeek Harness
allentnetus74 天前有提交已提供中文文档扫描:含敏感能力

整理本地岗位与简历,生成匹配报告和求职网站

28.1/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add allentnetus/dsh-job-hunting
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/26·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 74 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 31 处,展示前 31 条)
  • 读取本地文件
    dist/src/desktop/desktop-shortcut.js:52
    const resolvedRoot = await realpath(siteRoot);
  • 读取本地文件
    dist/src/desktop/desktop-shortcut.js:53
    const rootStats = await stat(resolvedRoot);
  • 读取本地文件
    dist/src/desktop/desktop-shortcut.js:58
    const resolvedTarget = await realpath(candidate);
  • 读取本地文件
    dist/src/desktop/desktop-shortcut.js:62
    const targetStats = await stat(resolvedTarget);
  • 写入本地文件
    dist/src/workspace/workspace-output.js:78
    await Promise.all(directories.map((directory) => mkdir(directory, { recursive: true })));
  • 读取本地文件
    dist/src/workspace/workspace-output.js:83
    const content = await readFile(filePath, 'utf8');
  • 写入本地文件
    dist/src/workspace/workspace-output.js:98
    await mkdir(directory, { recursive: true });
  • 写入本地文件
    dist/src/workspace/workspace-output.js:100
    await writeFile(tempFile, content, 'utf8');
  • 写入本地文件
    dist/src/workspace/workspace-output.js:101
    await rename(tempFile, filePath);
  • 写入本地文件
    dist/src/workspace/workspace-output.js:107
    await writeFile(filePath, content, 'utf8');
  • 删除本地文件
    dist/src/workspace/workspace-output.js:113
    await rm(tempFile, { force: true }).catch(() => undefined);
  • 读取本地文件
    dist/src/tools/resume-tools.js:32
    const buffer = await readFile(filePath);
  • 读取本地文件
    dist/src/tools/site-tools.js:75
    await access(indexPath);
  • 读取本地文件
    dist/src/tools/status-tool.js:13
    await access(path);
  • 读取本地文件
    dist/src/jobs/local-json-adapter.js:77
    const content = await readFile(filePath, 'utf8');
  • 读取本地文件
    dist/src/jobs/job-collector.js:26
    const fileNames = await readdir(entry.directory, { withFileTypes: true });
  • 读取本地文件
    dist/src/jobs/local-markdown-adapter.js:73
    const content = await readFile(filePath, 'utf8');
  • 读取本地文件
    dist/src/profile/profile-storage.js:55
    await access(backupPath);
  • 写入本地文件
    dist/src/profile/profile-storage.js:58
    await copyFile(sourcePath, backupPath);
  • 写入本地文件
    dist/src/reports/daily-report.js:318
    await mkdir(resolvedOutputRoot, { recursive: true });
  • 写入本地文件
    dist/src/reports/daily-report.js:322
    await writeFile(jsonPath, `${JSON.stringify(report, null, 2)}\n`, 'utf8');
  • 写入本地文件
    dist/src/reports/daily-report.js:323
    await writeFile(markdownPath, renderMarkdown(report), 'utf8');
  • 写入本地文件
    dist/src/reports/daily-report.js:324
    await writeFile(htmlPath, renderHtml(report), 'utf8');
  • 读取本地文件
    dist/src/site/site-builder.js:74
    await access(path.join(directory, 'index.html'));
  • 写入本地文件
    dist/src/site/site-builder.js:110
    await mkdir(input.outputDir, { recursive: true });
  • 读取本地文件
    dist/src/site/site-builder.js:113
    readFile(path.join(templateDirectory, 'index.html'), 'utf8'),
  • 读取本地文件
    dist/src/site/site-builder.js:114
    readFile(path.join(templateDirectory, 'app.css'), 'utf8'),
  • 读取本地文件
    dist/src/site/site-builder.js:115
    readFile(path.join(templateDirectory, 'app.js'), 'utf8'),
  • 写入本地文件
    dist/src/site/site-builder.js:118
    writeFile(indexPath, embedSiteData(indexTemplate, data), 'utf8'),
  • 写入本地文件
    dist/src/site/site-builder.js:119
    writeFile(cssPath, css, 'utf8'),
  • 写入本地文件
    dist/src/site/site-builder.js:120
    writeFile(jsPath, js, 'utf8'),
扫描于 2026/11/5(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh@deepseek-ai/dsh-llm@deepseek-ai/dsh-skill@deepseek-ai/dsh-tools@deepseek-ai/dsh-workspace
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 整理本地岗位与简历
  • 生成匹配报告
  • 生成求职网站

DeepSeek Harness 求职插件和运行时技能,用于本地求职情报工作流。

README

由 DeepSeek 最新模型翻译生成
Job Hunting DSH 插件 dsh-job-hunting 是一个本地优先的 DeepSeek Harness 插件和 Runtime Skill,用于整理招聘岗位、确认求职画像,以及维护意向岗位。v0.1 包的自有代码和模板采用 MIT 许可证;第三方依赖仍保留各自许可证。 v0.1 支持范围 - 导入本地 JSON 或本地 Markdown 岗位文件,并完成标准化、去重、匹配和报告生成。 - 解析 DOCX、文字型 PDF、TXT 和 Markdown 简历。扫描版或加密 PDF 会明确拒绝, v0.1 不使用 OCR。 - 构建 JH / 求职情报站 / Job Hunting 静态网站。数据在构建阶段内嵌,因此生成的 index.html 可以直接通过 file:// 打开。 - 浏览器中的岗位标记只保存在当前浏览器的临时状态中;用户可导出后,再同步到活跃 Workspace 的正式兴趣台账。详见Workspace 输出说明。 - 提供一个供宿主或手工集成调用的模块级 Windows 快捷方式服务。它不会自动创建快捷方式;如果宿主尚未集成,该快捷方式用户入口尚未提供。 用户简历、已确认画像、兴趣数据、报告和生成的网站只能写入宿主选定的活跃 Workspace。 插件不会使用固定的个人数据目录。
展开完整文档(README 剩余 1 节)
Job Hunting DSH 插件

dsh-job-hunting 是一个本地优先的 DeepSeek Harness 插件和 Runtime Skill,用于整理招聘岗位、确认求职画像,以及维护意向岗位。v0.1 包的自有代码和模板采用 MIT 许可证;第三方依赖仍保留各自许可证。

v0.1 支持范围

- 导入本地 JSON 或本地 Markdown 岗位文件,并完成标准化、去重、匹配和报告生成。
- 解析 DOCX、文字型 PDF、TXT 和 Markdown 简历。扫描版或加密 PDF 会明确拒绝, v0.1 不使用 OCR。
- 构建 JH / 求职情报站 / Job Hunting 静态网站。数据在构建阶段内嵌,因此生成的 index.html 可以直接通过 file:// 打开。
- 浏览器中的岗位标记只保存在当前浏览器的临时状态中;用户可导出后,再同步到活跃 Workspace 的正式兴趣台账。详见Workspace 输出说明。
- 提供一个供宿主或手工集成调用的模块级 Windows 快捷方式服务。它不会自动创建快捷方式;如果宿主尚未集成,该快捷方式用户入口尚未提供。

用户简历、已确认画像、兴趣数据、报告和生成的网站只能写入宿主选定的活跃 Workspace。
插件不会使用固定的个人数据目录。

在 DeepSeek Harness 中安装

本插件针对 DeepSeek Harness 0.1.0-rc.6 的 web profile 验证。完整的 npm、GitHub、本地源码安装、验证、卸载和 DSH profile 配置方式见安装指南。

安装前提

安装 DSH 本体和安装插件是两件事。官方 npm 启动方式使用 Node.js 和 npx,不会自动安装 pnpm;当前 DSH 的 dsh plugin 命令会调用 pnpm 管理 profile 依赖。使用者需要准备:

- DeepSeek Harness 0.1.0-rc.6,或经过兼容性验证的更高版本;
- Node.js >=24.15.0;
- pnpm >=11.19.0;
- 已初始化或可初始化目标 profile(以下以 web 为例)。

先确认终端可以找到这些命令:

node --version
pnpm.cmd --version
dsh.cmd --help

如果 pnpm 不存在,单独安装它即可;不需要在本插件目录执行 pnpm install:

npm.cmd install --global pnpm@11.19.0

Windows PowerShell 执行策略问题

如果 Windows PowerShell 提示“无法加载文件 npm.ps1,因为在此系统上禁止运行脚本”,这是 PowerShell 的执行策略阻止了 npm 的 PowerShell 入口,不是 pnpm 安装包本身的问题。可以改用 .cmd 入口安装和验证,无需修改执行策略:

npm.cmd install --global pnpm@11.19.0
pnpm.cmd --version

验证命令输出 11.19.0 即表示安装成功。之后在同一 PowerShell 环境中运行 pnpm 命令时,继续使用 pnpm.cmd 即可,无需修改执行策略。安装过程中若出现 electron_mirror 的未知配置警告,通常不影响 pnpm 安装。

以下说明面向其他使用者。使用者不需要克隆本仓库、不需要手动复制 cordis.patch.yml,也不需要使用维护者电脑上的本地路径。

从 GitHub 安装

dsh.cmd --help
dsh.cmd plugin --profile web add "https://codeload.github.com/allentnetus/dsh-job-hunting/tar.gz/refs/tags/v0.1.3"

这里使用 GitHub tag tarball URL,不调用 Git ls-remote,不依赖本机 GitHub SSH host key,也不受 Git for Windows Schannel 握手问题影响。不要改成 github: 简写。

如需固定到不可变提交,请使用 GitHub tag v0.1.3 指向的完整 commit SHA(可在 tag 页面或提交历史中查看);日常安装直接使用上面的版本标签即可。

web 是示例 profile 名称;如果使用者使用的是 demo 或其他 profile,将命令中的 web 替换为自己的 profile 名称。

安装后验证:

dsh.cmd plugin --profile web list
dsh.cmd --profile web --dump-config | Select-String 'dsh-job-hunting|job-hunting'

验证成功后重启 dsh.cmd web 或桌面 Harness。插件会自动注册 job-hunting Runtime Skill 和 job_hunting_ 工具。GitHub 的 dsh-plugin 主题仅用于分类和发现,不会自动安装插件。

后续版本更新

插件代码使用版本号发布;岗位采集数据、用户求职画像、城市/行业分类、收藏和备注保存在 Workspace 中,独立于插件版本。更新时先检查,再明确执行:

dsh.cmd plugin --profile web outdated
dsh.cmd plugin --profile web update dsh-job-hunting
dsh.cmd --profile web --dump-config | Select-String 'dsh-job-hunting|job-hunting'

更新后重启 Harness。默认不执行静默自动升级;如果更新需要回滚,恢复 profile 的在 package.json 与 pnpm-lock.yaml 后执行 dsh.cmd plugin --profile web install --frozen-lockfile。
旧版 profile 第一次被新插件读取时会自动补充 schema 标记,并保留 profile/profile.json.pre-schema-.bak,不会覆盖用户已确认的分类决策。

如果终端提示“dsh 不是内部或外部命令”,说明使用者自己的 DSH CLI 尚未安装或未加入 PATH,不是本插件安装失败。Windows PowerShell 下可以选择以下方式,均不需要修改执行策略:

长期使用(推荐)时,全局安装已验证版本:

npm.cmd install --global @deepseek-ai/dsh@0.1.0-rc.6
dsh.cmd --help

只需临时运行时,使用 npx:

npx.cmd @deepseek-ai/dsh@0.1.0-rc.6 --help

首次运行 npx 可能会询问是否安装该包,输入 y 并按 Enter 即可。之后通常会复用 npm 缓存,但仍需通过 npx.cmd 调用,不会创建永久的 dsh 命令。全局安装后如果仍找不到 dsh.cmd,请重新打开 PowerShell;若仍未找到,可运行 npm.cmd prefix -g,确认输出目录已加入 PATH。

如果 pnpm 提示 Git 依赖的构建脚本需要审批,请在使用者自己的 DSH profile 的 pnpm-workspace.yaml 中允许本包后重新执行安装:

allowBuilds:
dsh-job-hunting: true

Tencent/BrowserSkill 集成

插件会直接注册并默认启用 job_hunting_collect_browser_jobs 工具。它使用 Tencent/BrowserSkill 项目提供的 BrowserSkill CLI (bsk)和浏览器扩展;这些是外部运行前置条件,不是 npm 依赖,也不会随本包安装或发布。
默认已包含 51job、BOSS 直聘、猎聘、智联招聘和国聘的精确主机名;宿主可以覆盖默认列表或追加其他站点:

{
"browserSkill": {
"enabled": true,
"executable": "bsk",
"mode": "read-only",
"allowedDomains": [
"www.51job.com",
"www.zhipin.com",
"www.liepin.com",
"www.zhaopin.com",
"www.iguopin.com"
],
"additionalAllowedDomains": [],
"requireUserApproval": true,
"maxItemsPerRun": 50,
"minIntervalMs": 1000
}
}

默认白名单包含前程无忧、BOSS 直聘、猎聘、智联招聘和国聘的上述主机名。其他网站可追加到 additionalAllowedDomains,例如 "additionalAllowedDomains": ["www.example-job-site.com"];工具只读取白名单站点中可见的结构化岗位,受 maxItemsPerRun 数量上限和 URL 导航之间的 minIntervalMs 时间间隔限制,并要求工具调用传入 confirmed: true。找不到 bsk、白名单为空或需要登录/CAPTCHA 时,会报告不可用或需要人工协助。

首次使用浏览器采集前,请按照 Tencent/BrowserSkill 的说明安装 CLI 和浏览器扩展,然后在同一终端检查:

bsk --help
bsk status

bsk status 能看到可用会话后,再在 DSH 对话中确认具体白名单 URL 和只读范围。

采集结束后会停止 BrowserSkill 会话,不会提取凭证、提交申请、发送招聘消息,也不会绕过认证或 CAPTCHA 控制。详见BrowserSkill 集成说明。

定时行为

插件配置中的 schedule.enabled 默认是 false;它不会创建独立的后台调度器。需要使用 DSH 原生 Schedule 时,必须在启动会话时显式应用可选的宿主层 overlay:

$overlayPath = Join-Path (Get-Location) 'dsh-schedule.cordis.yml'
Invoke-WebRequest
-Uri 'https://raw.githubusercontent.com/allentnetus/dsh-job-hunting/v0.1.3/dsh-schedule.cordis.yml'
-OutFile $overlayPath
dsh.cmd web --patch $overlayPath

仓库根目录的 dsh-schedule.cordis.yml 只加载 @deepseek-ai/dsh-time-context 和 @deepseek-ai/dsh-schedule。它不会写入默认的 cordis.patch.yml,也不会随 npm 包发布;上面的版本固定 URL 可供 GitHub 安装用户直接取得,从 npm 安装的使用者也需要单独下载该 overlay,或在自己的 DSH profile patch 中写入同等配置。

DSH 原生 Schedule 只对当前会话有效;新会话需要再次使用 --patch,并重新创建提醒。它的职责是到时间提醒,不是 Windows Cron、可靠的后台任务或无人值守爬虫。提醒到期后,提醒本身不构成采集授权:必须由用户确认本轮具体白名单 URL 和只读范围,之后才能调用 job_hunting_collect_browser_jobs,采集成功后再生成当天报告。登录、CAPTCHA、限流或其他网站限制仍需要人工处理。详见 DSH 安装与 Schedule 说明 和 BrowserSkill 集成说明。

入口与命令

- DSH 插件入口点为 ./dist/src/index.js。
- Runtime Skill 入口点为 ./dist/src/skill/job-hunting.skill.js。

pnpm.cmd install
pnpm.cmd test # 运行 Vitest 前会先清理并构建 pnpm.cmd typecheck pnpm.cmd build pnpm.cmd lint pnpm.cmd dsh:smoke pnpm.cmd release:check

pnpm test 和 pnpm release:check 都会先清理并构建 dist,再运行 Vitest 检查;
pnpm build 也会先移除旧的 dist。这些命令不会发布包,也不会全局安装任何内容。
完整 Git 历史密钥扫描仍是外部发布前置条件,不由当前本地检查执行。详见发布清单。
预览分享卡片长什么样 ↓allentnetus/dsh-job-hunting
分享 · DeepSeek Harness Hub
allentnetus/dsh-job-hunting

整理本地岗位与简历,生成匹配报告和求职网站

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部