最近我看到一个挺有意思的开源项目:boss-agent-cli。
它不是传统意义上的"命令行小工具",而是更偏向 给 AI Agent 使用的招聘求职工具层:把 BOSS 直聘里的搜索、查看详情、沟通、跟进、招聘者操作等流程,包装成一组可被 Agent 通过 subprocess / MCP / Python SDK 调用的 CLI 能力。
项目地址:
先说明边界:这是一个第三方开源项目,不是 BOSS 直聘官方项目。使用任何招聘平台自动化工具,都应该遵守平台用户协议、隐私政策、职位发布规则及相关法律法规。本文只做开源项目推荐与技术视角介绍,不鼓励高频抓取、批量骚扰、绕过平台限制,也不涉及任何真实候选人、招聘者、聊天记录、手机号、微信号、简历等隐私数据。
为什么这个项目值得关注?
如果你平时用 AI Agent 做自动化,会发现一个很现实的问题:
很多网站流程对人类是"点一点就行",但对 Agent 并不友好。
比如求职场景里,一个 Agent 想完成完整闭环,通常需要知道:
- 当前是否登录;
- 可以搜索哪些职位;
- 搜索结果里的职位 ID、安全 ID、公司、薪资、福利如何解析;
- 某条职位详情怎么查;
- 后续怎么打招呼、投递、跟进;
- 命令失败时下一步该做什么。
如果只有网页 UI,Agent 很容易卡在页面结构、登录态、弹窗和非结构化文本里。
boss-agent-cli 的核心思路是:把招聘求职流程变成 Agent 更容易理解的 JSON 工具协议。
例如 README 里给出的典型流程:
bash
boss doctor
boss login
boss status
boss search "Golang" --city 广州 --welfare "双休,五险一金"
boss detail <security_id>
boss greet <security_id> <job_id>
boss pipeline
boss digest
所有命令都遵守统一输出约定:stdout 只输出 JSON,日志和进度信息走 stderr。这对 Agent 很关键,因为它不需要猜终端文本含义,只要解析结构化信封即可。
一个典型返回结构类似:
json
{
"ok": true,
"schema_version": "1.0",
"command": "search",
"data": [],
"pagination": {"page": 1, "has_more": true},
"error": null,
"hints": {"next_actions": ["boss detail <security_id>"]}
}
这类设计对人类也有用,但真正的受益者是 Agent:它可以根据 ok、error.code、recovery_action、hints.next_actions 自己规划下一步。
核心能力一:schema 自描述
这个项目很强调 boss schema。
对 Agent 来说,schema 就像工具说明书。它告诉 Agent 当前有哪些命令、每个命令需要哪些参数、支持哪些平台、适合哪个角色。
这比"把一大段使用说明塞进 prompt"更稳定。
项目当前暴露了求职者侧、招聘者侧、简历、AI 辅助、配置、统计、MCP 等多类能力。Agent 可以先执行:
bash
boss schema
再决定后续调用 search、detail、greet、hr candidates、hr reply 还是其他命令。
这也是我觉得它比较"Agent-first"的地方:不是先做一个人类 CLI,再勉强让 Agent 用;而是从一开始就把结构化输出和能力发现放在核心位置。
核心能力二:求职者工作流
求职者侧覆盖得比较完整:
- 职位搜索:
boss search - 福利筛选:
--welfare "双休,五险一金" - 职位详情:
boss detail - 打招呼:
boss greet - 投递/立即沟通:
boss apply - 沟通列表:
boss chat - 聊天消息:
boss chatmsg - 跟进提醒:
boss follow-up - 求职流水线:
boss pipeline - 每日摘要:
boss digest - 增量监控:
boss watch - 候选池:
boss shortlist - 简历与 AI 辅助:
boss resume、boss ai
其中比较实用的点是福利筛选。
很多求职者并不只是按"岗位名 + 城市"搜索,还会关心双休、五险一金、年终奖、带薪年假、住房补贴等条件。项目把 --welfare 做成了核心参数,并支持多个关键词的 AND 筛选。
这类筛选如果让 Agent 直接读网页,很容易不稳定;封装成 CLI 参数后,工作流会清晰很多。
核心能力三:招聘者工作流
除了求职者侧,这个项目也覆盖了招聘者侧命令组:
bash
boss hr applications
boss hr candidates "Golang"
boss hr chat
boss hr chatmsg <friend_id>
boss hr last-messages
boss hr reply <friend_id> "你好,方便聊一下岗位吗?"
boss hr request-resume <friend_id>
boss hr jobs list
这让它不只是"帮我找工作"的工具,也可以作为 HR / 招聘者视角的自动化辅助层。
当然,招聘者侧更要注意合规边界:候选人的简历、联系方式、聊天内容都属于敏感信息或至少是高度隐私相关信息。任何导出、展示、分析、转发都应该遵守平台协议和个人信息保护要求。
核心能力四:MCP 与 Agent Host 集成
项目提供了 MCP Server:
bash
boss-mcp
也可以通过 uv run 在本地项目里启动:
json
{
"servers": {
"boss-agent-cli": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"E:\\tools\\boss-agent-cli",
"run",
"python",
"mcp-server/server.py"
]
}
}
}
这意味着它可以接入 Claude Desktop、Cursor、Codex、VS Code MCP 等支持 MCP 的宿主。
对开发者来说,这一点很有价值:你不需要给每个 Agent Host 单独写一套工具定义,只要 MCP 协议接上,工具列表和参数就可以统一暴露出去。
技术实现上比较有意思的点
从 README 和文档看,项目技术栈主要是:
- Python 3.10+
- Click
- httpx
- patchright / Playwright
- browser-cookie3
- cryptography
- Rich
- SQLite WAL
- MCP Server
- uv + hatchling
- pytest / ruff / mypy
架构上大概可以理解成:
text
Click CLI
-> AuthManager
-> BossClient / Platform
-> httpx 或浏览器通道
-> output.py JSON 信封
-> Agent 读取 stdout
它还做了跨平台抽象:
zhipin:BOSS 直聘求职者侧;zhipin-recruiter:BOSS 直聘招聘者侧;zhilian:智联招聘候选者侧链路正在接入。
这说明项目不是简单堆命令,而是在往"招聘平台 Agent 工具层"方向演进。
合规和隐私边界必须说在前面
招聘求职场景天然包含大量敏感信息,例如:
- 姓名、手机号、微信号;
- 简历、工作经历、教育经历;
- 公司、岗位、薪资、面试记录;
- 求职意向和沟通内容;
- 招聘者与候选人的聊天记录。
因此,使用这类工具时,我认为至少要遵守几个原则:
-
只在自己的账号和授权范围内使用 不要拿工具去访问、导出、传播你无权处理的数据。
-
不要高频抓取或批量骚扰 自动化不是骚扰工具。批量打招呼、批量回复、增量监控都应该控制频率,并尊重平台规则和对方体验。
-
不要公开真实个人信息 提 issue、写文章、做演示时,Cookie、Token、security_id、手机号、微信号、简历、聊天记录都应该脱敏。
-
写操作前先读上下文 比如
greet、apply、exchange、hr reply这类操作,最好先通过详情、聊天历史、候选人上下文确认目标和语境。 -
遵守平台用户协议和隐私政策 BOSS 直聘官网有协议与隐私政策入口,项目自身也有
docs/platform-risk.md,提醒不要将工具用于高频抓取、批量骚扰、绕过平台限制或违反平台条款的用途。
相关链接:
- BOSS 直聘官网协议与规则入口:www.zhipin.com/
- BOSS 直聘用户协议及隐私政策:www.zhipin.com/web/common/...
- 项目平台风险边界文档:github.com/can4hou6joe...
这部分我觉得不是"免责声明模板",而是这类工具能不能健康使用的前提。
适合谁用?
我觉得它适合几类人:
- 想研究 AI Agent 如何调用真实世界工具的开发者;
- 想把招聘求职流程接入 MCP / Cursor / Claude Desktop / Codex 的开发者;
- 想学习 CLI JSON 协议设计、错误信封设计、Agent 工具自描述设计的人;
- 想用 Python 做浏览器自动化、登录态管理、平台抽象的工程实践参考;
- 对"Agent 不只是聊天,而是能稳定操作工具链"感兴趣的人。
不太适合的场景也要说清楚:
- 不适合用来做未经授权的数据抓取;
- 不适合用来群发骚扰消息;
- 不适合把真实候选人/招聘者数据拿出来做公开 demo;
- 不适合绕过平台限制、风控或协议约束。
快速体验
如果只是想看看项目结构,可以先看 GitHub:
bash
git clone https://github.com/can4hou6joeng4/boss-agent-cli.git
cd boss-agent-cli
uv sync --all-extras
uv run boss schema
如果是安装使用:
bash
uv tool install boss-agent-cli
patchright install chromium
boss doctor
boss login
boss status
接入 Agent 前,建议先读:
- README:github.com/can4hou6joe...
- Agent Quickstart:github.com/can4hou6joe...
- Capability Matrix:github.com/can4hou6joe...
总结
boss-agent-cli 最吸引我的地方,不是"它能自动操作招聘网站",而是它把一个复杂、容易失控的网页流程,抽象成了更适合 Agent 调用的工具协议:
- 能力先自描述;
- 输出统一 JSON;
- 错误有恢复建议;
- 求职者和招聘者双端都能接;
- 可以走 CLI,也可以走 MCP;
- 同时明确写出了平台风险和隐私边界。
如果你正在研究 AI Agent、MCP、CLI 工具协议,或者想看一个真实场景里的 Agent 工具层工程实践,这个项目值得看看。
最后再强调一次:招聘求职是高隐私、高信任场景。工具可以提高效率,但不应该替代用户对平台规则、个人信息保护和沟通边界的判断。