Skip to content

slothsheepking/jobclaw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English

       __      __    ________
      / /___  / /_  / ____/ /___ __      __
 __  / / __ \/ __ \/ /   / / __ `/ | /| / /
/ /_/ / /_/ / /_/ / /___/ / /_/ /| |/ |/ /
\____/\____/_.___/\____/_/\__,_/ |__/|__/

JobClaw — AI 帮你投简历,你只管躺平

Python License: MIT PRs Welcome

一句话说清楚: JobClaw 是一个开源的 AI 求职 Agent——自动抓岗位、用大模型帮你匹配、一键批量投递,投完还给你发 Telegram/Discord 消息汇报。
你要做的,就是写好简历,然后等面试通知。


😩 痛点:求职为什么这么累?

每个找过工作的人都懂:

  • Boss直聘刷到手酸,一个个点进去看 JD,看完觉得不太行,退出来继续刷
  • 好不容易看到一个还行的,点"立即沟通",想半天打招呼说啥,发完又没下文
  • 一天下来投了十几个,回复的寥寥无几,时间全花在重复劳动上
  • 有些岗位 HR 三个月没上线了,你还在那认真写打招呼语——投了个寂寞
  • LinkedIn 也要刷,拉勾也要看,多平台来回切,脑子都乱了
  • 投完之后石沉大海,哪个回了、哪个没回,全靠记忆

你的时间应该花在准备面试和提升自己上,不是当人肉投递机器。


🦀 JobClaw 帮你做什么?

步骤 人工操作 JobClaw
🔍 搜岗位 多平台来回切,关键词一个个试 自动抓取 Boss直聘 + LinkedIn
📖 看 JD 一个个点开,人肉阅读判断匹不匹配 LLM 智能匹配,打分 + 给出匹配理由
💬 打招呼 想措辞、复制粘贴、一个个发 自动生成打招呼语,支持模板变量
📤 投简历 点「立即沟通」重复 100 遍 自动批量投递高匹配岗位
🧹 过滤垃圾 全靠直觉,经常投到僵尸岗 HR 活跃度过滤,跳过僵尸岗
📊 跟进状态 Excel?备忘录?全靠脑子? Telegram / Discord 实时通知

简单说:你配好简历和偏好,JobClaw 帮你 24 小时无休投递。


✨ 核心功能

🤖 LLM 智能匹配引擎

不是简单的关键词匹配,而是用大模型理解你的背景和岗位要求,给出匹配分数 + 匹配理由

三种 LLM 认证方式(优先级递减):

优先级 方式 费用 说明
🥇 Claude OAuth 免费 白嫖 Claude Code 订阅额度,零 API 费用!
🥈 Anthropic API Key 按量付费 直接调用 Claude API
🥉 OpenAI API Key 按量付费 调用 GPT 系列模型

💡 省钱秘籍: 如果你有 Claude Code 订阅($20/月),JobClaw 可以直接复用你的 OAuth token 调用 Claude,不额外花一分钱。Token 过期会自动刷新,完全无感。

📮 Boss直聘自动投递(核心卖点)

这不是简单的 API 调用——Boss直聘没有公开投递 API。JobClaw 用 Playwright 模拟真人浏览器操作,完整复现投递流程:

  1. 打开岗位页面 → 点击"立即沟通"
  2. 输入打招呼消息 → 点击发送
  3. 等待随机延迟 → 下一个

防封策略:

  • ⏱️ 随机延迟:每次投递间隔 3-8 秒(可配置),模拟人类节奏
  • 📅 每日上限:默认 100 次/天,避免触发风控
  • 👻 僵尸岗过滤:跳过 HR 超过 N 天未活跃的岗位(默认 7 天)
  • 🔄 防重复投递:JSON 历史记录,已沟通过的自动跳过
  • 🤖 验证码检测:遇到验证码自动暂停,发 Telegram 通知你人工处理

打招呼消息模板:

你好!我对贵公司 $title 岗位很感兴趣,$name,方便聊聊吗?

支持变量:$company(公司名)、$title(岗位名)、$name(HR 名字)

🍪 Cookie 管理

  • jobclaw login — 弹出浏览器,交互式登录,cookie 自动保存到 ~/.jobclaw/cookies/
  • jobclaw login --check — 检查已保存的 cookie 是否还有效
  • 优先级.env 中配置的 cookie > 持久化文件 > 提示你重新 login
  • 支持 Boss直聘 + LinkedIn

🔔 通知

投递完成后自动汇报:

  • Telegram Bot — 配置 TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_ID
  • Discord Webhook — 配置 DISCORD_WEBHOOK_URL

🚀 快速开始

1. 克隆 & 安装

git clone https://github.com/VPC-byte/jobclaw.git
cd jobclaw
pip install -e .

2. 安装浏览器内核

playwright install chromium

3. 登录求职平台

# 登录 Boss直聘(弹出浏览器,手动扫码/登录)
jobclaw login --platform boss

# 登录 LinkedIn
jobclaw login --platform linkedin

# 一次性登录所有平台
jobclaw login --platform all

# 检查 cookie 是否有效
jobclaw login --platform boss --check

4. 配置环境变量

cp .env.example .env

编辑 .env,根据需要填写(详见下方配置说明)。

5. 填写求职画像

cp profiles/example.yaml profiles/me.yaml

编辑 profiles/me.yaml——你的技能、期望薪资、偏好城市等。

6. 开跑!

# 完整流程:抓取 → 匹配 → 投递 → 通知
jobclaw run --profile profiles/me.yaml --query "Python 工程师"

跑起来之后去喝杯咖啡,等 Telegram 通知就行 ☕


🔧 CLI 命令全集

jobclaw login — 登录平台

# 登录 Boss直聘
jobclaw login --platform boss

# 登录 LinkedIn
jobclaw login --platform linkedin

# 登录所有支持的平台
jobclaw login --platform all

# 设置登录超时(分钟)
jobclaw login --platform boss --timeout 5

# 检查 cookie 有效性(不弹浏览器)
jobclaw login --platform boss --check

jobclaw scrape — 只抓取,不投递

# 抓取 Boss直聘上的岗位
jobclaw scrape --platform boss --query "后端工程师" --limit 20

# 抓取 LinkedIn
jobclaw scrape --platform linkedin --query "AI Engineer" --limit 10

# 全平台抓取
jobclaw scrape --platform all --query "Python 开发" --limit 30

💡 先用 scrape 看看抓到的岗位质量,再决定要不要跑完整流程。

jobclaw run — 完整流程

# 基础用法
jobclaw run --profile profiles/me.yaml --query "AI 工程师"

# 指定平台 + 限制数量
jobclaw run --platform boss --profile profiles/me.yaml --query "大模型工程师" --limit 20

# 全平台
jobclaw run --platform all --profile profiles/me.yaml --query "后端开发" --limit 50

jobclaw validate-profile — 校验画像文件

jobclaw validate-profile --profile profiles/me.yaml

确认你的 YAML 格式没问题再跑,避免跑到一半报错。


⚙️ 配置说明

.env 环境变量

变量 必填 默认值 说明
核心运行时
JOBCLAW_ENV development 运行环境
JOBCLAW_LOG_LEVEL INFO 日志级别
JOBCLAW_HEADLESS true 浏览器是否无头模式(调试时设 false 看操作过程)
JOBCLAW_MAX_JOBS 30 单次最大处理岗位数
JOBCLAW_REQUEST_TIMEOUT 30 网络请求超时(秒)
LLM 配置
CLAUDE_CREDENTIALS_PATH 自动检测 Claude OAuth 凭证路径(默认 ~/.claude/.credentials.json
CLAUDE_MODEL claude-sonnet-4-6 Claude OAuth 使用的模型
ANTHROPIC_API_KEY - Anthropic API Key
OPENAI_API_KEY - OpenAI API Key
JOBCLAW_LLM_MODEL gpt-4o-mini OpenAI 使用的模型
平台 Cookie
BOSS_COOKIE - Boss直聘 cookie(优先于持久化文件)
LINKEDIN_COOKIE - LinkedIn cookie
Boss直聘专属
BOSS_GREETING - 打招呼模板,支持 $company $title $name 变量
BOSS_APPLY_DELAY_MIN 3.0 投递间隔最小秒数
BOSS_APPLY_DELAY_MAX 8.0 投递间隔最大秒数
BOSS_DAILY_LIMIT 100 每日投递上限(1-150)
BOSS_SKIP_INACTIVE_DAYS 7 跳过 HR 多少天未活跃的岗位
通知
TELEGRAM_BOT_TOKEN - Telegram Bot Token
TELEGRAM_CHAT_ID - Telegram Chat ID
DISCORD_WEBHOOK_URL - Discord Webhook URL
网络
HTTP_PROXY - HTTP 代理
HTTPS_PROXY - HTTPS 代理

🆓 Claude OAuth 零成本方案: 安装 Claude Code CLI(npm i -g @anthropic-ai/claude-code)并登录你的订阅账号,JobClaw 会自动检测 ~/.claude/.credentials.json 中的 OAuth token,无需任何 API Key,零额外费用。Token 过期前会自动刷新。

profiles/me.yaml 求职画像

name: "张三"
email: "zhangsan@example.com"
years_experience: 3

summary: >
  全栈开发,擅长 AI/ML 应用、云基础设施和 DevOps。
  目前在找 AI Agent 相关的岗位。

skills:
  - Python
  - TypeScript
  - LLM/Agent 开发
  - Kubernetes
  - Docker
  - AWS/GCP

desired_roles:
  - AI Agent 开发工程师
  - 大模型应用工程师
  - 后端开发(AI 方向)

preferences:
  locations:
    - "深圳"
    - "remote"
  salary_min: 25000
  salary_max: 50000
  work_schedule: "双休"
  industries:
    - AI
    - Web3
    - Cloud
  deal_breakers:
    - "996"
    - "大小周"
    - "无社保"

🏗️ 架构

+---------------------+
|   Profile Loader    |  你的简历 / 求职画像 (YAML)
+----------+----------+
           |
           v
+---------------------+      +----------------------+
|   Scraper Layer     |----->| Unified Job Objects  |
| Boss直聘 / LinkedIn |      | (Pydantic 标准化)     |
+----------+----------+      +----------+-----------+
           |                            |
           v                            v
+---------------------+      +----------------------+
|   LLM Matcher       |----->| 匹配分数 + 匹配理由   |
| Claude OAuth/API/   |      | (SSE streaming)      |
| OpenAI              |      +----------+-----------+
+----------+----------+                 |
           |                            v
+---------------------+      +----------------------+
|  Auto Applier       |----->| 投递状态              |
| Boss直聘 / LinkedIn |      | 已投 / 失败 / 跳过    |
+----------+----------+      +----------+-----------+
           |                            |
           +------------+---------------+
                        v
              +--------------------+
              | Notification Layer |
              | Telegram / Discord |
              +--------------------+

📂 项目结构

jobclaw/
  applier/                 # 自动投递
    base.py                #   投递器基类
    boss.py                #   Boss直聘投递(打招呼 + 防封策略)
    linkedin.py            #   LinkedIn Easy Apply
    captcha.py             #   验证码检测 + 通知
    history.py             #   投递历史记录(防重复)
  auth/                    # 登录认证
    browser_login.py       #   Playwright 交互式浏览器登录
    cookie_manager.py      #   Cookie 持久化管理
    claude_auth.py         #   Claude OAuth 凭证读取
    token_refresh.py       #   OAuth token 自动刷新
  matcher/                 # LLM 匹配引擎
    llm_matcher.py         #   多 provider 匹配打分
  models/                  # Claude API 客户端
    claude_api.py          #   Claude API 封装
    streaming.py           #   SSE streaming + retry/backoff
  notifier/                # 通知
    telegram.py            #   Telegram Bot 通知
    discord.py             #   Discord Webhook 通知
  profile/                 # 画像加载
    loader.py              #   YAML 画像解析
  scraper/                 # 爬虫
    base.py                #   爬虫基类
    boss.py                #   Boss直聘抓取
    linkedin.py            #   LinkedIn 抓取
  cli.py                   # CLI 入口(Click)
  config.py                # 配置管理(pydantic-settings)
  domain.py                # 数据模型(Pydantic)
profiles/
  example.yaml             # 画像模板
docs/
  architecture.md          # 架构设计文档
tests/
  test_models.py           # 测试

📋 支持平台

平台 抓取 投递 说明
Boss直聘 (zhipin.com) Playwright 模拟打招呼
LinkedIn Easy Apply 自动投递
拉勾 (Lagou) 🔜 🔜 适配器开发中
前程无忧 (51Job) 🔜 🔜 适配器开发中

🤝 参与贡献

欢迎 PR!特别欢迎:

  • 🔌 新平台适配器(拉勾、前程无忧、猎聘……)
  • 🧠 更好的匹配策略(prompt 调优、多维度评分)
  • 🔒 稳定性改进(反爬对抗、断点续跑)
  • 📢 新通知渠道(微信、飞书、钉钉)
pip install -e .[dev]
pytest -q

提 PR 前请跑测试、加类型标注、更新相关文档。

⚠️ 合规声明

自动化操作求职平台可能受到平台条款和当地法律的限制。请在合法合规、个人授权范围内使用本项目。作者不对滥用行为承担责任。

📜 许可证

MIT License — 详见 LICENSE

About

🦞 AI-powered job hunting agent — scrapes Boss直聘/LinkedIn, matches your profile, auto-applies. Built with OpenClaw.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages