About
Read-only multi-platform job search CLI and MCP server
README
crates.io Rust 2024 License: MIT Scope: BOSS 直聘 Interface: CLI + MCP
免费开源的 Rust 2024 求职辅助工具,专注 BOSS 直聘。BossKit 在终端或 MCP 客户端中提供职位搜索、详情读取、确定性的本地简历筛选与人工复核工作流。
设计原则:职位决策留给你。BossKit 不会自动投递简历、批量打招呼、自动回复,或绕过验证码、短信及风控。
| 你可以做什么 | BossKit 如何约束 |
|---|---|
| 搜索、缓存并查看 BOSS 职位 | 纯命令行;不启动浏览器、不读取浏览器资料 |
| 以本地简历和规则筛选职位 | 结果稳定可复现,只生成 manual_review / dry_run 计划 |
| 使用 CLI 或 MCP 接入工作流 | MCP 不暴露登录、账户、在线简历或凭据入口 |
| 对单个缓存职位打招呼或发送消息 | 必须逐次显式 --yes;从不发送简历 |
快速开始
cargo install bosskit
boss --help
boss search rust --city 深圳 --limit 20
boss ls --limit 10
boss mcp
普通命令默认向 stdout 输出紧凑 Markdown;明确加全局 --json 才输出 JSON。--help 和 --version 输出文本。数据目录依次使用 BOSS_DATA_DIR、系统本地数据目录的 bosskit、当前目录的 .boss。
登录与安全
boss account use work --yes
boss --account work login --role geek
boss --account lty login --role recruiter --cookie-stdin
boss --account work status
boss logout --yes
登录只支持 BOSS 直聘 Cookie。Cookie 不进入命令行参数、shell 历史或 JSON 输出;不带 -c/--cookie-stdin 时,login 从交互终端隐藏读取一个新 Cookie,带 -c 时只从非终端标准输入读取一个新 Cookie。登录不会把已保存 Cookie 或 BOSS_ZHIPIN_COOKIE 当作本次输入;新 Cookie 会通过指定的 geek 或 recruiter 入口验证,成功后才原子替换旧会话,失败时保留旧会话。会话保存于 0700 私有目录和 0600 私有文件。旧版其它平台会话在读取时被安全忽略,且不会阻塞启动或被重新写出。
login 使用纯命令行 HTTPS 验证 BOSS 会话;遇到需要本地 V8 挑战计算的响应时,会在本机完成计算后再验证。整个过程不启动浏览器、不读取浏览器资料,也不输出 Cookie。
如果保存的 Cookie 不完整、失效或触发 BOSS API code 7,重新执行 boss --account <别名> login --role geek|recruiter 并提供一个新 Cookie。BossKit 不提供手机号、短信、浏览器修复或验证码绕过登录。
boss status 始终是离线检查:除环境变量和会话是否存在外,还会报告 wt2、__zp_stoken__ 及辅助 Cookie 的存在状态,并给出下一步建议;不会输出 Cookie 值,也不会发起平台请求。
每个本地账户保存安全元数据角色:旧账户默认 geek;可用 boss login --account lty --role recruiter -c 保存招聘者会话。招聘者命令必须显式带 --account <招聘者账户>,避免误用默认求职者身份。招聘者 CLI 提供有界的 boss --account lty recruiter replies 状态列表、boss --account lty recruiter inbox --limit 20 --page 1 会话预览,也支持一次性原生扫描和筛选:boss --account lty recruiter inbox --all --pending --job 'AI应用提效官';--all 最多扫描 3 页,且总记录数仍受 --limit 限制。需要快速查看候选人姓名、UID 和最新消息时,直接加 --brief:boss --account lty recruiter inbox --job 'AI应用提效官' --page 3 --brief,无需额外编写 jq;需要批量读取多个完整在线简历时,使用 boss --account lty recruiter resumes <UID>... --brief,直接返回 uid/name/expected_positions/summary/projects;默认仍输出 Markdown,明确加 --json 才输出 JSON。此外可用 boss --account lty recruiter resume <UID> 读取一个候选人的完整在线简历详情(只读、限量、脱敏、不落盘)。预览只保留最近一条文本并脱敏联系方式;返回的会话 UID 仅用于人工确认后的精确回复。招聘方主动打招呼必须先按岗位读取推荐卡:boss --account lty recruiter candidates '视频剪辑' --job-id <加密职位ID> --limit 5。只有 BOSS 明确返回 haveChatted: false 的新会话卡才会输出 greeting;缺失、格式错误或已有会话的状态都会跳过。greeting 同时携带 encrypt_geek_id、encrypt_job_id、expect_id、security_id 和 lid;使用同一张新鲜卡的原值执行 boss --account lty recruiter greet --encrypt-geek-id <ID> --security-id <ID> --encrypt-job-id <ID> --expect-id <ID> --lid <ID> --message '...' --yes。命令会在写入前重新读取同一岗位的推荐列表,并且只有同一候选人仍为 haveChatted: false、所有不透明字段完全匹配时才调用一次 BOSS 原生开始聊天动作,不会重复 MQTT 发送;api_accepted 仅表示平台接口接受,未单独核验历史中的消息。已有会话的后续文本使用 boss --account lty recruiter reply <UID> --message '...' --yes。两种写入都严格限定一次一人,不自动发 Offer、不批量群发。
候选人初筛使用严格有界的、岗位限定的只读入口:boss --account lty recruiter candidates '视频剪辑' --job-id <加密职位ID> --city 101230100 --limit 5 只查第 1 页,最多返回 5 人;本科及以上为本地硬筛,95-00 年仅作软排序,剪辑作品、项目经历和学习成长信号用于加分,已有会话的候选人不会作为主动招呼目标。不按性别筛选,不读取联系方式,不自动发送消息;人工复核首选时可额外加 --detail 读取一份结构化简历摘要。
命令默认输出紧凑 Markdown;需要脚本解析时显式加全局 --json,例如 boss --json --account lty recruiter resume <UID>。
本地筛选与人工复核
boss preset add rust-backend rust --city 深圳
boss watch add rust-watch rust --city 深圳
boss campaign policy add rust --include title:rust
boss campaign screen --resume local --policy rust
boss campaign plan ls
搜索过滤、预设、监视、短名单、简历、统计、导出和 campaign 均以本地数据为边界。campaign screen 只生成 manual_review / dry_run 计划;它不是投递能力。筛选只使用明确填写的本地简历字段和已缓存职位字段,结果按稳定规则排序。
仓库内置两份可复用的 Agent Skills:简历筛选 与 申请流程。后者同样以人工批准为门槛,不会代替你进行平台投递。
明确确认的单目标消息
boss chat greet <本地职位ID> --yes
boss chat send <本地职位ID> --message "你好,想进一步了解这个职位" --yes
boss --json chat inbox # 只检查最近 3 个缓存职位的既有会话
boss --json chat inbox <本地职位ID> # 精确检查指定会话(最多 5 个)
# 需要本机已运行 ChromeDriver;调用 BOSS 页面原生“换微信”按钮
boss chat exchange-wechat <本地职位ID> --yes
这些操作都只作用于缓存职位;不带 ID 的 chat inbox 只扫描最近 3 个职位,不分页、不批量拉取,指定 ID 时最多查询 5 个精确会话。chat send 还要求存在同一职位的既有会话,并只接受纯文本,不接受真实 URL、结构化 Markdown 链接或富消息引用;普通文本中彼此无关的括号不会被误判。发送结果只由精确发送方、目标和文本的权威历史确认:already_sent、message_verified、rejected 和 unverified 明确区分,PUBACK 本身不算成功。它们不会创建批量任务、自动回复或提交简历。
chat exchange-wechat 只执行平台原生微信交换动作,要求本机 ChromeDriver(默认 http://127.0.0.1:9515),不发送手机号、文本或简历,也不输出微信号。
若 BOSS 将新浏览器重定向到验证页,可将 Chrome 以本地 DevTools 端口启动后设置 BOSS_CHROMEDRIVER_DEBUGGER_ADDRESS=127.0.0.1:<端口>,让 CLI 附加到已登录页面;该地址只允许本机。
MCP
boss mcp
MCP 使用 2025-03-26 stdio JSON-RPC。它提供 BOSS 职位搜索、缓存、筛选和本地工作流工具;不提供账户选择、登录、登出、招聘者、在线简历、聊天或凭据入口。
配置
boss config ls
boss config set page_size 30
boss config reset page_size
支持的安全配置键只有 request_timeout_secs 和 page_size。旧版 platform、operating_mode 与 log_level 配置会被安全忽略,并在下次写入配置时移除。
能力边界
- 仅支持 BOSS 直聘;不宣称多平台支持。
- 本地简历筛选是确定性的,输出用于人工复核,而非平台自动投递。
- 不内置通用模型调用、任意 Webhook 通知或本地关键词回复规则;这些能力与 BOSS 直聘核心工作流无关。
- 登录验证在纯命令行 HTTPS 与本机挑战计算中完成;不会启动或依赖浏览器。
- BossKit 是免费的开源软件,采用 MIT License。
完整的命令与能力映射见 docs/PARITY.md。
Installing Bosskit
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/LIghtJUNction/BossKitFAQ
Is Bosskit MCP free?
Yes, Bosskit MCP is free — one-click install via Unyly at no cost.
Does Bosskit need an API key?
No, Bosskit runs without API keys or environment variables.
Is Bosskit hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Bosskit in Claude Desktop, Claude Code or Cursor?
Open Bosskit on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare Bosskit with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
