# Boss Zhipin Scraper

Scrape BOSS直聘 (job listing site) via Chrome CDP.

- Repository: https://github.com/eatmoreduck/boss-zhipin-scraper (1686 stars)
- Category: AI and agents
- License: MIT
- Last updated: 2026-10-28
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add eatmoreduck/boss-zhipin-scraper --skill boss-zhipin-scraper -g -a claude-code -y`
Codex: `npx skills add eatmoreduck/boss-zhipin-scraper --skill boss-zhipin-scraper -g -a codex -y`
Cursor: `npx skills add eatmoreduck/boss-zhipin-scraper --skill boss-zhipin-scraper -g -a cursor -y`
Gemini CLI: `npx skills add eatmoreduck/boss-zhipin-scraper --skill boss-zhipin-scraper -g -a gemini-cli -y`

## Description

Scrape BOSS直聘 (job listing site) via Chrome CDP. Searches jobs by keyword/city/filters, fetches JD details, outputs structured JSON/CSV with plaintext salary, and can summarize scraped results into a job-market prompt. Optional --company locally filters results by company name (boss_name substring) with no extra request. Use when user wants to search/analyze jobs on BOSS直聘 or zhipin.com.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# BOSS直聘职位抓取工具 v2.3

通过 Chrome CDP 协议抓取 BOSS直聘 (zhipin.com) 职位数据，输出结构化 JSON/CSV（含明文薪资），并可对已抓取结果生成聚合摘要和求职材料优化提示词。

## 前置条件

- Chrome 浏览器已安装
- Python 3.10+
- 用户已登录 zhipin.com（或愿意手动登录）

## 脚本位置

本 skill 的脚本在 skill 目录下：

- `scripts/boss_cdp_raw.py`：抓取主脚本
- `scripts/job_summary.py`：抓取后摘要和提示词脚本

**运行任何命令前，必须先确定脚本的绝对路径。**

用以下方式找到脚本（macOS 自带的 `readlink` 不支持 `-f`，用 Python 解析路径更通用）：

```bash
# 方法 1：已知 skill 安装目录（推荐，macOS/Linux 通用）
SKILL_DIR="$(python3 -c "import os,sys;print(os.path.dirname(os.path.realpath(sys.argv[1])))" "$0")"
SCRIPT_PATH="$SKILL_DIR/scripts/boss_cdp_raw.py"
SUMMARY_PATH="$SKILL_DIR/scripts/job_summary.py"

# 方法 2：搜索 hermes skills 目录
SCRIPT_PATH=$(find ~/.hermes/skills -name "boss_cdp_raw.py" -type f 2>/dev/null | head -1)
SUMMARY_PATH=$(find ~/.hermes/skills -name "job_summary.py" -type f 2>/dev/null | head -1)
```

如果找不到脚本，说明 skill 未正确安装，需要重新安装。

## 依赖安装（首次使用必须执行）

脚本依赖 `websocket-client` 和 `requests`。在用户项目的 venv 中安装：

```bash
uv add websocket-client requests
# 或
pip install websocket-client requests
```

## 自动化流程

当用户要求搜索/抓取 BOSS直聘 职位时，**严格按以下顺序执行**：

### 第 1 步：检查环境

```bash
python3 "$SCRIPT_PATH" --check --cdp-port 9222
```

检查三项：Python 依赖 → CDP 连通性 → 登录态。

- **全部通过** → 跳到第 3 步
- **CDP 不通** → 继续第 2 步
- **依赖缺失** → 先装依赖（见上方依赖安装），再重新 --check
- **未登录** → 告诉用户打开 Chrome 登录 zhipin.com，然后重新 --check

### 第 2 步：启动专用浏览器 CDP（仅在 --check CDP 不通时）

```bash
python3 "$SCRIPT_PATH" --setup-chrome --cdp-port 9222
```

这会自动完成：
1. 创建或复用持久隔离 Chrome profile
   - `~/.boss-zhipin-scraper/chrome-profile`
2. 只关闭使用该隔离 profile 的旧 BOSS CDP Chrome，不关闭用户主 Chrome
3. 以 CDP 模式启动 Chrome（`--remote-debugging-port=9222`）
4. 等待 CDP 端口就绪（最多 30 秒）
5. 打开 BOSS 登录页并等待登录完成，直到搜索接口返回明文 `salaryDesc`

默认不复制主 Chrome 的 Cookie、密码、历史记录或扩展；首次启动和后续重复启动都只是创建或复用该专用 profile。首次使用时告诉用户：请在弹出的 BOSS 专用 Chrome 浏览器中访问 zhipin.com 并登录。脚本会等待登录完成并确认接口能返回明文薪资。该专用 profile 是持久目录，机器重启后登录态仍保留，重复运行 `--setup-chrome` 不会清空它。

仅装 Microsoft Edge（未装 Chrome）的机器，可改用 Edge 启动（与 `--setup-chrome` 共用同一隔离 profile）：

The rest: https://github.com/eatmoreduck/boss-zhipin-scraper/blob/HEAD//SKILL.md
