JobHunter 是一个面向真实求职流程的本地工作台。
它把「找岗位 → 看 JD → 改简历 → 生成开场白 → 模拟面试 → 沉淀内容」放进同一套界面里,减少在招聘网站、文档、聊天窗口和表格之间来回切换。
当前版本已经整理成 4 个独立栏目:
岗位探索:连接本机 BOSS 搜索,查看岗位详情,决定是否加入职位看板简历优化:围绕目标岗位做 AI 评估、简历润色、开场白生成模拟面试:选择岗位和简历,开始纯文本多轮问答内容管理:集中查看岗位、简历、投递、面试记录和复盘
首页只负责导航,不再把所有内容堆在一个工作台里。
它更适合下面这种使用方式:
- 你在本机浏览器里已经登录招聘网站
- 你希望先快速搜一批岗位,再决定要不要继续跟进
- 你希望针对某个岗位生成一版更贴近目标的简历
- 你想把岗位、简历版本、投递记录和面试过程都留在一个地方
当前定位是单人本地使用,不是线上多用户产品。
输入关键词后,系统会连接你本机的 BOSS 会话,把搜索结果直接展示出来。
你可以先浏览岗位,再决定:
- 加入内容管理里的职位看板
- 直接进入简历优化
简历优化页会围绕选中的岗位展开,当前支持:
- AI 评估:输出匹配分数、已覆盖、缺失点、薄弱点和建议补充的小项目
- 简历润色:按更自然的叙事方式生成岗位定制版本
- 开场白:生成适合直接沟通的中文开场白
简历内容可以这样进入系统:
- 手动粘贴或编辑 Markdown
- 从内容管理里选择历史简历版本
- 粘贴截图
- 上传本地图片或 PDF,识别后转成 Markdown
当前简历的主要导出方式是 Markdown。
润色结果可以另存为新的简历版本。
先选一个岗位,再选一份简历,然后开始文字模拟面试。
每轮问答都会继续写回系统,方便后续复盘。
内容管理是整个流程的收口位置,目前分成 5 个页签:
岗位库简历库投递进展面试记录复盘记录
这里可以继续查看 JD、改简历标题、删除旧版本、记录投递状态和复盘内容。
用四张卡片把整条求职流程拆开,入口更清楚。
从本机 BOSS 搜索结果进入系统,先看岗位,再决定是否进入后续流程。
先判断当前简历和目标岗位之间的贴合度,明确已覆盖、缺失点和短板。
把简历改成更适合真实投递的版本,并支持保存成新的历史版本。
围绕具体岗位和具体简历做多轮文本问答,便于练习和复盘。
把岗位、简历、投递、面试和复盘集中收口,后续查看更方便。
npm installcp .env.example .envdocker compose up -dnpm run db:pushnpm run dev浏览器打开 http://localhost:3000。
当前最推荐的方式,是直接用页面右上角的 API 设置按钮填写:
API KeyBase URL模型名称
这套配置会保存在你当前浏览器里,适合本地单人使用。
如果你更习惯写进 .env,常用字段是:
OPENAI_API_KEYOPENAI_BASE_URLOPENAI_MODEL
兼容 OpenAI 风格接口的服务都可以接进来,比如豆包、千问、DeepSeek 等。
当前项目里,数据大致分成两类:
岗位正文 / 简历正文 / 投递记录 / 面试记录:存到本地 PostgreSQL右上角 API 设置:存到浏览器本地
也就是说:
- 岗位和简历不是只放在浏览器缓存里
- 也不是默认落到仓库里的某个 Markdown 文件夹
岗位探索里的 BOSS 搜索走的是本地模式。
它依赖你本机已经可用的浏览器工具和当前登录状态。
使用前提:
- 本机已安装并可直接调用
bb-browser - 你当前浏览器里已经登录 BOSS
- 需要本地运行项目,不适合直接拿去做线上部署
当前搜索行为:
- 按你输入的原始关键词搜索,不再自动改写关键词
- 默认先展示 30 条
- 可以继续加载更多
- 结果会尽量贴近 BOSS 当前搜索页,但不保证和官网每次都完全一致
如果你要在非开发模式下仍允许本地搜索,可以设置:
JOBHUNTER_ALLOW_LOCAL_CRAWL=1
README 不再展开所有接口,只保留最常用的几个入口:
GET /api/crawl/local/stream:岗位探索的实时本地搜索POST /api/crawl/local:岗位探索的同步本地搜索GET /api/jobs:岗位数据GET /api/resumes:简历版本GET /api/interviews:模拟面试记录
- BOSS 搜索是本地浏览器模式,不是线上稳定抓取方案
- 搜索结果会尽量贴近原站,但不会承诺每次和官网完全一模一样
- 图片 / PDF 导入效果取决于你当前使用的模型是否支持识别
- 当前更适合单人本地工作流,不是多用户协作系统
- 内容很多时,建议主动清理岗位库和简历库,避免后续选择混乱
npm run build
npm start





