Skip to main content

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 detailboss 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bossauto_cli-0.1.0.tar.gz (142.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bossauto_cli-0.1.0-py3-none-any.whl (53.2 kB view details)

Uploaded Python 3

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

Hashes for bossauto_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 74539a0f475abbbea3ee5381beeebcd34a6a90e1a424362ab1a8ae6799101802
MD5 1f8c9e45af243a3d92da2848ca5ea5d9
BLAKE2b-256 7e19353328a2829b0e92d2a30304e6709f808e43ec9063d3278c8c55b87cf07b

See more details on using hashes here.

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

Hashes for bossauto_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7014bc1959430c0d32f875a09961bfb1d06d5579b9e121d9a10f6bbcdd9f4404
MD5 f3e770c63d9a16a705d4a84b4f5f69d6
BLAKE2b-256 9375c07ab1aa864d315d5f677c899081be3064986a3d059680ba331b6b3f27be

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page