Skip to content

Repository files navigation

BossHunter v2.2.0

某直聘智能求职 Agent — 从岗位采集、AI 评分到人工确认投递、回复监测与定制简历生成的本地自动化流水线

GitHub Stars Version Python 3.10+ Non-Commercial License GitHub Issues Last Commit

🚀 本地运行 · 🔒 人工确认 · 🤖 多模型兼容 · 🧭 Chrome 自动化

BossHunter 面向正在集中求职、又不想把时间耗在重复筛选和机械沟通上的用户。它通过「AI 评分 + 人工确认」策略,帮助你筛选岗位、准备沟通内容并管理投递状态,同时把最终发送决定留在你手里。

搜索岗位 → AI 评分筛选 → 生成个性化招呼语 → 人工确认 → 发送 → 监听 HR 回复 → 生成定制简历


⭐ 喜欢 BossHunter?关注项目更新

如果 BossHunter 帮你少做一次重复筛选、多抓住一个合适机会,欢迎点亮一个 🌟 Star。你的支持能让更多有同样需求的求职者发现它,也会推动兼容性和稳定性继续更新。

想及时了解新版本,可以点击仓库右上角 Watch → Custom → Releases;遇到问题或有功能建议,欢迎提交 Issue

Star 完全自愿,不影响任何功能使用。


项目演示

产品功能演示视频(推荐先看)

完整演示入口: 点击观看 BossHunter 产品功能演示视频

视频演示了从配置、岗位采集、AI 评分、人工确认、发送招呼语到监测执行的完整链路。

产品介绍 PPT

BossHunter 产品介绍 PPT


免责声明

本项目仅供学习、研究与个人求职效率提升使用。

  • 本项目与任何招聘平台及其关联公司无任何隶属、合作或背书关系。
  • 使用自动化工具操作第三方平台可能违反其用户协议,由此产生的账号限制、封禁、法律纠纷等后果由使用者自行承担。
  • 作者不对任何直接或间接损失负责。
  • 请合理设置频率限制,避免对平台造成负担。
  • 建议仅在个人求职期间短期、低频使用。

为什么做 BossHunter?

找工作过程中,很多时间都消耗在重复搜索岗位、筛选匹配度、修改招呼语和跟进消息上。

BossHunter 希望把这些重复流程交给 AI 和自动化处理,让求职者把精力放在更重要的事情上:

  • 判断机会是否真的适合自己
  • 优化简历和项目经历
  • 准备面试
  • 跟进真正有价值的岗位反馈

BossHunter 不是为了鼓励无脑海投,而是希望帮助你更高效、更有判断力地管理求职流程。


适合谁使用?

BossHunter 适合这些用户:

  • 正在集中投递岗位的求职者
  • 想用 AI 提高简历投递效率的人
  • 想减少重复筛选岗位时间的人
  • 希望本地运行、不想把账号和简历交给第三方平台的人
  • 对 AI Agent、浏览器自动化、求职效率工具感兴趣的开发者

核心能力

能力 说明
智能采集 基于关键词与城市自动翻页采集岗位,内置去重
AI 两阶段评分 快速预筛(关键词匹配) → 深度评分(AI 分析 JD)
定制招呼语 AI 根据岗位 JD + 个人简历生成个性化开场白
人工确认 投递前必须经过确认,支持逐个/批量审核
低频发送策略 随机间隔、时间窗口、每日上限、发送前浏览
HR 回复监听 自动检测 HR 回复,触发建议回复或定制简历生成
简历请求识别 识别附件简历请求卡片,生成定制简历并等待手动发送
Web Dashboard 可视化看板,实时查看漏斗数据、岗位状态与监测执行
自动跟进 超过设定时间未回复时自动发送一次跟进消息

流程架构

采集(scrape) → 预筛(prefilter) → AI评分(score) → 人工确认(confirm)
    → 招呼语(greet) → 发送(send) → 自动监测(monitor)
    → 简历请求 / AI建议回复 / 自动跟进

关键边界:投递与敏感动作必须保留人工确认点,不做完全无人值守的高频自动投递。


前置条件

依赖 版本 用途
Python 3.10+ 核心运行时
Node.js 22+ 本地 Browser Runtime / CDP 代理
Chrome 最新稳定版 连接已登录浏览器
AI API Key Anthropic 或 OpenAI 兼容接口

Important

BossHunter 不会代替你启动或登录招聘平台。运行前请先完成:

  1. 使用 Google Chrome 启动远程调试;
  2. 在这个可远程控制的 Chrome 窗口中提前登录要使用的招聘网站,并保持窗口打开;
  3. 在本地配置面板连接好 AI API,并通过 bosshunter ai-status 检测。

Chrome 远程调试开启方式

方式一(推荐):在 Google Chrome 地址栏输入 chrome://inspect/#remote-debugging,勾选 Allow remote debugging

方式二:使用启动参数:

# Windows
chrome.exe --remote-debugging-port=9222 --user-data-dir="%LOCALAPPDATA%\BossHunterChrome"

# macOS
open -na "Google Chrome" --args --remote-debugging-port=9222 --user-data-dir="$HOME/.bosshunter-chrome"

# Linux
google-chrome --remote-debugging-port=9222 --user-data-dir="$HOME/.bosshunter-chrome"

使用启动参数时会打开独立的 Chrome 用户目录。请在这个新窗口中登录招聘网站;登录在其他 Chrome 窗口中无法被 BossHunter 复用。


快速开始

一、安装

# 1. 克隆仓库
git clone https://github.com/powerycy/BossHunter.git
cd BossHunter

# 2. 安装 Python 依赖
pip install -e .

# 可选:仅在需要 xhtml2pdf fallback 渲染时安装
pip install -e ".[pdf]"

二、启动 Google Chrome 远程控制并登录

  1. 按上方方式开启 Chrome 远程调试。
  2. 在同一个 Chrome 窗口中打开招聘网站并完成登录。
  3. 保持 Chrome 运行,不要在任务期间关闭这个远程控制窗口。

三、配置简历、岗位与 AI API

bosshunter web

打开 http://127.0.0.1:8686,完成:

  1. 上传 Markdown(.md)或 Word(.docx)简历。
  2. 设置搜索关键词、目标城市、评分阈值、发送频率和时间窗口。
  3. 在「AI 设置」选择 Claude、DeepSeek、豆包或其他兼容服务,填写服务商提供的 API Key 和模型名称。
  4. 保存后运行:
bosshunter ai-status

只有显示 AI 连接通过后,再开始投递。API Key 只在本地面板输入,不要粘贴到 Issue、聊天记录或提交文件中。

四、检查 Chrome 连接并运行

bosshunter connect
bosshunter run

bosshunter connect 只检测连接,不会自动启动 Chrome。如果检测失败,请回到第二步重新开启远程调试,并确认招聘网站已在同一 Chrome 窗口登录。

系统自动执行:采集 → AI 评分 → 人工确认 → 生成招呼语 → 发送 → 自动监测。

请使用已开启远程调试、且已登录招聘网站的 Google Chrome。操作间存在拟人化时间间隔,可在工作台点击停止,命令行模式下按 Ctrl+C 停止。


命令一览

一键流程(推荐)

bosshunter run

自动执行:采集 → 评分 → 确认 → 招呼语 → 发送 → 自动监测。

分步执行

bosshunter scrape -k "Python开发"         # 采集
bosshunter score                          # AI 评分
bosshunter confirm                          # 人工确认
bosshunter greet                            # 生成招呼语
bosshunter send                             # 发送已生成的招呼语

监听模式

bosshunter monitor              # 持续监听 HR 回复(默认30分钟间隔)
bosshunter monitor --once       # 只检查一次

Web Dashboard

bosshunter web                  # 打开 http://127.0.0.1:8686

状态查看

bosshunter ai-status            # 安全检测 AI 服务连接(不显示 Key)
bosshunter status               # 简要统计
bosshunter status --full        # 完整仪表盘

配置说明

详见 config.example.yaml

核心配置项:

配置段 关键字段 说明
profile resume_path, salary_min/max, deal_breakers 简历路径、期望薪资与排除条件
search keywords, cities, max_pages 搜索策略
scoring threshold, prefilter_threshold 评分阈值
throttle daily_limit, interval_min/max, send_windows 低频发送策略
ai service, provider, model, api_key, base_url AI 服务与接口配置
monitor interval, max_resume_sends_per_cycle 监听设置
follow_up enabled, interval_hours, skip_weekends 跟进策略

AI 兼容接口说明

配置页可直接选择 Claude、DeepSeek、豆包或其他 OpenAI 兼容接口:

  • Claude / Anthropic:使用 Anthropic Messages;可通过 ANTHROPIC_API_KEY 提供 Key。
  • DeepSeek:自动使用 OpenAI Chat Completions 和官方 Base URL;可通过 DEEPSEEK_API_KEY 提供 Key。
  • 豆包 / 火山方舟:自动使用 OpenAI Chat Completions 和方舟 Base URL;可通过 ARK_API_KEY 提供 Key。
  • 其他 OpenAI 兼容接口:填写服务商提供的 Base URL 和模型 ID;可通过 OPENAI_API_KEY 提供 Key。
  • 安装 AI 只检测标准环境变量是否存在,不读取或输出 Codex、Claude Code、ChatGPT 等工具自身的登录凭证。
  • 可运行 bosshunter ai-status 安全验证当前配置,命令不会显示完整 Key。
  • 公开仓库不包含任何真实 API Key、内部域名或个人配置。

项目结构

BossHunter/
├── SKILL.md              # Skill 行为定义(Claude Code 加载)
├── README.md             # 本文件
├── LICENSE               # MIT License
├── config.example.yaml   # 配置模板(脱敏)
├── pyproject.toml        # Python 包定义
├── .gitignore            # 安全排除规则
├── resume.example.md     # 简历模板示例
├── docs/demo/            # 产品截图与演示视频
├── src/
│   └── bosshunter/       # 核心源码
│       ├── main.py       # CLI 入口
│       ├── config.py     # 配置加载
│       ├── db.py         # SQLite 数据层
│       ├── pipeline.py   # 流程编排
│       ├── ai/           # AI 评分 + 招呼语 + 简历生成
│       ├── browser/      # Browser Runtime / CDP 连接
│       ├── scraper/      # 岗位采集
│       ├── executor/     # 发送 + 监听
│       ├── tracker/      # 状态追踪
│       ├── throttle.py   # 低频发送策略
│       ├── dedup/        # 去重
│       ├── ui/           # 终端交互 UI
│       └── web/          # Web Dashboard
└── data/                 # 运行时数据(不入库)
    ├── bosshunter.db
    └── resumes/

风险控制策略

本项目默认采用保守策略:

  1. 时间窗口 — 仅在配置时间窗口内发送
  2. 随机间隔 — 每次操作间隔随机
  3. 每日上限 — 限制每天发送数量
  4. 发送前浏览 — 发送前先浏览岗位页
  5. 随机休息 — 小概率跳过当天
  6. 渐进退避 — 连续错误时自动增加间隔
  7. 人工确认 — 所有投递必须经过人工审核

即便如此,无法保证 100% 不被检测。请自行评估风险。


常见问题

Q: 会被封号吗?

A: 存在风险。本项目通过低频、随机间隔、时间窗口和人工确认降低风险,但平台随时可能更新检测逻辑。建议保守配置。

Q: 支持哪些 AI 服务?

A: 支持官方 Anthropic、Anthropic Messages 兼容接口和 OpenAI 兼容的 Chat Completions 接口。兼容服务需要自行填写 Base URL、API Key 与模型名。

Q: 简历是什么格式?

A: 支持 Markdown(.md)和 Word(.docx)简历;Word 文件会在本地转换为 Markdown 后使用。旧版二进制 .doc 暂不支持。AI 会根据具体岗位 JD 动态生成定制简历,并输出 PDF。

Q: 为什么需要 Chrome 远程调试?

A: 项目通过 CDP (Chrome DevTools Protocol) 直连你日常使用的浏览器,天然携带登录态,无需保存招聘平台账号密码。


版本更新

日期 版本号 类型 更新内容
2026-08-02 v2.2.0 功能与稳定性 单岗位失败不再中断全流程;额度未完成岗位下次优先续发;加强首次沟通、历史会话、任务停止、后台页面与最新配置生效逻辑,并简化工作台。
2026-07-30 v2.1.1 稳定性修复 修复 AI 评分与招呼语可能因 Token 限制中断的问题:回答被截断时增大输出上限重试,上下文过长时压缩请求,额度或限流异常会保留进度并在工作台显示原因。
2026-07-30 v2.1.0 功能与体验 支持中文名 Markdown 和 Word(.docx)简历;新增 DeepSeek、豆包和自定义兼容 API;启动前会明确提示 Chrome、远程调试与 AI 配置问题。
2026-07-27 v2.0.0 功能改进 优化定制简历投递和监测恢复流程,并清理公开文档中的隐私信息。
2026-06-29 v2.0.0 稳定性 修复工作台任务可能卡住的问题;自动跟进默认关闭,把发送决定留给用户。

查看每个版本的完整说明:CHANGELOG.md

展开查看 v2.2.0 功能与稳定性更新

功能与稳定性更新

  • 部分失败继续流程:单个岗位发送失败后单独记录,其他岗位和后续 HR 回复监测继续执行。
  • 额度待办自动续发:因每日额度未执行的已确认岗位保留招呼语,下次运行全流程时优先处理。
  • 最新配置立即生效:人工确认期间修改的每日上限、发送间隔等设置,在真正发送前重新读取。
  • 首次沟通与历史会话兼容:根据平台预设招呼语、首次沟通编辑器和已存在会话选择对应发送路径,增加结果验证与安全重试。
  • 停止更及时:采集、AI 请求、招呼语、发送和监测统一响应停止请求,已完成结果会保留。
  • 工作台简化:移除普通用户不需要的全量重新评分入口,三个主要操作按三栏布局展示。
  • 系统性风险仍会暂停:验证码、限流、账号拦截或连续系统错误会中止发送,避免继续触发平台风控。

贡献者致谢

  • @yukinoshi:提交 #25,贡献多 AI 服务兼容与 Thinking 参数等改进思路。
  • @elowenzhouyb-source:提交 #27,贡献 AI 评分、招呼语与发送可靠性等改进思路。
展开查看 v2.1.1 稳定性修复

稳定性修复

  • Token 截断自动恢复:评分或招呼语回答因输出上限被截断时,自动增大当前请求的输出 Token 上限后重试。
  • 上下文超限自动恢复:简历或岗位内容超过模型上下文时,保留关键信息并压缩当前请求后重试。
  • 失败不丢进度:单个岗位仍失败时保留待处理状态;额度不足、限流或鉴权异常会保存已完成结果并安全暂停。
  • 前端明确反馈:工作台任务日志会显示 Token、额度、限流、鉴权或连接问题,不再只表现为操作中断。
展开查看 v2.1.0 更新说明

新功能

  • 简历上传兼容性:支持中文文件名的 Markdown 简历,并新增 Word(.docx)简历上传与文本解析。
  • 多 AI 服务商:配置面板支持 DeepSeek、豆包、Anthropic、OpenAI 和自定义兼容接口,自动填写对应协议与 Base URL。
  • Web 工作台升级:新增本地可视化工作台,集中展示采集、评分、确认、发送、监测与简历生成状态。
  • 启动前环境诊断:前端逐项检查 Google Chrome、远程调试、招聘平台页面、AI Key、Base URL、模型、简历与搜索配置,并给出中文修复提示。
  • 简历请求卡片识别:可识别招聘平台聊天中的「附件简历请求」卡片,并归类为简历请求。
  • 定制简历生成:检测到 HR 要简历后,根据岗位 JD 生成定制 PDF 简历,提供下载与手动发送入口。
  • 监测执行视图:按「待回复 / 简历请求 / 自动跟进 / 已回复」分类查看监测结果。
  • AI 建议回复:检测到 HR 问题时可生成建议回复,默认需要人工确认后再发送。
  • 自动跟进记录:对超时未回复岗位执行一次自动跟进,并在监测执行中保留跟进内容。

安全与隐私

  • 人工确认边界更清晰:卡片识别只做归类提醒和简历生成,不自动点击「同意 / 拒绝 / 发简历」。
  • 配置脱敏:Web API 返回配置时不暴露原始 API Key。
  • 示例配置脱敏:公开仓库只保留占位配置,不包含个人简历、联系方式、数据库或运行时数据。
  • 兼容 API 说明泛化:支持 Anthropic Messages 兼容接口与模型名模糊匹配,不在公开文档中暴露内部服务名称或内部域名。

体验优化

  • 仪表盘去重:同一岗位的监测记录在前端按最新记录展示,减少重复刷屏。
  • 统计口径优化:「简历生成」按实际生成的简历文件统计。
  • AI 连接引导:用户可让安装 AI 协助打开本地配置面板、选择服务商并检测连接;API Key 只在本地面板填写,不读取安装 AI 自身的登录凭证。
  • 本地 Browser Runtime:内置 CDP 代理连接日常 Chrome,减少额外浏览器配置成本。

支持 BossHunter

BossHunter 是个人维护的开源项目。如果它对你有帮助,欢迎:

  • 点 Star 收藏项目
  • 分享给正在找工作的朋友
  • 提 Issue 反馈真实使用问题
  • 参与功能规划讨论
  • 提交 PR 一起完善功能

你的 Star 会帮助项目获得更多曝光,也会让我更有动力继续维护招聘平台适配、AI 匹配能力和 Web Dashboard。

⭐ Star 项目:
https://github.com/powerycy/BossHunter


贡献

欢迎 PR 和 Issue。请注意:

  • 不接受绕过平台安全机制、规避检测或提高默认发送频率的 PR。
  • 不接受收集、上传或外发用户隐私数据的 PR。
  • 建议先开 Issue 讨论再提交大改动。

License

MIT License

About

Smart job hunting Agent - AI-powered automation from scraping to delivery

Resources

Contributing

Stars

222 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages