Skip to content

HungYann/harness-job

Repository files navigation

Harness Job

某直聘智能求职 Agent — 从采集到投递的全自动化流水线

🌐 官网:harnessjob.com

Harness Job 是一个基于 Claude Code Skill 架构的智能求职助手,通过 CDP 浏览器自动化 + AI 评分 + 人工确认的三层策略,帮助开发者高效求职。


免责声明

本项目仅供学习和个人求职效率提升使用。

  • 本项目与 某直聘(某科技)无任何关联
  • 使用自动化工具操作招聘平台可能违反其用户协议,由此产生的账号封禁、法律纠纷等后果由使用者自行承担
  • 作者不对任何直接或间接损失负责
  • 请合理设置频率限制,避免对平台造成负担
  • 建议仅在求职期间短期使用,投递完成后停止运行

核心能力

能力 说明
智能采集 基于关键词+城市自动翻页采集岗位,内置去重
AI 两阶段评分 快速预筛(关键词匹配) → 深度评分(AI 分析 JD)
定制招呼语 AI 根据岗位 JD + 个人简历生成个性化开场白
人工确认 投递前必须经过确认,支持逐个/批量审核
反检测发送 模拟浏览、随机间隔、时间窗口、休息日策略
HR 回复监听 自动检测 HR 回复,触发定制简历生成与发送
Web Dashboard 可视化看板,实时查看漏斗数据与岗位状态
自动跟进 48小时未回复自动发送跟进消息(跳过周末)

流程架构

采集(scrape) → 预筛(prefilter) → AI评分(score) → 招呼语(greet)
    → 人工确认(confirm) → 发送(send) → [监听HR回复] → 简历投递

每一步都有人工干预点:确认环节是强制的,不存在完全无人值守的投递。


前置条件

依赖 版本 用途
Python 3.9+ 核心运行时
Chrome 最新稳定版 需开启远程调试
AI API Key Anthropic / DeepSeek / OpenAI AI 评分 / 招呼语 / 简历生成

快速开始

第一步 — 安装依赖

方式一:pip 直接安装(无需 clone)

pip3 install git+https://github.com/HungYann/harness-job.git

方式二:clone 后本地安装(便于修改源码)

git clone https://github.com/HungYann/harness-job.git
cd harness-job
pip3 install -e .

第二步 — 设置 API Key

支持三种 AI 服务商,任选其一:

# Anthropic (Claude)
export ANTHROPIC_API_KEY="sk-ant-xxxxxx"

# DeepSeek(国内访问更稳定)
export DEEPSEEK_API_KEY="sk-xxxxxx"

# OpenAI
export OPENAI_API_KEY="sk-xxxxxx"

也可以在 Web 配置面板的「AI 设置」中直接填写,无需设置环境变量。

第三步 — 开启 Chrome 远程调试

方式一(推荐):在 Chrome 地址栏输入以下地址,勾选 "Allow remote debugging"

chrome://inspect/#remote-debugging

方式二:命令行启动(推荐,可控制配置文件隔离)

# macOS(必须加 --remote-allow-origins=* 否则 WebSocket 会被拒绝)
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
  --remote-debugging-port=9222 \
  '--remote-allow-origins=*' \
  --user-data-dir=/tmp/chrome-debug \
  --no-first-run

# Windows
chrome.exe --remote-debugging-port=9222 --remote-allow-origins=* --user-data-dir=%TEMP%\chrome-debug

完成后在 Chrome 中打开 www.zhipin.com 并登录账号。

第四步 — 启动 Web 配置面板

python3 scripts/web.py &

浏览器自动打开 http://127.0.0.1:8686 ,在面板中完成以下配置:

优先级 配置项 说明
⭐⭐⭐ 上传简历 左侧「简历」区域,支持 .pdf.md 格式
⭐⭐⭐ 搜索关键词 如:Python开发后端工程师
⭐⭐⭐ 目标城市 选择投递城市
⭐⭐ 期望薪资 最低 / 最高薪资(K)
⭐⭐ 一票否决词 如:外包996外派
AI 阈值 / 频率 可保持默认,后续按需调整

第五步 — 检测 Chrome 连接

python3 scripts/connect.py

预期输出:

✓ Chrome 已连接: Chrome/xxx
✓ 发现某直聘页面: xxx

第六步 — 开始求职

python3 scripts/run.py

程序自动依次执行:Chrome 检测 → 采集岗位 → AI 评分筛选 → 生成招呼语 → 人工确认 → 自动发送

在"人工确认"环节程序会暂停,等待你操作:

按键 操作
a 全部确认投递
s 逐个审核确认
q 取消,不发送

分步操作

不想一键运行?可以拆分为独立步骤执行:

# 1. 采集岗位
python3 scripts/scrape.py -k "后端工程师" -l 50

# 2. AI 两阶段评分筛选
python3 scripts/score.py

# 3. 生成个性化招呼语
python3 scripts/greet.py

# 4. 人工确认投递清单(必须步骤,不可跳过)
python3 scripts/confirm.py

# 5. 自动发送招呼语
python3 scripts/send.py

监听 HR 回复

发送招呼语后,启动监听模式等待 HR 回复。收到回复后自动处理:生成定制简历、发送简历、自动回复问题。

# 持续监听(默认每 30 分钟检查一次)
python3 scripts/monitor.py

# 只检查一次
python3 scripts/monitor.py --once

# 自定义间隔(分钟)
python3 scripts/monitor.py --interval 15

查看状态与数据

# 简要统计(各状态数量 + 回复率)
python3 scripts/status.py

# 完整仪表盘(漏斗 + 趋势 + Top 公司 + 近期动态)
python3 scripts/status.py --full

# Web 可视化看板
python3 scripts/web.py

配置说明

配置文件位于项目根目录 config.yaml,可通过 Web 面板可视化编辑,也可手动修改:

cp config.example.yaml config.yaml

核心配置项:

配置段 关键字段 说明
profile resume_path, salary_min/max, deal_breakers 个人信息与排除条件
search keywords, cities, max_pages 搜索策略
scoring threshold, prefilter_threshold 评分阈值(默认 71 分通过)
throttle daily_limit, interval_min/max, send_windows 反检测策略
ai provider, model, api_key AI 服务配置
monitor interval, max_resume_sends_per_cycle 监听设置
follow_up enabled, interval_hours, skip_weekends 跟进策略

支持通过环境变量覆盖路径:

export BOSSHUNTER_CONFIG="/path/to/config.yaml"   # 自定义配置文件路径
export BOSSHUNTER_DB="/path/to/bosshunter.db"     # 自定义数据库路径

作为 Claude Code Skill 使用

Harness Job 是标准的 Claude Code Skill,在 Claude Code 中打开本项目目录,直接对话即可控制全流程:

"帮我开始找工作"
"采集 Python 开发岗位"
"看看有没有 HR 回复"
"打开看板"
# 通过 marketplace 安装
claude plugin marketplace add https://harnessjob.com

# 或手动安装
claude plugin install harness-job --scope user

项目结构

BossHunter/
├── SKILL.md              # Skill 行为定义(Claude Code 加载)
├── CLAUDE.md             # AI Agent 行为规范
├── README.md             # 本文件
├── LICENSE               # MIT License
├── config.example.yaml   # 配置模板(脱敏)
├── pyproject.toml        # Python 包定义
├── resume.example.md     # 简历模板示例
├── scripts/              # 独立入口脚本(无需安装直接运行)
│   ├── _bootstrap.py     # sys.path 自动配置
│   ├── web.py            # 启动 Web 面板
│   ├── connect.py        # 检测 Chrome 连接
│   ├── run.py            # 一键完整流程
│   ├── scrape.py         # 采集岗位
│   ├── score.py          # AI 评分
│   ├── greet.py          # 生成招呼语
│   ├── confirm.py        # 人工确认
│   ├── send.py           # 发送招呼语
│   ├── monitor.py        # 监听 HR 回复
│   └── status.py         # 查看状态
└── src/
    └── bosshunter/       # 核心源码
        ├── main.py       # CLI 入口
        ├── config.py     # 配置加载
        ├── db.py         # SQLite 数据层
        ├── pipeline.py   # 流程编排
        ├── ai/           # AI 评分 + 招呼语 + 简历生成
        ├── browser/      # CDP 浏览器连接
        ├── scraper/      # 岗位采集
        ├── executor/     # 发送 + 监听
        ├── tracker/      # 状态追踪
        ├── throttle.py   # 反检测策略
        ├── ui/           # 终端交互 UI
        └── web/          # Web Dashboard

反检测策略

本项目内置多层反检测机制:

  1. 时间窗口 — 仅在工作时间发送(默认 09:00-16:00)
  2. 随机间隔 — 每次操作间隔 60-180 秒随机
  3. 每日上限 — 默认每天最多 30 条
  4. 模拟浏览 — 发送前先浏览岗位页 15-30 秒
  5. 随机休息 — 5% 概率跳过当天(模拟真人行为)
  6. 渐进退避 — 连续错误时自动增加间隔
  7. 人工确认 — 所有投递必须经过人工审核

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


常见问题

现象 解决方案
ModuleNotFoundError pip3 install -e .
Chrome 连接失败 确认已开启远程调试:chrome://inspect/#remote-debugging
WebSocket 403 Forbidden 启动 Chrome 时必须加 '--remote-allow-origins=*' 参数
采集到 0 个岗位 检查 Chrome 是否以 --remote-allow-origins=* 启动,重启 Chrome
未发现某直聘页面 在调试 Chrome 中打开 www.zhipin.com 并登录
没有待确认的岗位 先依次执行 scrape → score → greet
评分全为 0 / 全被过滤 检查 API Key 是否设置;可适当降低 prefilter_threshold(默认 40)
Web 面板打不开 pip3 install bottle pyyaml
保存配置后 API Key 丢失 已修复(v1.1+);如遇旧版本请重新填写 Key 后保存
发送被跳过(时间窗口) 当前时间不在 send_windows 内,默认 09:00-16:00
发送被跳过(随机休息) 正常现象(5% 概率),使用 --force 参数跳过

相关资源与链接

AI 服务

服务 文档 控制台
Anthropic Claude docs.anthropic.com console.anthropic.com
DeepSeek platform.deepseek.com/docs platform.deepseek.com
OpenAI platform.openai.com/docs platform.openai.com

技术文档

技术 链接
Chrome DevTools Protocol chromedevtools.github.io/devtools-protocol
pdfplumber(PDF 解析) github.com/jsvine/pdfplumber
websocket-client websocket-client.readthedocs.io
Bottle(Web 框架) bottlepy.org

项目链接

链接
🌐 官网 harnessjob.com
📦 GitHub github.com/HungYann/harness-job
🐛 Issues github.com/HungYann/harness-job/issues
💬 Discussions github.com/HungYann/harness-job/discussions

贡献

欢迎 PR 和 Issue。请注意:

  • 不接受任何绕过平台安全检测的 PR
  • 不接受提高默认频率的 PR
  • 建议先开 Issue 讨论再提交大改动

License

MIT License


官网:harnessjob.com · 本项目与 某直聘、某科技无任何关联。所有商标归其各自所有者所有。

About

🌐 官网:harnessjob.com Harness Job 是一个基于 Claude Code Skill 架构的智能求职助手,通过 CDP 浏览器自动化 + AI 评分 + 人工确认的三层策略,帮助开发者高效求职。

Topics

Resources

License

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages