Skills Plugins MCP Prompt Model 博客 我的中心

boss-zhipin-scraper

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. Use when user wants to search/analyze jobs on BOSS直聘 or zhipin.com.

DeepseekModel Curated skill Quality Excellent · 90 v1.0.0

Get

https://deepseekmodel.com/api/download.php?id=eatmoreduck-boss-zhipin-scraper-skill-md&format=skill
Download .skill Standard format with system_prompt and model_config, ready for any agent framework
The actual content of the system_prompt field in the .skill file.
name boss-zhipin-scraper 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. Use when user wants to search/analyze jobs on BOSS直聘 or zhipin.com. version 2.2.0 author eatmoreduck license MIT platforms ["macos","linux"] metadata {"hermes":{"tags":["scraper","jobs","career","cdp","chrome","zhipin","boss直聘"]}} BOSS直聘职位抓取工具 v2.2 通过 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 解析路径更通用): # 方法 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 中安装: uv add websocket-client requests # 或 pip install websocket-client requests 自动化流程 当用户要求搜索/抓取 BOSS直聘 职位时, 严格按以下顺序执行 : 第 1 步:检查环境 python3 " $SCRIPT_PATH " --check --cdp-port 9222 检查三项:Python 依赖 → CDP 连通性 → 登录态。 全部通过 → 跳到第 3 步 CDP 不通 → 继续第 2 步 依赖缺失 → 先装依赖(见上方依赖安装),再重新 --check 未登录 → 告诉用户打开 Chrome 登录 zhipin.com,然后重新 --check 第 2 步:启动 Chrome CDP(仅在 --check CDP 不通时) python3 " $SCRIPT_PATH " --setup-chrome --cdp-port 9222 这会自动完成: 创建或复用持久隔离 Chrome profile ~/.boss-zhipin-scraper/chrome-profile 只关闭使用该隔离 profile 的旧 BOSS CDP Chrome,不关闭用户主 Chrome 以 CDP 模式启动 Chrome( --remote-debugging-port=9222 ) 等待 CDP 端口就绪(最多 30 秒) 打开 BOSS 登录页并等待登录完成,直到搜索接口返回明文 salaryDesc 默认不复制主 Chrome 的 Cookie、密码、历史记录或扩展;首次启动和后续重复启动都只是创建或复用该专用 profile。首次使用时告诉用户:请在弹出的 BOSS 专用 Chrome 浏览器中访问 zhipin.com 并登录。脚本会等待登录完成并确认接口能返回明文薪资。该专用 profile 是持久目录,机器重启后登录态仍保留,重复运行 --setup-chrome 不会清空它。 仅当用户明确要求从主 Chrome 手动导入 BOSS 登录态时,可使用: python3 " $SCRIPT_PATH " --setup-chrome --copy-login-state --cdp-port 9222 --copy-login-state 每次运行都会覆盖隔离 profile 内对应的 Cookie 相关文件;日常启动不要加这个参数。它只复制 Local State 和 Default/Cookies* 、 Default/Network/Cookies* 这类 Cookie 数据库相关文件,不复制密码库或完整 profile。不要默认使用该参数,也不要告诉用户首次启动会自动导入主 Chrome 登录态。 等用户确认后,重新运行 --check 验证。 第 3 步:运行抓取 # 基础搜索 python3 " $SCRIPT_PATH " --keyword "关键词" --city 城市 --pages 3 --output ~/.boss-zhipin-scraper/job-result/jobs.json # 带 CSV 输出 python3 " $SCRIPT_PATH " --keyword "关键词" --city 城市 --pages 3 --format csv --output ~/.boss-zhipin-scraper/job-result/jobs.json # 带详情 + 分析报告 python3 " $SCRIPT_PATH " --keyword "关键词" --city 城市 --pages 3 --detail --max-details 8 --analysis --format csv --output ~/.boss-zhipin-scraper/job-result/jobs.json # 抓取后摘要 + 求职材料优化提示词(默认读取最新抓取结果) python3 " $SUMMARY_PATH " --top 15 # 真实浏览器/API smoke test(不写结果文件) python3 " $SCRIPT_PATH " --smoke-test --cdp-port 9222 # 合并多次抓取(去重) python3 " $SCRIPT_PATH " --keyword "关键词" --city 北京 --pages 3 --merge ~/.boss-zhipin-scraper/job-result/jobs.json --output ~/.boss-zhipin-scraper/job-result/jobs_merged.json 默认输出到 ~/.boss-zhipin-scraper/job-result/ 目录, --format csv 会给列表和详情都额外生成 .csv 文件。 --smoke-test 只验证真实 Chrome/CDP 能否拿到 API 明文薪资,不写结果文件。 抓取结束后专用 Chrome 不会自动关闭(默认保留登录态,方便连跑多条)。确认不再使用时收尾: # 关闭 BOSS 专用 Chrome(只关隔离 profile,不碰主 Chrome) python3 " $SCRIPT_PATH " --stop-chrome --cdp-port 9222 # 或:让本次抓取正常结束就自动关闭 python3 " $SCRIPT_PATH " --keyword "关键词" --city 城市 --pages 3 --close-chrome --stop-chrome 按 --user-data-dir 精准匹配,绝不按端口/进程名 kill,因此不会误伤用户主 Chrome。 --close-chrome 默认关闭,且只在抓取成功路径触发,异常/登录失败不关闭以保留登录态。 摘要脚本只读取 boss_jobs_*.json 和 boss_details_*.json ,不读取本地简历文件,不引入 PDF 依赖,也不给个人与岗位做分数判断。需要指定文件时使用: python3 " $SUMMARY_PATH " \ --input ~/.boss-zhipin-scraper/job-result/boss_jobs_20260625_1200.json \ --details ~/.boss-zhipin-scraper/job-result/boss_details_20260625_1200.json \ --top 15 参数速查 参数 默认值 说明 --keyword AI Agent 搜索关键词 --city 上海 城市名(中文)或 9 位代码;没传时默认上海,无法识别的城市名会报错退出 --pages 3 抓取页数(上限 10,每页 30 条) --output ~/.boss-zhipin-scraper/job-result/... 列表输出路径 --detail-output ~/.boss-zhipin-scraper/job-result/... 详情输出路径 --format json 输出格式: json / csv;csv 同时导出列表和详情 CSV --detail 开启(默认) 抓取详情页 JD --no-detail - 不抓取详情页(关闭默认行为) --max-details 全部 详情页数量上限 --analysis 关闭 输出分析报告 --allow-dom-fallback 关闭 API 无数据时允许降级 DOM 提取;默认关闭,薪资可能不可信 --merge FILE - 合并已有 JSON(按 job_id 去重) --cdp-port 9222 CDP 端口 --setup-chrome 关闭 一键启动 Chrome CDP(持久隔离 profile) --copy-login-state 关闭 手动导入主 Chrome 的 Local State + Cookie 相关文件到隔离 profile;默认、首次启动、重复启动都不复制 --reset-chrome-profile 关闭 重建 BOSS 专用 profile,会清除此专用浏览器登录态 --no-wait-login 关闭 --setup-chrome 启动后不等待 BOSS 登录完成 --login-timeout 300 --setup-chrome 等待登录完成的秒数 --stop-chrome 关闭 关闭 BOSS 专用 CDP Chrome(按隔离 profile 精准匹配,不碰主 Chrome) --close-chrome 关闭 抓取正常结束后自动关闭专用 Chrome(默认不关;异常退出不触发,保留登录态) --check 关闭 环境检查 --smoke-test 关闭 真实 Chrome/CDP 搜索 API smoke test,不写结果文件 --version - 查看版本号 筛选参数 参数 值 --scale 301=0-20人 302=20-99 303=100-499 304=500-999 305=1000-9999 306=10000+ --salary 402=3K以下 403=3-5K 404=5-10K 405=10-20K 406=20-50K 407=50K+ --experience 108=在校生 102=应届生 101=经验不限 103=1年内 104=1-3年 105=3-5年 106=5-10年 107=10年+ --degree 209=初中及以下 208=中专/中技 206=高中 202=大专 203=本科 204=硕士 205=博士 城市代码 全国 100010000 | 北京 101010100 | 上海 101020100 | 广州 101280100 | 深圳 101280600 | 杭州 101210100 | 成都 101270100 | 武汉 101200100 | 南京 101190100 | 厦门 101230200 输出格式 JSON { "keyword" : "AI Agent" , "city" : "上海" , "total" : 60 , "jobs" : [ { "job_id" : "c4420e8bce3a6e25" , "title" : "AI Agent工程师" , "salary" : "30-60K·15薪" , "location" : "上海·闵行区·虹桥" , "tags" : "5-10年 | 本科" , "boss_name" : "SHEIN" , "boss_title" : "招聘者" , "company_scale" : "10000人以上" , "company_stage" : "D轮及以上" , "company_industry" : "电子商务" , "skills" : "Java | Spring | AI" , "job_link" : "https://www.zhipin.com/job_detail/xxx.html" , "company_link" : "https://www.zhipin.com/gongsi/xxx.html" , "welfare" : "节日福利 | 零食下午茶 | 定期体检" } ] } CSV --format csv 时自动在同目录生成 .csv 文件:列表 CSV 跟随 --output ,详情 CSV 跟随 --detail-output 或默认详情 JSON 路径。CSV 使用 UTF-8 BOM 编码,Excel 直接打开无乱码。 工作原理 通过 Chrome DevTools Protocol (CDP) 连接到已打开的 Chrome 浏览器 在 BOSS直聘页面内注入 JS,用同步 XHR 调用 /wapi/zpgeek/search/joblist.json API API 返回明文 salaryDesc (如 30-60K·15薪 ),绕过前端字体反爬 列表 API 保留 securityId / lid 等上下文,进入详情页时带上这些参数 默认禁用 DOM fallback,避免把字体反爬后的薪资写入结果;只有显式 --allow-dom-fallback 才降级 每页 30 条,每页抓完立即写入文件,异常退出不丢数据 按 job_id (job_link 的 MD5 哈希前 16 位)去重 数据安全策略 --setup-chrome 默认使用持久隔离 profile,不软链接、不读取、不复制主 Chrome profile。首次启动和后续重复启动都只会创建或复用 ~/.boss-zhipin-scraper/chrome-profile ,不会清空其中的 BOSS 登录态。setup 会等待登录完成,并用多组关键词/城市 probe,要求搜索接口返回明文薪资;如果一直拿不到 salaryDesc ,不要继续抓取并把 DOM 薪资当成可信数据。这样 CDP 只暴露 BOSS 专用浏览器里的数据,不影响用户主 Chrome、Gmail、GitHub 等账号。 --input ... --analysis --no-detail 会优先加载 --detail-output ,其次加载与输入列表同目录、同时间戳的 boss_details_*.json ,最后查找 ~/.boss-zhipin-scraper/job-result 下最新详情文件。 需要清空 BOSS 专用浏览器登录态时使用: python3 " $SCRIPT_PATH " --setup-chrome --reset-chrome-profile --cdp-port 9222 常见问题 --check CDP 不通 → 运行 --setup-chrome --check 未登录 → 在专用 Chrome 中访问 zhipin.com 登录,或重新运行 --setup-chrome 薪资空白 → 通常是未登录、登录态失效或接口未返回 salaryDesc ;先重新登录,不要优先做字体解密或 DOM fallback 抓取中断 → 重新运行即可,增量写入 + 自动去重 端口占用 → --cdp-port 9223 换端口 Chrome 启动失败 → --cdp-port 9223 换端口,或用 --reset-chrome-profile 重建专用 profile 注意事项 仅用于个人求职研究 单次最多 10 页(300 条),防封号 翻页间隔 12-22 秒随机延迟,3 页约 1 分钟 详情页每条 10-25 秒,10 条约 3-5 分钟 BOSS直聘可能更新 API 路径,失效时需更新脚本中 API_JOB_LIST_PATH 常量 安装本 Skill 本 Skill 需手动安装到 Hermes skills 目录( hermes skills install 因网络问题可能失败): # 推荐:curl 一键安装 mkdir -p ~/.hermes/skills/data-science/boss-zhipin-scraper/scripts && \ curl -sL https://raw.githubusercontent.com/eatmoreduck/boss-zhipin-scraper/master/SKILL.md \ -o ~/.hermes/skills/data-science/boss-zhipin-scraper/SKILL.md && \ curl -sL https://raw.githubusercontent.com/eatmoreduck/boss-zhipin-scraper/master/scripts/boss_cdp_raw.py \ -o ~/.hermes/skills/data-science/boss-zhipin-scraper/scripts/boss_cdp_raw.py && \ curl -sL https://raw.githubusercontent.com/eatmoreduck/boss-zhipin-scraper/master/scripts/job_summary.py \ -o ~/.hermes/skills/data-science/boss-zhipin-scraper/scripts/job_summary.py && \ mkdir -p ~/.hermes/skills/data-science/boss-zhipin-scraper/data && \ curl -sL https://raw.githubusercontent.com/eatmoreduck/boss-zhipin-scraper/master/data/city_codes.json \ -o ~/.hermes/skills/data-science/boss-zhipin-scraper/data/city_codes.json 或克隆后手动复制: git clone https://github.com/eatmoreduck/boss-zhipin-scraper.git mkdir -p ~/.hermes/skills/data-science/boss-zhipin-scraper/scripts cp boss-zhipin-scraper/SKILL.md ~/.hermes/skills/data-science/boss-zhipin-scraper/ cp boss-zhipin-scraper/scripts/boss_cdp_raw.py ~/.hermes/skills/data-science/boss-zhipin-scraper/scripts/ cp boss-zhipin-scraper/scripts/job_summary.py ~/.hermes/skills/data-science/boss-zhipin-scraper/scripts/ mkdir -p ~/.hermes/skills/data-science/boss-zhipin-scraper/data cp boss-zhipin-scraper/data/city_codes.json ~/.hermes/skills/data-science/boss-zhipin-scraper/data/
Keywords that activate this skill. Click one to copy it.

This skill does not provide trigger words.

The downloaded .skill package contains the following fields.
Field Description
formatFormat tag (skill/v1)
skill_idUnique skill ID
nameSkill name
versionVersion
descriptionDescription
categoryCategories (array)
trigger_wordsTrigger words
tagsTags
sourceSource
source_urlSource URL (this page)
exported_atExported at (set per download)
system_promptSystem prompt body
model_configModel config: provider / model / temperature / max_tokens / top_p
examplesExamples
install_guideImport guide for Coze / Dify / Claude / custom frameworks
The same skill can be exported in different platform formats.
.skill Standard format with system_prompt and model_config, ready for any agent framework Download
.skillpro Enhanced format with scripts, tools, dependencies and hooks Download
.json Plain JSON export with system_prompt and model parameters only Download
Coze Markdown with frontmatter, for Coze platform import Download
Dify Dify DSL, import directly after creating an app Download

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。