A CLI for Boss Zhipin (BOSS直聘) — search jobs, chat with bosses from the terminal
Project description
bossauto-cli
English | 中文
bossauto-cli 是一个面向 BOSS 直聘的命令行工具,支持职位搜索、推荐职位、投递记录、沟通列表、职位详情导出,以及招聘方候选人管理等工作流。
说明:本项目通过网页登录态和 BOSS 直聘 Web 接口工作。请只在你拥有合法账号权限、并符合平台规则的场景下使用。
功能特性
- 认证:自动提取浏览器 Cookie,支持二维码登录和
--cookie-source指定浏览器。 - 职位搜索:支持关键词、城市、薪资、经验、学历、行业、公司规模、融资阶段、职位类型筛选。
- 推荐职位:查看基于当前账号状态的推荐职位。
- 职位详情:通过
boss detail或boss show查看详情。 - 数据导出:支持 CSV 和 JSON 导出。
- 个人中心:查看个人信息、投递记录、面试邀请、浏览历史和沟通列表。
- 打招呼:支持单个和批量打招呼,批量操作带基础延迟。
- 招聘方模式:查看招聘职位、候选人、聊天记录,导出候选人数据,并支持部分候选人操作。
- Agent 友好:
--json/--yaml输出统一结构化 envelope,Rich 展示输出到 stderr。
安装
从 PyPI 安装:
uv tool install bossauto-cli
或:
pipx install bossauto-cli
可选 YAML 输出支持:
pip install "bossauto-cli[yaml]"
从源码开发安装:
cd cli/boss-cli-main
python -m pip install -e .
开发依赖:
python -m pip install -e ".[dev]"
常用命令
认证
boss login
boss login --cookie-source chrome
boss login --qrcode
boss status
boss logout
职位搜索
boss search "golang"
boss search "Python" --city 杭州
boss search "Java" --salary 20-30K
boss search "前端" --exp 3-5年
boss search "AI" --degree 硕士
boss search "后端" --industry 互联网
boss search "产品" --scale 1000-9999人
boss search "数据" --stage 已上市
boss search "运维" --job-type 全职
boss search "后端" --city 深圳 -p 2
详情与导出
boss show 3
boss detail <securityId>
boss detail <securityId> --json
boss export "Python" -n 50 -o jobs.csv
boss export "golang" --format json -o jobs.json
推荐与个人中心
boss recommend
boss recommend -p 2 --json
boss me
boss me --json
boss applied
boss interviews
boss history
boss chat
打招呼
boss greet <securityId>
boss greet <securityId> --json
boss batch-greet "golang" --city 杭州 -n 5
boss batch-greet "Python" --salary 20-30K --dry-run
工具命令
boss cities
boss --version
boss -v search "Python"
招聘方模式
搜索与推荐
boss recruiter jobs
boss recruiter search "golang" --city 深圳 --exp 3-5年
boss recruiter recommend
boss recruiter recommend --job <encryptJobId>
boss recruiter recommend -p 2
候选人沟通
boss recruiter greet <encryptGeekId>
boss recruiter batch-view "Python" --city 杭州 -n 10
boss recruiter inbox
boss recruiter inbox --job <encryptJobId> -p 2
boss recruiter reply <friendId> "感谢您的关注,方便电话聊聊吗?"
boss recruiter chat <friendId>
沟通页操作
boss recruiter request-resume <friendId> --yes
boss recruiter exchange-phone <friendId> --yes
boss recruiter exchange-wechat <friendId> --yes
boss recruiter invite-interview <encryptGeekId> --job <encryptJobId>
boss recruiter mark-unsuitable <encryptGeekId> --job <encryptJobId>
简历、职位与导出
boss recruiter resume <encryptGeekId>
boss recruiter resume-download <encryptGeekId> --job <encryptJobId>
boss recruiter geek <encryptGeekId> --job-id <jobId>
boss recruiter job-close <encryptJobId> --yes
boss recruiter job-reopen <encryptJobId> --yes
boss recruiter labels
boss recruiter export -o candidates.csv
boss recruiter export --format json -o candidates.json
结构化输出
带 --json 或 --yaml 的命令会输出统一 envelope:
{
"ok": true,
"schema_version": "1",
"data": {}
}
--json:输出 JSON。--yaml:输出 YAML,需要安装bossauto-cli[yaml]。- 非 TTY stdout:自动输出结构化 YAML,便于 Agent 或脚本消费。
- Rich 人类可读输出写入 stderr,避免污染管道输出。
完整结构说明见 SCHEMA.md。
认证机制
boss login 会优先尝试从本机浏览器提取 BOSS 直聘 Cookie,失败后回退到二维码登录。也可以使用:
boss login --cookie-source chrome
boss login --qrcode
凭证默认保存到:
~/.config/boss-cli/credential.json
请不要把该文件提交到代码仓库。.gitignore 已忽略根目录下的 credential.json,但仍应避免复制或泄露真实 Cookie。
限速与稳定性
- 请求之间带随机延迟。
- 遇到限流会进行冷却和重试。
- 会合并响应中的
Set-Cookie。 - 检测 HTML 登录页重定向,避免把登录页当作 JSON 解析。
boss -v可输出请求状态、耗时等调试信息。
项目结构
boss_cli/
├── __init__.py
├── cli.py
├── client.py
├── auth.py
├── constants.py
├── exceptions.py
├── index_cache.py
└── commands/
├── _common.py
├── auth.py
├── search.py
├── personal.py
├── social.py
└── recruiter.py
开发
python -m pip install -e ".[dev]"
python -m pytest tests/ -v -m "not smoke"
python -m ruff check .
Live smoke 测试会访问真实 BOSS 直聘接口,并可能使用本地 Cookie。只有在明确需要时再运行:
python -m pytest tests/ -v -m smoke
发布
本地构建:
python -m build
python -m twine check dist/*
上传到 PyPI:
python -m twine upload dist/*
第一次上传成功后,PyPI 会自动创建 bossauto-cli 项目页面。
常见问题
ModuleNotFoundError: No module named 'qrcode'
说明当前环境还没有安装项目依赖。执行:
python -m pip install -e .
boss status 显示未登录
本地可能存在 Cookie,但网页登录态已经失效。执行:
boss logout
boss login
环境异常 (__zp_stoken__ 已过期)
Cookie 已过期或缺少浏览器 JS 生成的安全 Cookie。建议在浏览器中重新登录 BOSS 直聘后,再运行:
boss login
搜索无结果
检查关键词和城市筛选条件。可以用:
boss cities
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bossauto_cli-0.1.0.tar.gz.
File metadata
- Download URL: bossauto_cli-0.1.0.tar.gz
- Upload date:
- Size: 142.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74539a0f475abbbea3ee5381beeebcd34a6a90e1a424362ab1a8ae6799101802
|
|
| MD5 |
1f8c9e45af243a3d92da2848ca5ea5d9
|
|
| BLAKE2b-256 |
7e19353328a2829b0e92d2a30304e6709f808e43ec9063d3278c8c55b87cf07b
|
File details
Details for the file bossauto_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: bossauto_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 53.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7014bc1959430c0d32f875a09961bfb1d06d5579b9e121d9a10f6bbcdd9f4404
|
|
| MD5 |
f3e770c63d9a16a705d4a84b4f5f69d6
|
|
| BLAKE2b-256 |
9375c07ab1aa864d315d5f677c899081be3064986a3d059680ba331b6b3f27be
|