[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-83583":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":17,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":23,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":41,"readmeContent":42,"aiSummary":10,"trendingCount":16,"starSnapshotCount":16,"syncStatus":14,"lastSyncTime":43,"discoverSource":44},83583,"boss-agent-cli","can4hou6joeng4\u002Fboss-agent-cli","can4hou6joeng4","AI-agent-first CLI for BOSS 直聘 — 职位搜索、福利筛选、招聘者工作流、MCP 工具与 AI 简历优化","https:\u002F\u002Fcan4hou6joeng4.github.io\u002Fboss-agent-cli\u002F",null,"Python",1138,89,2,4,0,72,216,101.06,"MIT License",false,"master",true,[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"agent-skill","agent-tools","ai-agent","automation","boss-zhipin","cli","job-hunting","job-search","mcp","model-context-protocol","patchright","python","recruiter-workflow","recruitment","resume","zhipin","2026-06-12 04:01:41","\u003Cdiv align=\"center\">\n\n# boss-agent-cli\n\n**专为 AI Agent 设计的 BOSS 直聘本地辅助 CLI 工具**\n\n> 默认低风险模式：本地辅助 · 只读优先 · 用户主动触发 · 不规避风控 · 不批量触达 · 不抓取平台数据\n>\n> 求职者：搜索 · 福利筛选 · 详情查看 · 候选池 · 本地简历与 AI 辅助\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fcan4hou6joeng4\u002Fboss-agent-cli\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fcan4hou6joeng4\u002Fboss-agent-cli\u002Factions\u002Fworkflows\u002Fci.yml)\n[![Coverage](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fcan4hou6joeng4\u002Fboss-agent-cli\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fcan4hou6joeng4\u002Fboss-agent-cli)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-≥3.10-3776AB?logo=python&logoColor=white&style=flat-square)](https:\u002F\u002Fpython.org)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-green.svg?style=flat-square)](LICENSE)\n[![GitHub Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fcan4hou6joeng4\u002Fboss-agent-cli?style=flat-square)](https:\u002F\u002Fgithub.com\u002Fcan4hou6joeng4\u002Fboss-agent-cli\u002Freleases)\n[![PyPI Downloads](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fboss-agent-cli?style=flat-square)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fboss-agent-cli\u002F)\n[![Contributors](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fcan4hou6joeng4\u002Fboss-agent-cli?style=flat-square)](https:\u002F\u002Fgithub.com\u002Fcan4hou6joeng4\u002Fboss-agent-cli\u002Fgraphs\u002Fcontributors)\n[![PRs Welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg?style=flat-square)](https:\u002F\u002Fgithub.com\u002Fcan4hou6joeng4\u002Fboss-agent-cli\u002Fpulls)\n[![Open in Codespaces](https:\u002F\u002Fgithub.com\u002Fcodespaces\u002Fbadge.svg)](https:\u002F\u002Fcodespaces.new\u002Fcan4hou6joeng4\u002Fboss-agent-cli)\n\n[快速上手](docs\u002Fgetting-started.md) · [安装](#-安装) · [快速开始](#-快速开始) · [角色模式](#-角色模式与多平台) · [Agent 集成](#-ai-agent-集成) · [命令参考](#-命令参考) · [排障](#-诊断与排障) · [架构](#-技术架构) · [更新日志](CHANGELOG.md) · [路线图](ROADMAP.md)\n\n**中文** | [English](README.en.md)\n\n\u003Ca href=\"demo\u002Fshowcase\u002Fboss-agent-cli-showcase.mp4\" title=\"观看完整项目展示视频\">\n  \u003Cimg src=\"demo\u002Fshowcase\u002Fboss-agent-cli-showcase.gif\" alt=\"boss-agent-cli 项目展示动图\" width=\"100%\">\n\u003C\u002Fa>\n\n**[观看完整展示视频](demo\u002Fshowcase\u002Fboss-agent-cli-showcase.mp4)** · [查看终端交互演示](demo-zh.gif) · schema 驱动 · 福利筛选 · JSON 信封 · 开源工程质量\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"demo-zh.gif\" alt=\"boss-agent-cli 终端交互演示（1280×720 \u002F 30fps）\" width=\"100%\">\n\u003C\u002Fp>\n\n\u003C\u002Fdiv>\n\n> [!TIP]\n> \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fpeterfei\u002Fai-agent-team\u002Fraw\u002Fmain\u002Fexamples\u002Fdoloffer.png\" alt=\"Doloffer logo\" width=\"220\">\n>\n> **Doloffer Guide** 致力于让优质 AI 工具的获取更简单。平台主打 GPT 与 Claude 等主流 AI 服务的正版会员充值，提供一站式订阅管理，主打安全稳定与无忧售后。\n>\n> 💡 **极速订阅**： [专属链接](https:\u002F\u002Fdoloffer.com\u002Ffriend\u002FBEv3yvKS)（输入优惠码 `AI8888` 享 9 折特惠）\n\n> A local-assist CLI for AI Agents working around [BOSS Zhipin](https:\u002F\u002Fwww.zhipin.com\u002F) data already available to the user. Default low-risk mode is read-only first, user-triggered, and does not automate outreach, bulk actions, risk-control bypasses, or candidate personal-data workflows. See [README.en.md](README.en.md) for the English version.\n\n## ⚠️ 合规边界\n\n本项目默认启用低风险辅助模式，目标是收缩为“本地辅助 \u002F 只读优先 \u002F 用户主动触发 \u002F 不规避风控 \u002F 不批量触达 \u002F 不抓取平台数据”的低风险工具。CLI 默认会阻断打招呼、批量打招呼、投递、联系方式交换、招聘者候选人搜索、候选人简历、聊天记录、附件简历请求和消息回复等敏感能力。需要投递、沟通、候选人处理或联系方式交换时，请回到 BOSS 直聘官方页面由用户手动完成。\n\n---\n\n## 💡 为什么用 boss-agent-cli？\n\n传统求职：打开网页 → 翻几十页 → 逐个看详情 → 手动整理候选岗位 → 忘了跟进谁。\n\n**boss-agent-cli 让 AI Agent 帮你做本地整理和只读辅助**：\n\n```bash\nboss search \"Golang\" --city 广州 --welfare \"双休,五险一金\"   # 搜索 + 福利筛选\nboss detail \u003Csecurity_id>                                    # 查看详情\nboss shortlist add \u003Csecurity_id> \u003Cjob_id>                    # 加入本地候选池\nboss stats                                                   # 本地统计\n```\n\n所有输出为 **结构化 JSON**，Agent 一调用就能理解；涉及投递、沟通和候选人个人信息处理的动作默认回到平台官网手动完成。\n\n---\n\n## 🧭 导航目录\n\n- [为什么用 boss-agent-cli](#-为什么用-boss-agent-cli)\n- [演示素材](#-演示素材)\n- [核心能力](#-核心能力)\n- [安装](#-安装)\n- [快速开始](#-快速开始)\n- [登录链路](#-登录链路)\n- [角色模式与多平台](#-角色模式与多平台)\n- [AI Agent 集成](#-ai-agent-集成)\n- [命令参考](#-命令参考)\n- [诊断与排障](#-诊断与排障)\n- [配置](#-配置)\n- [技术架构](#-技术架构)\n- [贡献](#-贡献)\n\n---\n\n## 🎬 演示素材\n\n| 类型 | 入口 | 适合场景 |\n|------|------|----------|\n| 项目展示动图 | [首页自动播放 GIF](demo\u002Fshowcase\u002Fboss-agent-cli-showcase.gif) | 快速理解项目定位、schema 驱动、JSON 信封与开源工程质量 |\n| 完整展示视频 | [16 秒 MP4](demo\u002Fshowcase\u002Fboss-agent-cli-showcase.mp4) | 查看更清晰、更完整的项目叙事 |\n| 终端交互演示 | [终端 GIF](demo-zh.gif) · [VHS 录制脚本](demo-zh.tape) | 直接观察 CLI 命令和输出形态（1280×720 \u002F 30fps） |\n| 可复现源工程 | [HyperFrames 源文件](demo\u002Fhyperframes-showcase\u002F) | 维护或迭代 README 首页展示动画 |\n\n---\n\n## 🌟 核心能力\n\n### 求职者工作流\n\n- `🔍 职位发现`：关键词搜索、8 维筛选、按编号回看同一条结果。命令：`search` `show`\n- `🎯 福利筛选`：`--welfare \"双休,五险一金\"` 会自动翻页、补抓详情、按 AND 逻辑做真实匹配。命令：`search --welfare`\n- `📌 本地候选池`：查看详情后保存、移除、复盘候选岗位；投递和沟通回到平台官网手动完成。命令：`detail` `show` `shortlist`\n- `📊 本地统计`：基于本地缓存查看候选池、投递记录和清理结果。命令：`stats` `shortlist` `clean`\n- `👀 本地预设`：保存搜索条件和候选池；自动增量拉取默认阻断。命令：`watch add\u002Flist\u002Fremove` `preset` `shortlist`\n- `💬 沟通边界`：聊天记录、会话摘要、标签和联系方式交换等敏感链路默认阻断；沟通请回到平台官网手动完成。\n- `🤖 AI 求职增强`：JD 分析、简历润色、定向优化、模拟面试、沟通指导。命令：`ai analyze-jd` `ai polish` `ai optimize` `ai interview-prep` `ai chat-coach`\n\n### 招聘者工作流\n\n- `👔 招聘者边界`：候选人搜索、投递申请、在线简历、沟通记录、附件简历请求、联系方式交换和消息回复默认阻断，请回到 BOSS 直聘官方招聘者页面手动处理。\n- `📌 职位管理`：查看职位、上架、下架，作为招聘者端的最小可操作闭环。命令：`hr jobs list` `hr jobs online` `hr jobs offline`\n\n### 平台与集成基础\n\n- `🔌 多平台抽象`：`Platform` \u002F `RecruiterPlatform` 双注册表已落地；默认低风险模式优先暴露只读和本地辅助链路。命令：`--platform zhipin|zhilian`\n- `📤 结构化输出`：stdout 只输出 JSON 信封，适合 CLI 编排、Shell Agent、MCP 和 Python SDK。命令：`schema` `export`\n- `🧩 Agent 接入`：同一套能力可通过 Skill、subprocess、MCP、Python SDK 四种路径暴露给 Agent。文档：`docs\u002Fagent-quickstart.md` `docs\u002Fagent-hosts.md`\n\n---\n\n## 📦 安装\n\n```bash\n# 推荐：通过 uv 安装（秒级，自动隔离）\nuv tool install boss-agent-cli\n\n# 安装浏览器（仅用于用户主动登录和本地导出场景）\npatchright install chromium\n```\n\n\u003Cdetails>\n\u003Csummary>📋 其他安装方式\u003C\u002Fsummary>\n\n```bash\n# pipx（隔离环境）\npipx install boss-agent-cli\npatchright install chromium\n\n# pip\npip install boss-agent-cli\npatchright install chromium\n\n# 从源码（开发用）\ngit clone https:\u002F\u002Fgithub.com\u002Fcan4hou6joeng4\u002Fboss-agent-cli.git\ncd boss-agent-cli\nuv sync --all-extras\nuv run patchright install chromium\n```\n\n\u003C\u002Fdetails>\n\n---\n\n## 🚀 快速开始\n\n```bash\n# 1. 环境自检\nboss doctor\n\n# 2. 登录（按平台选择链路）\nboss login\n\n# 3. 验证登录态\nboss status\n\n# 4. 搜索广州的 Golang 职位，要求双休+五险一金\nboss search \"Golang\" --city 广州 --welfare \"双休,五险一金\"\n\n# 5. 查看详情 → 加入本地候选池\nboss detail \u003Csecurity_id>\nboss shortlist add \u003Csecurity_id> \u003Cjob_id>\n\n# 6. 导出 + 本地统计\nboss export \"Golang\" --city 广州 --count 50 -o jobs.csv\nboss stats\n\n# 7. 本地搜索预设（自动增量拉取默认阻断）\nboss watch add my-golang \"Golang\" --city 广州 --welfare \"双休\"\nboss watch list\n\n# 9. 招聘者模式\nboss hr jobs list                     # 我发布的职位（只读）\n# 候选人搜索、简历、聊天、回复、联系方式交换等默认低风险模式会阻断\n```\n\n---\n\n## 🔐 登录链路\n\n`boss login` 会按当前平台选择登录链路：\n\n| 平台 | 登录链路 | 说明 |\n|------|----------|------|\n| `zhipin` | 用户主动登录链路（Cookie \u002F CDP \u002F QR \u002F 浏览器兜底） | 仅用于低风险辅助，不用于规避平台风控 |\n| `zhilian` | 用户主动登录链路（Cookie \u002F CDP \u002F 浏览器兜底） | 当前优先复用本地浏览器登录态 |\n\n补充说明：\n- `boss login` 默认按当前 `--platform` \u002F 配置文件里的 `platform` 工作\n- `boss --platform zhilian login` 已可用，当前覆盖**求职者侧**认证链路\n- `boss --platform zhilian` 目前已支持候选者侧 `search \u002F detail \u002F user_info`；推荐流和写操作默认受低风险模式阻断\n- `boss --platform zhilian hr ...` 仍不支持，CLI 会直接拒绝执行招聘者侧子命令\n\n涉及 Cookie、CDP、patchright、真实账号、请求频率或平台接口漂移的问题，请先阅读 [平台风险边界](docs\u002Fplatform-risk.md)。\n\n\u003Cdetails>\n\u003Csummary>📖 CDP 启动示例\u003C\u002Fsummary>\n\nmacOS：\n\n```bash\n\u002FApplications\u002FGoogle\\ Chrome.app\u002FContents\u002FMacOS\u002FGoogle\\ Chrome \\\n  --remote-debugging-port=9222 \\\n  --user-data-dir=\u002Ftmp\u002Fboss-chrome\n```\n\nLinux：\n\n```bash\ngoogle-chrome \\\n  --remote-debugging-port=9222 \\\n  --user-data-dir=\u002Ftmp\u002Fboss-chrome\n```\n\nWindows PowerShell：\n\n```powershell\n$chromeCandidates = @(\n  \"$env:ProgramFiles\\Google\\Chrome\\Application\\chrome.exe\",\n  \"${env:ProgramFiles(x86)}\\Google\\Chrome\\Application\\chrome.exe\",\n  \"$env:LOCALAPPDATA\\Google\\Chrome\\Application\\chrome.exe\"\n)\n\n$chrome = $chromeCandidates | Where-Object { Test-Path $_ } | Select-Object -First 1\nif (-not $chrome) { throw \"Google Chrome executable was not found\" }\n\n& $chrome `\n  --remote-debugging-port=9222 `\n  --remote-allow-origins=* `\n  --user-data-dir=\"$env:LOCALAPPDATA\\boss-agent-cdp-profile\"\n```\n\n启动后在另一个终端使用 CDP 登录：\n\n```bash\nboss --cdp-url http:\u002F\u002Flocalhost:9222 login --cdp\n```\n\n\u003C\u002Fdetails>\n\n---\n\n## 🎭 角色模式与多平台\n\nboss-agent-cli 同时覆盖求职者和招聘者两端，并为后续接入更多招聘平台做了抽象。\n\n### 角色切换\n\n| 选项 | 说明 | 典型命令 |\n|------|------|----------|\n| `--role candidate`（默认） | 求职者视角 | `search` \u002F `detail` \u002F `shortlist` |\n| `--role recruiter` | 招聘者视角 | `hr jobs list`；候选人相关敏感命令默认阻断 |\n\n快捷入口：`boss hr \u003C子命令>` 会自动把当前会话切换到招聘者角色，不必显式传 `--role`。\n\n```bash\n# 方式 A: --role 显式指定\nboss --role recruiter ...\n\n# 方式 B: 招聘者快捷组（自动切换 role）\nboss hr applications\nboss hr candidates \"Golang\"\n```\n\n注意：\n- `boss hr ...` 当前仅支持默认招聘者平台 `zhipin-recruiter`\n- 若当前平台是 `zhilian`，CLI 会在入口直接提示切回 `boss --platform zhipin hr ...`\n\n### 多平台抽象\n\n`Platform` \u002F `RecruiterPlatform` 双注册表让命令层不耦合具体平台协议：\n\n| 平台 | 求职者 | 招聘者 | 状态 |\n|------|:------:|:------:|------|\n| BOSS 直聘 (`zhipin`) | ✅ | ✅ | 默认 |\n| 智联招聘 (`zhilian`) | 🟡 候选者侧登录 + 读写链路已接通 | — | 招聘者侧未接入，运行时会直接拒绝 `hr` 子命令 |\n\n```bash\n# 指定平台\nboss --platform zhilian search \"Python\"\n\n# 设为默认\nboss config set platform zhilian\n```\n\n设计细节见 [docs\u002Fplatform-abstraction.md](docs\u002Fplatform-abstraction.md)。\n\n---\n\n## 🤖 AI Agent 集成\n\n推荐先阅读：[Agent Quickstart](docs\u002Fagent-quickstart.md) · [Host Examples](docs\u002Fagent-hosts.md) · [Capability Matrix](docs\u002Fcapability-matrix.md)\n\n### 方式一：Skill 安装（推荐）\n\n```bash\nnpx skills add can4hou6joeng4\u002Fboss-agent-cli\n```\n\n安装后 Agent 自动获得调用 `boss` 命令的能力，无需手动配置。\n\n### 方式二：手动配置\n\n在 AI Agent 的规则文件中添加：\n\n```markdown\n当用户要求搜索职位、整理候选岗位等 BOSS 直聘辅助操作时，通过 Bash 调用 `boss` CLI：\n1. 运行 `boss status` 检查登录态\n2. 若未登录，运行 `boss login` 提示用户扫码\n3. 根据用户意图调用 search \u002F detail \u002F show \u002F shortlist\n4. 解析 stdout JSON，`ok` 字段判断成败\n5. 用户提到福利要求时使用 `--welfare` 参数\n6. 投递、打招呼、交换联系方式、招聘者候选人处理和消息回复必须回到平台官网由用户手动完成\n```\n\n### 方式三：Python 直接嵌入（不走 subprocess）\n\n包已随 `py.typed` 标记发布，可直接作为类型化的 Python 库使用：\n\n```python\nfrom boss_agent_cli import AuthManager, BossClient, AuthRequired\n\nauth = AuthManager(data_dir=Path(\"~\u002F.boss-agent\").expanduser())\ntry:\n    with BossClient(auth) as client:\n        result = client.search_jobs(\"Golang\", city=\"广州\")\nexcept AuthRequired:\n    ...  # 提示用户 boss login\n```\n\n公开 API（详见 `boss_agent_cli.__all__`）：`AuthManager` \u002F `BossClient` \u002F `CacheStore` \u002F `JobItem` \u002F `JobDetail` \u002F `AIService` \u002F `ResumeData` 等核心类型。\n\n### 输出协议\n\n所有命令输出 JSON 到 stdout，统一信封格式：\n\n```json\n{\n  \"ok\": true,\n  \"schema_version\": \"1.0\",\n  \"command\": \"search\",\n  \"data\": [...],\n  \"pagination\": {\"page\": 1, \"has_more\": true, \"total\": 15},\n  \"error\": null,\n  \"hints\": {\"next_actions\": [\"boss detail \u003Csecurity_id>\"]}\n}\n```\n\n| 约定 | 说明 |\n|------|------|\n| `stdout` | 仅 JSON 结构化数据 |\n| `stderr` | 日志和进度信息 |\n| `exit 0` | 命令成功 (`ok=true`) |\n| `exit 1` | 命令失败 (`ok=false`) |\n\n---\n\n## 📚 命令参考\n\n### 基础操作\n\n| 命令 | 说明 |\n|------|------|\n| `boss schema` | 输出完整工具能力描述 JSON（34 个顶层命令 + hr 分组展开，Agent 首先调用） |\n| `boss login` | 四级降级登录 |\n| `boss logout` | 退出登录 |\n| `boss status` | 检查登录态 |\n| `boss doctor` | 诊断环境、依赖、凭据完整性和网络 |\n| `boss me` | 我的信息（用户\u002F简历\u002F期望\u002F投递记录） |\n\n### 职位搜索\n\n| 命令 | 说明 |\n|------|------|\n| `boss search \u003Cquery>` | 搜索职位（支持 `--url` 网页筛选、逗号多选、`--welfare` 筛选、`--preset` 预设） |\n| `boss recommend` | 受限：默认低风险模式阻断，避免自动读取推荐流 |\n| `boss detail \u003Csecurity_id>` | 职位详情（`--job-id` 走快速通道） |\n| `boss show \u003C#>` | 按编号查看上次搜索结果 |\n| `boss cities` | 40 个支持城市 |\n\n### 求职动作\n\n| 命令 | 说明 |\n|------|------|\n| `boss greet \u003Csid> \u003Cjid>` | 受限：默认低风险模式阻断，打招呼请回到平台官网手动完成 |\n| `boss batch-greet \u003Cquery>` | 受限：默认低风险模式阻断，避免批量触达 |\n| `boss apply \u003Csid> \u003Cjid>` | 受限：默认低风险模式阻断，投递请回到平台官网手动完成 |\n| `boss exchange \u003Csid>` | 受限：默认低风险模式阻断，联系方式交换涉及个人信息 |\n\n### 沟通跟进\n\n| 命令 | 说明 |\n|------|------|\n| `boss chat` | 受限：默认低风险模式阻断，涉及会话数据 |\n| `boss chatmsg \u003Csid> [--raw]` | 受限：默认低风险模式阻断；`--raw` 仅在合规放行后保留结构化 body、链接和职位卡片字段 |\n| `boss chat-summary \u003Csid>` | 受限：默认低风险模式阻断，依赖通信内容 |\n| `boss mark \u003Csid> --label X` | 受限：默认低风险模式阻断，涉及平台关系写入 |\n| `boss interviews` | 面试邀请 |\n| `boss history` | 浏览历史 |\n\n### 流水线监控\n\n| 命令 | 说明 |\n|------|------|\n| `boss pipeline` | 受限：默认低风险模式阻断，依赖会话\u002F面试数据 |\n| `boss follow-up` | 受限：默认低风险模式阻断，依赖会话\u002F面试数据 |\n| `boss digest` | 受限：默认低风险模式阻断，依赖会话\u002F面试数据 |\n| `boss watch add\u002Flist\u002Fremove\u002Frun` | add\u002Flist\u002Fremove 为本地预设；run 默认阻断，避免自动增量拉取平台数据 |\n| `boss shortlist add\u002Flist\u002Fremove` | 候选池 |\n| `boss preset add\u002Flist\u002Fremove` | 搜索预设 |\n\n### 招聘者模式\n\n| 命令 | 说明 |\n|------|------|\n| `boss hr applications` | 受限：默认低风险模式阻断，涉及候选人投递申请 |\n| `boss hr resume \u003Cgeek_id> --job-id \u003Cid> --security-id \u003Cid>` | 受限：默认低风险模式阻断，涉及候选人在线简历 |\n| `boss hr resume --exchange --friend-id \u003Cfriend_id> [--type wechat]` | 受限：默认低风险模式阻断，涉及联系方式交换 |\n| `boss hr chat` | 受限：默认低风险模式阻断，涉及候选人沟通列表 |\n| `boss hr chatmsg \u003Cfriend_id>` | 受限：默认低风险模式阻断，涉及候选人聊天记录 |\n| `boss hr last-messages [--friend-id \u003Cid>]` | 受限：默认低风险模式阻断，涉及候选人消息摘要 |\n| `boss hr jobs list\u002Foffline\u002Fonline` | 职位列表与上下线管理 |\n| `boss hr candidates \u003Ckeyword>` | 受限：默认低风险模式阻断，涉及候选人搜索 |\n| `boss hr reply \u003Cfriend_id> \u003Cmessage>` | 受限：默认低风险模式阻断，回复请回到平台官网手动完成 |\n| `boss hr request-resume \u003Cfriend_id>` | 受限：默认低风险模式阻断，附件简历请求请回到平台官网手动完成 |\n\n### 简历与 AI\n\n| 命令 | 说明 |\n|------|------|\n| `boss resume init\u002Flist\u002Fshow\u002Fedit\u002Fdelete\u002Fexport\u002Fimport\u002Fclone\u002Fdiff\u002Flink\u002Fapplications` | 本地简历管理 |\n| `boss ai config` | 配置 AI 服务 |\n| `boss ai analyze-jd` | 分析岗位要求 |\n| `boss ai polish` | 润色简历 |\n| `boss ai optimize` | 针对目标岗位优化 |\n| `boss ai suggest` | 求职建议 |\n| `boss ai reply` | 生成招聘者消息回复草稿 |\n| `boss ai interview-prep` | 基于 JD 生成模拟面试题 |\n| `boss ai chat-coach` | 基于聊天记录给沟通建议 |\n\n> 支持 Claude 4.7 \u002F GPT-5 \u002F DeepSeek-V3 \u002F Qwen3 等最新模型，详见 [推荐模型与入口](docs\u002Fintegrations\u002Fai-models.md)。\n\n### 系统管理\n\n| 命令 | 说明 |\n|------|------|\n| `boss config list\u002Fset\u002Freset` | 配置管理 |\n| `boss clean` | 清理缓存 |\n| `boss stats` | 投递转化漏斗统计（greeted\u002Fapplied\u002Fshortlist） |\n| `boss export \u003Cquery>` | 导出结果（CSV\u002FJSON\u002FHTML，支持 `--url` 网页筛选） |\n\n\u003Cdetails>\n\u003Csummary>🔎 搜索筛选参数详解\u003C\u002Fsummary>\n\n```bash\nboss search \"golang\" \\\n  --city 广州 \\             # 城市（40 个可选）\n  --salary 20-50K \\         # 薪资范围\n  --experience 3-5年,5-10年 \\ # 经验要求（支持逗号多选）\n  --education 本科,硕士 \\    # 学历要求（支持逗号多选）\n  --scale 100-499人 \\       # 公司规模\n  --industry 互联网 \\       # 行业\n  --stage 已上市 \\          # 融资阶段\n  --welfare \"双休,五险一金\"  # 福利筛选（AND 逻辑）\n```\n\n也可以先在 BOSS 直聘网页上手动选好筛选条件，再复制搜索页 URL 给 CLI：\n\n```bash\nboss search --url 'https:\u002F\u002Fwww.zhipin.com\u002Fweb\u002Fgeek\u002Fjobs?query=Golang&city=101280100&experience=104,105'\nboss export --url 'https:\u002F\u002Fwww.zhipin.com\u002Fweb\u002Fgeek\u002Fjobs?query=Golang&city=101280100' --count 50 -o jobs.csv\n```\n\n**福利筛选工作原理**：\n1. 先检查职位福利标签（`welfareList`）\n2. 标签不匹配时自动获取职位描述全文搜索\n3. 自动翻页（最多 5 页）\n4. 每个结果带 `welfare_match` 说明匹配来源\n\n支持关键词：`双休` `五险一金` `年终奖` `餐补` `住房补贴` `定期体检` `股票期权` `加班补助` `带薪年假`\n\n\u003C\u002Fdetails>\n\n---\n\n## 🔧 诊断与排障\n\n```bash\nboss doctor\nboss status\n# 可选：执行一次低频只读平台验证\nboss status --live\nboss doctor --live-probe\n```\n\n| 检查项 | 说明 |\n|--------|------|\n| `python` | Python 版本 >= 3.10 |\n| `patchright` | CLI 已安装 |\n| `patchright_chromium` | Chromium 已安装 |\n| `cookie_extract` | 本地浏览器 Cookie 可提取 |\n| `credential_file` | 登录态文件是否存在且可读取 |\n| `auth_session` | 登录态存在且可解密 |\n| `cookie_presence` \u002F `wt2_presence` | Cookie 与核心 Cookie 是否存在 |\n| `stoken_presence` \u002F `stoken_freshness` | `__zp_stoken__` 是否生成、是否可能过期 |\n| `auth_token_quality` | 核心凭据（wt2 \u002F stoken） |\n| `cookie_completeness` | 辅助凭据（wbg \u002F zp_at） |\n| `cdp` | Chrome 调试端口可连 |\n| `bridge_daemon` | 本地 Browser Bridge daemon 是否运行 |\n| `bridge_extension` | Chrome 扩展是否连接 daemon |\n| `bridge_protocol` | CLI 与扩展版本\u002F协议是否兼容 |\n| `bridge_workspace` | Bridge 当前 workspace\u002Ftab 是否可用 |\n| `bridge_exec` \u002F `bridge_fetch` \u002F `bridge_navigate` | 扩展基础执行、浏览器 fetch 与导航能力 |\n| `browser_channel` | CDP\u002FBridge 汇总状态；不得用于规避平台风控 |\n| `candidate_search_health` \u002F `candidate_detail_health` | 求职者只读能力前置条件 |\n| `recruiter_read_health` | 招聘者只读能力前置条件；智联招聘者侧会明确标记暂未接入 |\n| `network` | zhipin.com 可访问 |\n\n\u003Cdetails>\n\u003Csummary>📖 常见问题修复\u003C\u002Fsummary>\n\n```bash\n# 安装浏览器内核\npatchright install chromium\n\n# 重建登录态\nboss logout && boss login\n\n# CDP 诊断\nboss --cdp-url http:\u002F\u002Flocalhost:9222 doctor\n\n# Browser Bridge 诊断\npython -m boss_agent_cli.bridge.daemon --serve\n# 在 Chrome 的 chrome:\u002F\u002Fextensions 中加载并启用 extension\u002F 后，再运行：\nboss doctor\n\n# 默认 status 只检查本地凭据；需要真实只读验证时显式加 --live\nboss status --live\n```\n\n**auth_session 显示\"损坏\"**：登录态来自旧机器指纹或文件损坏 → `boss logout && boss login`\n\n**auth_token_quality 各状态含义**：\n- `wt2\u002Fstoken 均存在`：完整，可正常使用\n- `wt2 存在，stoken 缺失`：部分可用，通常是二维码或 Cookie 提取只拿到部分登录态；建议以 Chrome CDP 远程调试端口启动浏览器后运行 `boss login --cdp`，或重新执行 `boss login`\n- `wt2 缺失`：无效 → `boss logout && boss login`\n\n**bridge_daemon \u002F bridge_extension 显示 warn**：本地 daemon 未运行或扩展未连接。\n先启动 daemon，确认 19826 端口未被占用，再到 `chrome:\u002F\u002Fextensions` 加载并启用\n`extension\u002F`。Bridge 只用于本地诊断、用户主动登录兼容和只读辅助；命中平台\n风控时应停止自动化访问，不要切换到 Bridge 重试。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>📖 错误码与自动修复\u003C\u002Fsummary>\n\n| 错误码 | 含义 | Agent 自动修复 |\n|--------|------|---------------|\n| `AUTH_REQUIRED` | 未登录 | `boss login` |\n| `AUTH_EXPIRED` | 登录过期 | `boss login` |\n| `RATE_LIMITED` | 频率过高 | 等待后重试 |\n| `TOKEN_REFRESH_FAILED` | Token 刷新失败 | `boss login` |\n| `ACCOUNT_RISK` | 风控拦截 | 停止自动化访问，回到平台官网手动处理 |\n| `COMPLIANCE_BLOCKED` | 默认低风险模式阻断敏感操作 | 回到平台官网手动完成 |\n| `INVALID_PARAM` | 参数错误 | 修正参数 |\n| `ALREADY_GREETED` | 已打过招呼 | 跳过 |\n| `GREET_LIMIT` | 今日次数用完 | 告知用户 |\n| `NETWORK_ERROR` | 网络错误 | 重试 |\n| `AI_NOT_CONFIGURED` | AI 未配置 | `boss ai config` |\n| `PLATFORM_NOT_SUPPORTED` | 当前平台不支持该角色或子命令 | 切换到支持的平台 |\n\n\u003C\u002Fdetails>\n\n---\n\n## ⚙️ 配置\n\n```bash\nboss config list            # 查看所有配置\nboss config set default_city 广州   # 设置默认城市\nboss config reset           # 恢复默认\n```\n\n\u003Cdetails>\n\u003Csummary>📖 完整配置项\u003C\u002Fsummary>\n\n`~\u002F.boss-agent\u002Fconfig.json`：\n\n```json\n{\n  \"default_city\": null,\n  \"default_salary\": null,\n  \"request_delay\": [1.5, 3.0],\n  \"batch_greet_delay\": [2.0, 5.0],\n  \"batch_greet_max\": 10,\n  \"log_level\": \"error\",\n  \"login_timeout\": 120,\n  \"cdp_url\": null,\n  \"export_dir\": null\n}\n```\n\n| 配置项 | 说明 |\n|--------|------|\n| `default_city` | 默认城市 |\n| `default_salary` | 默认薪资范围 |\n| `request_delay` | 请求间隔（秒），`[min, max]` |\n| `batch_greet_delay` | 批量打招呼间隔 |\n| `batch_greet_max` | 批量打招呼上限 |\n| `log_level` | 日志级别（error\u002Fwarning\u002Finfo\u002Fdebug） |\n| `login_timeout` | 登录超时（秒） |\n| `cdp_url` | CDP 地址 |\n| `export_dir` | 导出目录 |\n\n\u003C\u002Fdetails>\n\n---\n\n## 🏗️ 技术架构\n\n```\nCLI (Click)\n    │\n    ├── AuthManager ── 用户主动登录态管理（本地加密）\n    │       └── TokenStore (Fernet + PBKDF2 机器绑定加密)\n    │\n    ├── Platform 抽象层（多平台注册表）\n    │       ├── BossPlatform (求职者) \u002F BossRecruiterPlatform (招聘者)\n    │       └── ZhilianPlatform (求职者侧登录 + 读写链路已接通，招聘者侧未接入)\n    │\n    ├── Compliance Guardrails ── 默认低风险模式，阻断敏感写操作和候选人个人信息链路\n    │\n    ├── BossClient \u002F BossRecruiterClient ── httpx + 浏览器兼容通道\n    │       ├── RequestThrottle (高斯延迟 + 突发惩罚)\n    │       ├── BrowserSession (CDP \u002F Bridge \u002F patchright，兼容保留)\n    │       └── BOSS 直聘 wapi (求职者 30 端点 + 招聘者 24 端点，共 54 端点)\n    │\n    ├── CacheStore (SQLite WAL)\n    ├── AIService (OpenAI \u002F Anthropic \u002F 兼容 API)\n    └── output.py → JSON 信封 → stdout\n```\n\n| 层级 | 选型 |\n|------|------|\n| 语言 | Python >= 3.10 |\n| CLI | Click |\n| HTTP | httpx |\n| 浏览器 | patchright \u002F CDP \u002F Bridge（兼容登录和导出；不得用于规避平台风控） |\n| Cookie | browser-cookie3（10+ 浏览器） |\n| 加密 | cryptography (Fernet + PBKDF2) |\n| 数据库 | sqlite3 (WAL 模式) |\n| 渲染 | rich |\n| AI | OpenAI \u002F Anthropic Chat Completions API |\n| 测试 | pytest（1315 项） |\n\n---\n\n## 🤝 贡献\n\n欢迎提交 Issue 和 Pull Request。\n\n```bash\n# 本地开发\ngit clone https:\u002F\u002Fgithub.com\u002Fcan4hou6joeng4\u002Fboss-agent-cli.git\ncd boss-agent-cli\nuv sync --all-extras\nuv run pytest tests\u002F -v    # 运行测试\nuv run ruff check src\u002F     # 代码检查\n```\n\n详见 [CONTRIBUTING.md](CONTRIBUTING.md)\n\n---\n\n## 🙏 致谢\n\n- [geekgeekrun](https:\u002F\u002Fgithub.com\u002Fgeekgeekrun\u002Fgeekgeekrun) — 早期浏览器自动化经验参考\n- [boss-cli](https:\u002F\u002Fgithub.com\u002Fjackwener\u002Fboss-cli) — CLI 结构化输出 + Agent 友好设计\n- [opencli](https:\u002F\u002Fgithub.com\u002Fjackwener\u002Fopencli) — Browser Bridge 架构理念\n\n---\n\n## ⚠️ 免责声明\n\n本项目仅用于学习交流和本地辅助，使用时请遵守相关法律法规、BOSS 直聘平台用户协议和隐私政策。默认低风险模式会阻断自动触达、批量操作、规避风控和候选人个人信息处理链路；任何投递、沟通、联系方式交换、招聘者候选人处理都应回到平台官网由用户手动完成。因不当使用产生的一切后果由使用者自行承担，与本项目作者无关。\n\n---\n\n## 📑 许可证\n\n[MIT](LICENSE)\n\n## 👭 友情链接\n\n- [LINUX DO - 新的理想型社区](https:\u002F\u002Flinux.do\u002F)\n","2026-06-11 04:11:24","high_star"]