开源推荐:一个专为 AI Agent 设计的求职自动化工具

前言

在 AI Agent 时代,自动化不再仅限于简单的重复任务。近期发现了一个有趣的开源项目 boss-agent-cli,它将 Python CLI 工具和 AI Agent 的能力结合,为求职者(尤其是 AI Agent)打造了一套完整的 BOSS 直聘自动化解决方案。这个项目展现了如何设计一个 Agent 友好的工具,值得所有做 AI Agent 集成的开发者学习。


这个项目解决什么问题?

传统求职的痛点

求职是一个耗时的过程:

  • 职位搜索繁琐:需要在平台上反复翻页、手动查看职位详情
  • 福利信息零散:职位列表里的福利标签不完整,需要逐个进入详情页面查证
  • 沟通记录复杂:打招呼、投递、面试邀请散落在不同的消息流中
  • 进度追踪困难:无法清晰地看到整个求职漏斗(应聘→沟通→面试→offer)

如果你是一个 AI Agent,情况会更糟:你需要能够调用这些平台的能力,但 BOSS 直聘没有公开 API,你只能自己做网页自动化。

boss-agent-cli 的方案

这个项目提供了一个 CLI 工具 ,把 BOSS 直聘的核心功能封装成命令行界面。关键是,所有输出都是 结构化 JSON,这意味着 Agent 可以轻松解析和调用。


核心亮点分析

1. Agent 友好的设计

这是这个项目最聪明的地方。

传统 CLI 的问题:输出是面向人类的,充满格式化文本、颜色、进度条等。Agent 很难解析。

boss-agent-cli 的做法

复制代码
boss schema

执行这个命令,你会得到一个完整的能力描述(JSON 格式),告诉 Agent:

  • 我有哪些命令
  • 每个命令接受什么参数
  • 输出什么结构

这是一个 自描述协议,Agent 只需看一次 schema,就能理解如何使用这个工具。所有输出都遵循统一的信封格式:

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 字段获取错误信息
  • 通过 hints 字段自动决定下一步操作
  • 通过 recovery_action 字段自动修复错误

为什么这重要? 在 AI Agent 的世界里,工具集成就像积木,工具设计得好坏直接决定 Agent 的能力。boss-agent-cli 就是一块设计得很好的积木。

2. 福利精准筛选

很多求职者都有这样的需求:"我只要双休和五险一金的职位"。

传统做法:搜索后,手动逐个查看职位详情里的福利描述。

boss-agent-cli 的做法

sql 复制代码
boss search "Golang" --city 广州 --welfare "双休,五险一金"

工具会:

  1. 先检查职位列表里的福利标签
  2. 标签不匹配时,自动调用职位详情页(card.json)进行全文搜索
  3. 自动翻页(最多 5 页)直到找齐所有结果
  4. 返回每个结果带 welfare_match 字段,说明匹配来源

这看似简单,但实现起来很复杂:需要调用多个 API、处理分页、做文本匹配、管理请求延迟避免被反爬。

3. 求职流水线与进度追踪

求职不是一次性的。从投递、打招呼、对话、面试,再到最后签 offer,是一个漫长的流程。

项目提供了 3 个命令来追踪这个过程:

bash 复制代码
boss pipeline    # 汇总沟通 + 面试,标记各阶段状态
boss follow-up   # 跟进提醒(筛选超时未推进的联系人)
boss digest      # 每日摘要(综合统计和更新)

通过这些命令,Agent(或求职者)可以一目了然地看到:

  • 我已经投递了多少个职位
  • 其中有多少收到了招聘者的回复
  • 有几个进入了面试阶段
  • 哪些联系人需要主动跟进

4. 反检测与登录安全

BOSS 直聘 会检测自动化操作。项目采用多个策略来规避:

三级降级登录

  1. Cookie 提取:从本地浏览器(Chrome / Firefox / Edge 等 10+ 种)提取已有的 Cookie,无需扫码
  2. CDP 登录:检测到远程调试端口的 Chrome,复用浏览器完成登录
  3. patchright 扫码:最后才拉起浏览器让用户扫码

反检测浏览器

基于 patchright(Playwright 的反检测 fork),从二进制层面修补自动化标记。简单说,BOSS 直聘会检测浏览器的 headless 属性,patchright 能把这个标记去掉。

智能延迟

bash 复制代码
# 高斯分布请求延迟 + 指数退避重试
# 不是傻傻地 time.sleep(2),而是模拟真人的操作节奏

这些细节看起来小,但对于长期运行的自动化工具至关重要。

5. 与 AI Agent 框架的集成

项目提供了两种集成方式:

方式一:Skill 安装(推荐)

bash 复制代码
npx skills add can4hou6joeng4/boss-agent-cli

这是最方便的。安装后,Agent 自动获得调用 boss 命令的能力,无需手动配置。这反映了项目的一个理念:好的工具应该让集成变得简单

方式二:手动配置

在 Agent 的规则文件里加上使用说明,让 Agent 学会调用 boss 命令。


技术架构与实现细节

架构图

scss 复制代码
CLI (Click)  →  AuthManager  →  patchright (登录)
                    ↓
              BossClient (httpx)  →  BOSS 直聘 wapi
                    ↓
              CacheStore (SQLite WAL)
                    ↓
              output.py  →  JSON 信封  →  stdout

关键技术栈

组件 技术选择 为什么
CLI 框架 Click 轻量、易扩展,适合 Agent 集成
HTTP 客户端 httpx 支持异步,性能好
反检测浏览器 patchright Playwright fork,去掉自动化标记
Cookie 提取 browser-cookie3 支持多浏览器
缓存 SQLite WAL 轻量级,支持并发读,适合 CLI
加密 Fernet + PBKDF2 对称加密,机器绑定密钥

聪明的设计决策

1. 缓存策略

搜索结果会缓存到 SQLite,TTL 为 24 小时。这有两个好处:

  • 减少对 BOSS 直聘的请求压力(不会被 ban)
  • Agent 可以离线调试

2. 错误自愈

每个错误响应都包含 recovery_action,告诉 Agent 应该怎么修复:

json 复制代码
{
  "ok": false,
  "error": "AUTH_EXPIRED",
  "recovery_action": "boss login"
}

Agent 看到这个错误,可以自动执行 boss login,而不是傻傻地重试。

3. 增量监控

watch 命令可以保存搜索条件,定期执行,并标出新职位:

perl 复制代码
boss watch add my-golang "Golang" --city 广州 --welfare "双休"
boss watch run my-golang

这对于长期求职非常有用。Agent 可以定期运行 watch run,只看新发布的职位。


实际应用场景

场景 1:自动求职 Agent

想象一个 AI Agent,收到用户的求职需求:"帮我在广州找 Golang 职位,要求双休和五险一金"。

Agent 可以这样做:

bash 复制代码
boss schema                 # 先看一遍工具的能力
boss search "Golang" --city 广州 --welfare "双休,五险一金" --count 50
boss detail <security_id>   # 查看几个职位的详情
boss recommend             # 看看有没有系统推荐的职位
boss batch-greet "Golang" --city 广州  # 自动打招呼
boss pipeline              # 查看当前的求职进度

整个过程无需人工干预,所有操作都是自动化的。

场景 2:求职数据分析

一个求职者想分析自己的求职情况:投递数、回复率、面试邀请比例等。

可以导出数据后分析:

bash 复制代码
boss export "Python" --city 北京 --count 100 -o jobs.csv
boss chat -o communication.json      # 导出所有沟通记录
boss pipeline                        # 看求职漏斗

然后用 Python 或 R 进行数据分析。

场景 3:长期职位监控

一个求职者不着急,但想关注市场上有没有感兴趣的职位。可以:

perl 复制代码
boss watch add my-fav "Senior Golang Engineer" --salary 50-80K
# 每天运行一次
boss watch run my-fav

系统会自动检测新职位,只显示新发布的,避免信息重复。


代码质量与开发者体验

浏览项目的代码和文档,有几个值得称赞的地方:

1. 完善的文档

  • README.md:清晰的快速开始
  • docs/agent-quickstart.md:专门面向 Agent 开发者
  • docs/agent-hosts.md:展示不同 Agent 框架的集成示例
  • docs/capability-matrix.md:完整的能力矩阵
  • SKILL.md:Skill 安装说明

2. 环境诊断工具

复制代码
boss doctor

这个命令会诊断:

  • patchright 是否已安装
  • Chromium 内核是否可用
  • 是否能从本地浏览器提取 Cookie
  • 登录态是否存在、是否可解密
  • Token 质量是否良好
  • 网络连接是否正常

这大大降低了新用户的上手成本。

3. 详细的错误处理

每个错误都有清晰的含义和修复建议:

错误码 含义 修复方法
AUTH_REQUIRED 未登录 执行 boss login
AUTH_EXPIRED 登录过期 重新登录
RATE_LIMITED 频率过高 等待后重试
GREET_LIMIT 今日打招呼次数用完 明天再试

值得学习的地方

对于 AI Agent 开发者

  1. 自描述 API :设计工具时,考虑工具如何被 Agent 调用。提供 schema 命令,让 Agent 一次了解全部能力。
  2. 结构化输出:所有输出都是 JSON,避免格式化文本。这样 Agent 才能可靠地解析结果。
  3. 错误自愈 :不要让 Agent 猜测怎么修复错误。在错误响应里包含 recovery_action,告诉 Agent 应该做什么。
  4. 渐进式降级:对于需要用户交互的操作(如登录),提供多个备选方案,按优先级尝试(Cookie → 远程调试 → 扫码)。

对于 CLI 工具开发者

  1. 分离 stdout 和 stderr:JSON 数据输出到 stdout,日志输出到 stderr。这样 Agent(或脚本)可以清晰地获取结构化数据。
  2. 缓存策略:对于耗时的操作(如网页爬取),缓存结果并设置合理的 TTL。
  3. 诊断命令 :提供 doctor 命令,帮助用户快速定位问题。
  4. 预设和快捷方式 :提供 presetwatch 等功能,让重复操作变得简单。

潜在的改进方向

没有完美的项目,boss-agent-cli 也有一些值得改进的地方:

  1. 单元测试覆盖率:对于爬虫类工具,完整的单元测试很重要,但这类项目通常难以测试(依赖外部 API)。
  2. 国际化:当前仅支持中文。如果能支持其他语言(英文、日文等),会吸引更多用户。
  3. 性能优化:某些操作(如福利筛选)需要多次调用 API。可以考虑并发优化。
  4. 社区生态:可以考虑发展 Agent 插件生态,让更多的 Agent 框架能轻松集成。

总结

boss-agent-cli 是一个设计精良的开源项目,它展现了如何为 AI Agent 设计工具:

Agent 友好 :自描述 API、结构化输出、错误自愈

功能完整 :搜索、筛选、沟通、进度追踪

易于集成 :提供 Skill 安装方式,也支持手动配置

开发体验好 :诊断工具、详细文档、清晰的错误提示

反检测能力强:三级降级登录、patchright 反爬、智能延迟

无论你是在构建 AI Agent、做求职自动化,还是只是想学习如何设计 Agent 友好的工具,这个项目都值得一读。

项目地址:github.com/can4hou6joe...


参考资源

相关推荐
sbjdhjd3 小时前
01| 裸机部署 K8S:从零搭建生产可用集群
运维·经验分享·云原生·kubernetes·开源·kubelet·kubeless
一直会游泳的小猫14 小时前
gstack-guide
开源·安全防护·ai辅助开发·技能工具集·sprint流程
Hical_W15 小时前
Hical 踩坑实录五部曲(五):Boost.MySQL 协程集成的 5 个坑
数据库·mysql·开源
Hical6118 小时前
C++26 反射落地实战
c++·开源
IvorySQL18 小时前
从 repack.c 深入理解 PostgreSQL REPACK 的底层实现
数据库·postgresql·开源
千桐科技19 小时前
qData 数据中台社区开源版 v1.4.0 发布:元数据管理核心模块正式上线
开源·数据治理·数据集成·数据开发·数据中台·元数据管理·qdata
容器魔方1 天前
“驾驭工程”下一跳?JiuwenClaw AgentTeam开启“协同工程”全新范式
人工智能·云原生·容器·架构·开源
日取其半万世不竭1 天前
Pixelfed 自建教程:开源去中心化图片社交平台
开源·去中心化·区块链
GitCode官方1 天前
智能进化觉醒!openvela trunk-5.5 发布:端侧 AI Agent 开源和多方位升级
人工智能·开源