boss-cli
- Repo stars 745
- Author updated Live
- Author repo boss-cli
- Domain
- Other · boss · zhipin · boss直聘
- Compatible agents
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- Trust score
- 98 / 100 · audit passed
- Author / version / license
- @jackwener · v0.3.0 · no license declared
- Token usage
- Lean
- Setup complexity
- Guided setup
- External API key
- Not required
- Operating systems
- Unspecified (assume cross-platform)
- Runtime requirements
- Python >=3.10
- Permissions
-
- Read-only
- Write / modify
- Shell exec
- Network behavior
- Local-only
- Install commands
- 26 variants
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
---
name: boss-cli
description: uv tool install kabi-boss-cli uv tool upgrade kabi-boss-cli boss status --json 2>/dev/null | jq…
category: other
runtime: Python
---
# boss-cli output preview
## PART A: Task fit
- Use case: uv tool install kabi-boss-cli uv tool upgrade kabi-boss-cli boss status --json 2>/dev/null | jq -r '.authenticated' | grep -q true && echo "AUTHOK" || echo "AUTHNEEDED" If AUTH_OK, skip to Command Reference. runs entirely locally; runs on Python >=3.10. Works with Claude Code, Cursor, Cline and 23 more..
- Inputs: target material, constraints, expected output, and acceptance criteria.
- Evidence boundary: follow “Setup / Authentication / Step 0: Check if already authenticated” and do not present inference as author intent.
## PART B: Execution result
- **01** The card summarizes the use case; runtime output centers on “uv tool install kabi-boss-cli uv tool upgrade kabi-boss-cli boss status --json 2>/dev/null | jq -r '.authenticated' | grep -q true && echo "AUTHOK" || echo "AUTHNEEDED" If AUTH_OK, skip to Command Reference. runs entirely locally; runs on Python >=3.10. Works with Claude Code, Cursor, Cline and 23 more.”.
- **02** When the source has headings, the agent prioritizes “Setup / Authentication / Step 0: Check if already authenticated” so the result follows the author’s structure.
- **03** Typical output includes task judgment, concrete steps, required commands or file edits, validation, and follow-up options.
- **04** Risk context follows the fingerprint: read files, write/modify files, run shell commands; mostly runs locally; usually needs no extra API key.
## Running Rules
- read files, write/modify files, run shell commands; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding scope.
- Return the result, validation criteria, and next iteration options. The source does not require a stable slash command. After installation, invoke the skill by name and describe the task.
Name target files or source material, expected output, forbidden changes, and whether network or shell access is allowed. Permission fingerprint: read files, write/modify files, run shell commands.
Start with a small task and check whether the result follows “Setup / Authentication / Step 0: Check if already authenticated”. Inspect diffs, logs, previews, or tests before expanding scope.
Confirm the final output includes a concrete result, evidence, and next action. If it stays generic, tighten inputs, boundaries, and acceptance criteria.
---
name: boss-cli
description: uv tool install kabi-boss-cli uv tool upgrade kabi-boss-cli boss status --json 2>/dev/null | jq…
category: other
source: jackwener/boss-cli
---
# boss-cli
## When to use
- uv tool install kabi-boss-cli uv tool upgrade kabi-boss-cli boss status --json 2>/dev/null | jq -r '.authenticated' |…
- Use it when the task has clear inputs, repeatable steps, and validation criteria.
## What to provide
- Target material, scope, expected result, and forbidden changes.
- Whether network, commands, file writes, or external services are allowed.
## Execution rules
- Organize steps around “Setup / Authentication / Step 0: Check if already authenticated” and keep inference separate from source facts.
- read files, write/modify files, run shell commands; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding the task.
## Output requirements
- Return the deliverable, key evidence, validation method, and next action.
- Mark missing information as unknown; do not invent commands, platforms, or dependencies. The author source anchors workflow facts; repository files anchor sources and commands; Fluxly only adds fit, limitations, and quality judgment.
skill "boss-cli" {
input -> user goal + target files + boundaries + acceptance criteria
context -> Setup / Authentication / Step 0: Check if already authenticated
rules -> SKILL.md triggers / order / output contract
runtime -> Python | read files, write/modify files, run shell commands | mostly runs locally
guardrails -> usually needs no extra API key + small-sample validation + diff/log review
output -> copyable result + checklist + next iteration
} boss-cli — BOSS 直聘 CLI Tool
Binary: boss
Credentials: browser cookies (auto-extracted from 10+ browsers) or QR code login (--qrcode)
Setup
# Install (requires Python 3.10+)
uv tool install kabi-boss-cli
# Or: pipx install kabi-boss-cli
# Upgrade to latest (recommended)
uv tool upgrade kabi-boss-cli
# Or: pipx upgrade kabi-boss-cli
Authentication
IMPORTANT FOR AGENTS: Before executing ANY boss command, check if credentials exist first. Do NOT assume cookies are configured.
Step 0: Check if already authenticated
boss status --json 2>/dev/null | jq -r '.authenticated' | grep -q true && echo "AUTH_OK" || echo "AUTH_NEEDED"
If AUTH_OK, skip to Command Reference.
If AUTH_NEEDED, proceed to Step 1.
Step 1: Guide user to authenticate
Ensure user is logged into zhipin.com in any supported browser (Chrome, Firefox, Edge, Brave, Arc, Chromium, Opera, Vivaldi, Safari, LibreWolf). Then:
boss login # auto-detect browser with valid cookies
boss login --cookie-source chrome # specify browser explicitly
boss login --qrcode # QR code login — scan with Boss app
Verify with:
boss status
boss me --json | jq '.data.name'
Step 2: Handle common auth issues
| Symptom | Agent action |
|---|---|
环境异常 (__zp_stoken__ 已过期) |
Run boss logout && boss login |
未登录 |
Run boss login |
| Rate limited (code=9) | Auto-cooldown built-in; wait and retry |
| API timeout | Check network, retry |
Agent Defaults
All machine-readable output uses the envelope documented in SCHEMA.md.
Payloads live under .data.
- Non-TTY stdout → auto YAML
--json/--yaml→ explicit format- Rich output → stderr (safe for pipes:
boss search X --json | jq .data)
Command Reference
Search & Browse
| Command | Description | Example |
|---|---|---|
boss search <keyword> |
Search jobs with filters | boss search "golang" --city 杭州 --salary 20-30K |
boss show <index> |
View job #N from last search | boss show 3 |
boss detail <securityId> |
View full job details | boss detail abc123 --json |
boss export <keyword> |
Export search results to CSV/JSON | boss export "Python" -n 50 -o jobs.csv |
boss recommend |
Personalized recommendations | boss recommend -p 2 --json |
boss history |
View browsing history | boss history --json |
boss cities |
List supported cities | boss cities |
Personal Center
| Command | Description | Example |
|---|---|---|
boss me |
View profile (name, age, degree) | boss me --json |
boss applied |
View applied jobs | boss applied -p 1 --json |
boss interviews |
View interview invitations | boss interviews --json |
boss chat |
View communicated bosses | boss chat --json |
Actions
| Command | Description | Example |
|---|---|---|
boss greet <securityId> |
Greet a boss / apply | boss greet abc123 --json |
boss batch-greet <keyword> |
Batch greet from search | boss batch-greet "Python" --city 杭州 -n 5 |
boss batch-greet <keyword> --dry-run |
Preview without sending | boss batch-greet "golang" --dry-run |
Account
| Command | Description |
|---|---|
boss login |
Extract cookies from browser (auto-detect, fallback QR) |
boss login --cookie-source <browser> |
Extract from specific browser |
boss login --qrcode |
QR code login only (terminal QR output) |
boss status |
Check authentication status (shows cookie names) |
boss logout |
Clear saved credentials |
Search Filter Options
| Filter | Flag | Values |
|---|---|---|
| City | --city |
北京, 上海, 杭州, 深圳, etc. (use boss cities for full list) |
| Salary | --salary |
3K以下, 3-5K, 5-10K, 10-15K, 15-20K, 20-30K, 30-50K, 50K以上 |
| Experience | --exp |
不限, 在校/应届, 1年以内, 1-3年, 3-5年, 5-10年, 10年以上 |
| Degree | --degree |
不限, 大专, 本科, 硕士, 博士 |
| Industry | --industry |
互联网, 电子商务, 游戏, 人工智能, 金融, 教育培训, 医疗健康, etc. |
| Company Scale | --scale |
0-20人, 20-99人, 100-499人, 500-999人, 1000-9999人, 10000人以上 |
| Funding Stage | --stage |
未融资, 天使轮, A轮, B轮, C轮, D轮及以上, 已上市, 不需要融资 |
| Job Type | --job-type |
全职, 兼职, 实习 |
Agent Workflow Examples
Search → Batch Greet pipeline
# Preview first
boss batch-greet "golang" --city 杭州 --salary 20-30K --dry-run
# Then execute
boss batch-greet "golang" --city 杭州 --salary 20-30K -n 10 -y
Search → Detail pipeline (structured)
# Search and extract securityId
SEC_ID=$(boss search "golang" --city 杭州 --json | jq -r '.data.jobList[0].securityId')
# Get full detail
boss detail "$SEC_ID" --json | jq '.data.jobInfo | {jobName, salaryDesc, skills}'
Daily job check workflow
boss recommend --json | jq '.data.jobList | length' # Check recommendations count
boss search "Python" --city 杭州 --json # Search specific jobs
boss show 1 # View top result details
boss applied --json # Check application status
boss interviews --json # Check interview invitations
boss chat --json # Check messages
boss history --json # Review browsing history
Export pipeline
boss export "golang" --city 杭州 --salary 20-30K -n 50 -o jobs.csv
boss export "Python" -n 100 --format json -o jobs.json
Profile check
boss me --json | jq '.data | {name, age, degreeCategory}'
Error Codes
Structured error codes returned in the error.code field (see SCHEMA.md):
not_authenticated— cookies expired or missingrate_limited— too many requests (auto-cooldown built-in)invalid_params— missing or invalid parametersapi_error— upstream API errorunknown_error— unexpected error
Limitations
- No message sending — cannot send chat messages (MQTT/Protobuf required)
- No resume editing — cannot edit resume from CLI
- No company search — company pages return HTML (need zp_stoken)
- Single account — one set of cookies at a time
- Rate limited — batch-greet has built-in 1.5s delay between greetings
Anti-Detection Notes for Agents
- Do NOT parallelize requests — built-in Gaussian jitter delays exist for account safety
- Rate-limit auto-recovery: if code=9 occurs, client auto-cools-down with increasing delays (10s→20s→40s→60s) and retries once
- Use
-vflag for debugging:boss -v search "Python"shows request timing - Batch greet limit: recommend ≤ 10 greetings per session to avoid detection
- Cookies auto-refresh: if ≥ 7 days old, boss-cli auto-tries browser extraction
- Re-login if
__zp_stoken__expires: runboss logout && boss login
Safety Notes
- Do not ask users to share raw cookie values in chat logs.
- Prefer local browser cookie extraction over manual secret copy/paste.
- If auth fails, ask the user to re-login via
boss login. - Agent should treat cookie values as secrets (do not echo to stdout).
- Built-in rate-limit delay protects accounts; do not bypass it.
Decide Fit First
Design Intent
How To Use It
Boundaries And Review