BOSS Job Search CLI
A low-risk local CLI for BOSS Zhipin job discovery, welfare filtering, shortlists, and agent-ready JSON output.
- Source repo
- can4hou6joeng4/boss-agent-cli
- Stars
- ★ 2.2k
- Last updated
- 1d ago
- License
- MIT
- Primary language
- Python
- FA score
- 59/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformClaude.ai
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A job seeker wants to find Golang roles in Guangzhou that require both a two-day weekend and social insurance/housing-fund benefits.
- Not a fit if
- Job seekers outside BOSS Zhipin: Zhilian has only partial paths and Qiancheng returns NOT_SUPPORTED
- Users wanting automated greetings, applications, or chats: those actions must be done manually on the platform
- Anyone unwilling to install Chromium plus patchright/CDP: login and local export depend on a browser runtime
- Source review
- 59/100 · Major gaps
What does this agent do, and when should you use it?
boss-agent-cli is a local BOSS Zhipin assistant for terminal and AI-agent workflows, operating in Assisted Mode by default. Its Click CLI covers job search, detail lookup, welfare filtering, local shortlists, statistics, resumes, and AI job-search assistance while restricting stdout to JSON envelopes. The documented architecture combines AuthManager, BossClient, dual Platform registries, a SQLite WAL CacheStore, and AIService adapters for OpenAI-compatible services, Ollama, and vLLM. It can be used through the CLI, as a typed Python library, or as an MCP server; the repository provides MCP setup examples for Claude Desktop and Cursor. CDP, Bridge, and patchright support user-initiated login, export, and explicit research workflows, while default mode blocks sensitive outreach, applications, chats, and recruiter-side candidate-data flows.
A user completes boss login interactively, then runs commands such as boss search "Golang" --city 广州 --welfare "双休,五险一金". BossClient uses httpx with throttling to access the platform; show and detail revisit results, while welfare filters fetch additional pages and apply AND-based matching with optional --sort score ordering. After viewing a role, shortlist add <security_id> <job_id> --tags 后端,远程 stores it locally, and shortlist compare, stats, watch, preset, and favorites support review. Normal output uses the {ok, data, pagination, error, hints} envelope, and boss schema can export openai-tools or anthropic-tools definitions. With operating_mode=research explicitly enabled, crawl runs bounded, checkpointed collection with request, detail, time, and retry budgets; result exports hide security IDs, job IDs, and recruiter fields by default.
- A job seeker wants to find Golang roles in Guangzhou that require both a two-day weekend and social insurance/housing-fund benefits.
- A Claude Desktop or Cursor user wants an MCP host to inspect
boss schemaand invoke low-risk local-assistance tools. - A candidate wants to save reviewed roles in a local shortlist, tag them as remote or backend, and compare them offline.
- A job seeker wants JD analysis, resume polishing or targeting, interview preparation, and chat coaching through an OpenAI-compatible, Ollama, or vLLM model service.
- A BOSS Zhipin recruiter needs to list or take jobs online/offline with
hr jobs, without handling candidate personal-data flows.
How do you install or deploy this agent?
The documented setup requires Python ≥3.10, uv, and Chromium for user-initiated login or local export. Run uv tool install boss-agent-cli, then patchright install chromium. For first use, run boss doctor, complete the interactive boss login, and verify the session with boss status. The supplied material does not document a separate platform API key; AI features require configuring the chosen model service through boss ai config. For MCP, use uvx --from "boss-agent-cli[mcp]" boss-mcp.
How do you use this agent?
After logging in, run boss search "Golang" --city 广州 --welfare "双休,五险一金", then inspect a role with boss detail <security_id>. Save it locally with boss shortlist add <security_id> <job_id> --tags 后端,远程, and review it through boss shortlist compare --tag 远程 and boss stats. For an agent integration, call boss schema and parse its stdout JSON, or configure boss-mcp as an MCP server. Bulk collection additionally requires uv sync --extra crawl and explicit boss config set operating_mode research; it is not available in default Assisted Mode.
What are this agent's strengths and limitations?
- Welfare filtering fetches additional pages, performs true AND matching, and can sort roles by a local match score instead of relying on keyword filtering alone.
- A fixed stdout JSON envelope, stderr-only logging, and
boss schemaexports for OpenAI and Anthropic tool formats make it suitable for CLI, MCP, and scripted orchestration. - Its local SQLite WAL shortlist supports tags, notes, comparisons, statistics, and offline review, with state stored under
~/.boss-agent/. - Assisted Mode explicitly blocks greetings, applications, contact exchange, chats, and recruiter candidate-data processing by default.
- The main job workflow depends on BOSS Zhipin; Zhilian has only partial paths, and the Qiancheng adapter consistently returns
NOT_SUPPORTED. - Users must still initiate login and perform greetings, applications, and conversations manually on the platform.
- Research collection is not a default feature: it requires explicit Research Mode, an extra crawl dependency, bounded budgets, checkpoints, and a user decision to continue.
- Login and local export depend on Chromium plus patchright, CDP, or Bridge runtime paths; platform risk responses or security pages stop automated access.
How does this agent compare with similar options?
Compared with doing all job discovery on the BOSS Zhipin website, this CLI moves search, welfare matching, and local candidate organization into terminal and agent workflows. Greetings, applications, and conversations intentionally remain manual website actions.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| BOSS Job Search CLI This agent | 59 · Major gaps | CLIFree + model costs | ★ 2.2k | 1d ago | Python | Claude.ai |
| Job Application Agent | 83 · Good | Agent plugin / skillFree | ★ 173 | 1d ago | JavaScript | Codex · Claude Code |
| Field Theory CLI | 50 · Major gaps | CLIFree + model costs | ★ 2.1k | 2mo ago | TypeScript | Codex · Claude Code |
| AIChat | 46 · Major gaps | CLIFree + model costs | ★ 11k | 8mo ago | Rust | OpenAI API · Claude API |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows default low-risk mode, sensitive operations blocked by default, requiring explicit research mode configuration; login and sensitive operations are user-triggered. Data flow is documented (local storage, encrypted tokens, JSON output). Sensitive data handling includes encryption and redaction. Dependency security has version ranges but no lock or audit evidence. External effects have compliance boundaries and risk controls. Rollback has clean command but no full rollback mechanism. Source attribution has author and contributor list, but publisher unverified.
Self-consistency: README aligns with code structure, CI and tests present. Dependency availability: dependency list clear, but availability not verified. Failure messages: error envelope includes code/recoverable/recovery_action, doctor command exists.
Audience clear (AI agents and job seekers), scenarios cover search, filtering, shortlist. Capability boundaries clear (low-risk vs research mode). Trigger precision: commands explicit, schema defined. Environment fit: cross-platform, Docker and Python version requirements.
Information architecture clear, docs and command reference. Install notes detailed. Naming stability: version 1.18.0, CHANGELOG mentioned but not provided. Examples and FAQ have getting-started and troubleshooting. Known limitations documented. License MIT explicit. Versioning and changelog mentioned but not provided. Maintenance responsibility: contributing guide and issue templates, but publisher unverified.
Output usability: JSON envelope well-designed for agent parsing. Marginal value: provides differentiated features like welfare filtering. Cost-benefit: local run, few dependencies, but requires browser kernel.
Claim traceability: README claims supported by code and tests, but no specific evidence. Cross-source corroboration: CI and tests present, but not independently verified. Fact-inference separation: docs distinguish feature descriptions and compliance claims, but inferences not explicitly marked.
- Publisher unverified, identity unknown.
- Dependency security lacks lock or audit evidence.
- Rollback mechanism incomplete, only clean command.
- Versioning and changelog not provided in detail.
- Test coverage claimed 1600+, but specific test files not provided.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
v3.2.0 v3.2.0:筛选码对齐真实平台,错误分类更诚实
Release notes excerpt
v3.2.0:筛选码对齐真实平台,错误分类更诚实 这一版的主线有两条:把搜索筛选码换成平台网页实际使用的那一套,以及不再把程序缺陷报成「可以重试的网络错误」。 必须注意 - --industry 改用平台行业码,14 个对不上平台的旧标签已移除:金融、软件/信息服务、区块链、证券/基金、教育培训、房地产、汽车、物流/运输、广告/传媒、消费品、制造业、能源/环保、政府/非营利、农业。保存过这些标签的预设和 watch 会返回 INVALID_PARAM,报错会给出相近的可选值。旧码原本就发错,例如「人工智能」实际搜的是「机械设备/机电/重工」,移除是把静默的错误行为变成显式报错。仍可直接传数字行业码,或用 --url。 - --experience、--salary 的码按网页筛选器校正:经验码此前整体错位一档,薪资低三档同样错位。同样的标签现在搜到正确的档位,结果会和以前不同。预设和 watch 存的是标签,升级后自动使用新码;10-15K 保留给旧预设,按包含它的 10-20K 档请求。 …View on GitHub ↗ -
v3.1.0 v3.1.0:对齐真实平台行为
Release notes excerpt
v3.1.0:对齐真实平台行为 这一版的主线只有一句:让 CLI 发出的请求更像真实浏览器,让它的节奏更像真人在用。 必须注意:默认请求间隔变了 --delay 的默认值从 1.5-3.0 秒改为 30-60 秒。 单条只读命令只发一次请求、首次调用不等待(boss status 仍约 0.3 秒),所以日常单条使用感觉不到差别;明显变慢的是分页、--welfare / --active 这类逐个查详情、以及 crawl。 依据是一次本机受控对照:15 秒间隔连续发 3 次 search,第 3 次就会拿到 code 37「您的环境存在异常」;拉到 30 秒以上,两轮共 6 次全部通过。这个下限来自观测,不是平台公布的安全阈值,也不构成"这样就不会被封"的承诺。 主要变更 …View on GitHub ↗ -
Release notes excerpt
What's Changed * fix: 完善配置校验与诊断提示并补齐发布验证 by @can4hou6joeng4 in https://github.com/can4hou6joeng4/boss-agent-cli/pull/445 * fix: 收紧安全依赖下界并定向更新锁文件 by @can4hou6joeng4 in https://github.com/can4hou6joeng4/boss-agent-cli/pull/446 * docs(showcase): 替换发布会动画与站点展示 by @can4hou6joeng4 in https://github.com/can4hou6joeng4/boss-agent-cli/pull/448 * docs(site): 同步站点能力文案与动画预览说明 by @can4hou6joeng4 in https://github.com/can4hou6joeng4/boss-agent-cli/pull/449 * fix: 修正招聘者交换联系方式误报失败并收紧确认按钮范围 by @can4hou6joeng4 in https://github.com/can4hou6joeng4/boss-agent-cli/pull/450 …View on GitHub ↗
FAQ
Can it automatically apply or contact recruiters in bulk?
COMPLIANCE_BLOCKED.Is it locked to one model provider?
What happens when login or platform-risk checks fail?
boss doctor, or use boss status --live for an optional low-frequency read-only probe. Error envelopes include code, recoverable, and recovery_action; automation stops on platform risk codes or security pages.Do research exports expose role or recruiter identifiers?
crawl results and exports do not expose security IDs, job IDs, or recruiter fields. boss clean --privacy deletes crawl state, budgets, and exports.