索引海外 AI 公司的公开招聘看板(Greenhouse、Ashby、Lever、Workable、SmartRecruiters),按 AI 相关性给岗位打分,从职位描述里提取招聘要求,并按计划每天生成 Markdown 摘要。
安装
# Release 预构建包
dsh plugin --profile web add "https://github.com/justinzyc271828-sys/dsh-ai-jobs/releases/latest/download/dsh-ai-jobs.tgz"
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:justinzyc271828-sys/dsh-ai-jobs
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DeepSeek Harness 的 AI 招聘雷达。 把 AI 实验室与重度使用 AI 的公司的公开招聘板抓到一个本地索引里,按你自己的标准打分,抽出它们 真实写在 JD 里的要求(年限、技能、学历、办公模式、薪资、签证),并把每天新出现的岗位推成一份摘要。
不需要 API key,不需要账号,也不爬登录态站点:每个数据源都是公司为自己的 careers 页面公开的 ATS 接口。
解决什么问题
找 AI 岗位本质上是在约 70 家公司的异构招聘系统里做检索:数据是公开的,但分散、每周要人肉重读、 跨公司没法对比。这个插件维护一份本地索引,于是可以问跨公司的问题:
- 现在哪些实验室在招 research engineer,它们各自要求什么?
- 核心 AI 岗位里有多少要求博士?"N 年以上"的中位数是多少?
- 最近 7 天新开了哪些岗,哪些匹配我的技术栈?
- Anthropic / OpenAI / Mistral 要求的东西里,我缺哪几项?
能力
| 环节 | 说明 |
|---|---|
| 采集 | 71 个预先验证过的招聘板(Greenhouse / Ashby / Lever),自建公司可用 Workable / SmartRecruiters |
| 归一 | 跨 ATS 统一字段:标题、地点、远程标记、部门、发布时间、链接、JD 正文 |
| 分类 | core / adjacent / other 三档 AI 相关性 + 岗位族 + 职级,纯规则、可审计 |
| 抽取 | 年限、学历、办公模式、薪资区间、是否 sponsor 签证、38 个技能词表 |
| 打分 | 0–100:相关性 + 新鲜度 + 职级 + 你的目标技能 + 偏好地点 |
| 存储 | 本地 JSON 索引 + JD 快照 + 变更记录 + digest 游标 |
| 推送 | Markdown 摘要,并可经 harness 的 schedule 服务每天定时推送 |
安装
# 插件市场 / npm(发布后)
dsh plugin --profile web add dsh-ai-jobs
# 本地目录,开发用
dsh plugin --profile desktop add ./dsh-ai-jobs
# 打包后的 tarball
npm pack && dsh plugin --profile desktop add ./dsh-ai-jobs-0.1.0.tgz
bundle patch 只会挂一行插件(ai-jobs);重启应用或到 Plugins 页开关即可。
快速上手
ai_jobs_refresh # 抓取所有监控的招聘板(首次约 10 秒 / 3 个大板)
ai_jobs_search { "tier": "core", "postedWithinDays": 7, "minScore": 70 }
ai_jobs_requirements { "tier": "core", "limit": 200 }
ai_jobs_digest
ai_jobs_watchlist { "action": "add", "company": "Mistral", "ats": "ashby", "token": "mistral.ai" }
工具
| 工具 | 返回 |
|---|---|
ai_jobs_refresh |
重新索引全部或指定招聘板;逐板报告成功/失败与新增/变更/关闭数量 |
ai_jobs_search |
过滤 + 打分后的岗位:query、company、tier、seniority、remote、location、minScore、postedWithinDays、limit、sort |
ai_jobs_get |
单个岗位全量:元数据、分数、抽取到的要求、JD 开头、已存 JD 路径 |
ai_jobs_digest |
自上次摘要以来(或最近 N 天)的变化,Markdown 格式 |
ai_jobs_requirements |
跨公司聚合:技能出现频次、年限中位数、学历分布、办公模式分布、薪资区间 |
ai_jobs_watchlist |
list / add / remove 招聘板(greenhouse、ashby、lever、workable、smartrecruiters) |
ai_jobs_status |
索引健康度:板数、在招/关闭数、分档占比、上次抓取、上次摘要、存储路径 |
ai_jobs_schedule |
create / list / delete 每日摘要提醒(需要 schedule 服务) |
每日推送
两种方式:
ai_jobs_schedule { "action": "create", "time": "09:00:00", "timeZone": "Asia/Shanghai" }— 每个会话一条提醒(title ≤ 120 字)。- 配置里
dailyDigest.enabled: true— 会话首次执行ai_jobs_refresh或ai_jobs_digest时 插件自己挂上提醒。
摘要只报告上次游标之后的新岗位,所以每天推送不会重复昨天的内容;
ai_jobs_digest { "days": 7 } 可以忽略游标看最近 7 天。
配置
{
"lang": "zh",
"timeZone": "Asia/Shanghai",
"concurrency": 4,
"skillsOfInterest": ["LLM", "inference", "agents", "RAG"],
"preferredLocations": ["San Francisco", "Remote"],
"remoteOk": true,
"digestPerCompany": 4,
"digestLimit": 30,
"digestMinScore": 0,
"dailyDigest": { "enabled": true, "time": "09:00:00" },
"companies": [
{ "company": "Cohere", "ats": "ashby", "token": "cohere", "tags": ["frontier-lab"] }
]
}
| 键 | 默认 | 含义 |
|---|---|---|
dataDir |
$DSH_HOME/ai-jobs(回退 ~/.dsh/ai-jobs) |
索引、JD 快照、摘要状态 |
lang |
zh |
摘要语言(zh / en) |
concurrency |
4 |
并发抓取的板数 |
timeoutMs |
25000 |
单请求超时 |
jdMaxChars |
20000 |
每条岗位保留的 JD 字符数 |
maxDetailPerBoard |
60 |
每次刷新每个板补取 JD 的上限(Greenhouse) |
tags |
随种子数据 | frontier-lab、ai-native、ai-user,参与打分与筛选 |
companies |
[] |
追加到内置种子数据之后的招聘板 |
数据源
全部为公司公开、无需鉴权的接口:
| ATS | 接口 | 内置板数 |
|---|---|---|
| Greenhouse | boards-api.greenhouse.io/v1/boards/{token}/jobs |
33 |
| Ashby | api.ashbyhq.com/posting-api/job-board/{token} |
37 |
| Lever | api.lever.co/v0/postings/{token}?mode=json |
1 |
| Workable | apply.workable.com/api/v1/widget/accounts/{token} |
— |
| SmartRecruiters | api.smartrecruiters.com/v1/companies/{token}/postings |
— |
内置覆盖 Anthropic、OpenAI、xAI、Mistral、Cohere、Perplexity、Thinking Machines、Cursor、Cognition、 Harvey、Sierra、Decagon、ElevenLabs、Suno、Midjourney、Runway、Baseten、Cerebras、Fireworks、Modal、 Anyscale、Together、Scale、Pinecone、Weaviate、Chroma、LangChain、LlamaIndex、Databricks、Snowflake、 Stripe、Cloudflare、Datadog、Elastic、MongoDB、Figma、Notion、Vercel、Plaid、Ramp、Airbnb、Instacart、 Lyft、Pinterest、Reddit、Discord、Roblox、Duolingo、Khan Academy、Spotify 等。 Greenhouse 的 JD 需要第二次请求,插件只对新增/变更的岗位补取。
ai_jobs_watchlist 可以加任何使用上述招聘板的其他公司。token 需要人工确认——内置的 71 个是逐个
验证过的。
打分逻辑
score = 分档(核心 55 / 相邻 28 / 其他 8)
+ 新鲜度(约 40 天内从 30 线性降到 0)
+ 职级(实习 -6 … 首席 +7)
+ 目标技能命中(最高 12)
+ 偏好地点(最高 8)/ 支持远程(最高 6)
+ 明示薪资(3)
标题里带 AI 但实际招非技术职能的(法务、销售、政策、市场、招聘、财务、采购……)会在进入 AI
规则前被判为 other。
带 AI 词汇的管理岗(program / product / project manager、TPM)会被判为 adjacent:岗位真实存在,
但不是 AI 一线的个人贡献者(IC)角色。
数据与隐私
- 全部存在本地
$DSH_HOME/ai-jobs:store.json(索引)、jd/*.txt(JD 快照)、摘要游标。 - 无遥测、无后端;只会用带说明的 User-Agent 访问上面列出的公开招聘接口。
- 不爬登录态站点,不读取、不保存任何凭据。
- 删除
dataDir即清空全部数据。
合规提示
这些接口是公司为自己 careers 页面公开的。请保持默认的克制配置(concurrency: 4、每次刷新只取
一轮、只对新岗位补 JD),不要批量转售数据。要求、薪资与在招状态随时变化,行动前请到公司官网
careers 页确认。
开发
npm run smoke # 校验 schema + 对两个小板跑通 refresh/search/digest
npm run live-check # 对真实接口跑多板端到端
npm run probe # 重新验证候选 ATS token
npm run seed # 重建 data/companies.json
目录:src/text.js(HTML→文本)、src/sources.js(ATS 适配器)、src/classify.js
(分档/职级/要求抽取/打分)、src/store.js(索引 + JD 快照)、src/digest.js(Markdown)、
src/tools.js(8 个工具)、src/index.js(bundle 入口)。
零运行时依赖,只用 Node 内置模块。
License
MIT
链接
同类插件
DayuanJiang/next-ai-draw-io#dsh-plugin★ 36548
dsh 的 draw.io 绘图插件:通过 next-ai-drawio MCP 服务器作图,点回复里的链接在右侧栏打开实时预览,可以手动修改图,AI 的每次修改都是可以恢复的版本。需 Node.js 18+,首次使用由 npx 下载 MCP 服务器。
Tencent/WeKnora#dsh-weknora★ 36201
把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己带引用的 RAG 或 ReAct agent 回答(含可续聊的 session id)。
superdesigndev/treg★ 6962
给 Agent 的工具目录:按「要做的事」检索约 2,600 个外部接口(SEO 与 SERP、外链、社交、人物与公司信息补全、广告库、抓取),查看参数与单次调用价格后直接调用,凭据由服务端注入。附带技能,MCP 行在未设置 TREG_TOKEN 前保持禁用。
T-Auto/dsh-ops★ 5011
为 Windows 的 DSH 提供 bash、PowerShell 7 及 Rust 高性能工具,减少 token 消耗。
sixtysevenlf/dsh-blender-plugin★ 1536
让 DSH agent 通过直连 TCP 通道驱动本地 Blender,提供 15 个工具:视口帧、自定义视角渲染、Python 执行、无头与作业卸载、事务回滚,以及 34 个 family / 228 个 op 的规划层。
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1153
把腾讯云 CloudBase 后端接入 DeepSeek Harness——在对话里搭好并部署全栈应用,查询结果渲染为表格卡片(分页、排序、导出 CSV),部署后可预览真实域名,并提供 CloudBase MCP 工具集(`mcp__cloudbase__*`),登录走 device-code 流程。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。