Observed since 20 Oct, 20:23 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
前程无忧自动化 CLI:候选人列表、Hi聊发消息、获取简历、人才搜索、职位管理。基于 puppeteer-core/CDP 驱动本机 Chrome,适合 AI Agent 招聘自动化
基于 puppeteer-core / CDP(Chrome DevTools Protocol)驱动本机浏览器的前程无忧(51job)企业招聘端自动化 CLI。 适合被 AI Agent 引擎、shell 脚本或其他无人值守工具直接拉起做管线编排。
--json 单文件结构化流式吐出。注:本仓库为原子能力调用 CLI。 你可能在寻找的「定时循环、基于画像初发筛选、简历日报整理」等调度侧工作流位于下游仓库的
skills/recruit-daily-51job/。
CHROME_PATH 控制)。全局直接安装为可执行命令(推荐)
npm install -g 51job-cli
或 Clone 源码编译调试:
git clone https://github.com/se7enfive/51job-cli.git && cd 51job-cli
npm install && npm run build
npm link
用户级复制一份预设的环境变量模板即可(可根据机器性能、使用习惯进行调整):
cp .env.example ~/.51job-cli/.env
共有 18 项主要可用动作模块(可随时键入 51job --help 查看全参数帮助):
| 命令 | 描述 |
|---|---|
login | 打开并聚焦至 51job eHire 登录页面并立刻返回(登录态由后续 wait-login 或首个业务命令检测)。 |
wait-login [--timeout <秒>] | 轮询探测登录态;成功退出 0、超时退出 1(默认 300s)。 |
shutdown | 关闭常驻浏览器进程(Cookie / 会话资料仍保留在本地 Profile 目录)。 |
doctor | 环境自检(Chrome 路径、Node 版本、数据目录、浏览器模式)。只读。 |
update | 打印升级指引(实际执行 npm install -g 51job-cli@latest)。 |
probe | 开发调试:DOM 选择器校准快照(普通场景无用)。 |
| 命令 | 描述 |
|---|---|
list [--unread] | 工作台投递箱全职位聚合候选人流(不分职位;每人 index/姓名/时间/画像/未读)。序号与 chat --index 一致。按职位筛选请用 positions --candidates。 |
search <关键词> | 人才搜索池查询,支持十三维筛选(--exp/--age/--gender/--city/--residence/--edu/--school/--status/--industry/--func/--salary/--work-industry/--work-func),--json 输出对象 {keyword,count,hits,...}。--position <职位名>(与关键词互斥)按你发布的职位搜索:自动注入该职位期望工作地/学历筛选并锁定搜索范围(--scope my|org 选视图),显式 --city 等参数覆盖注入值。 |
recommend [岗位] | 人才望远镜推荐池(按岗位的系统推荐,不耗点数)。--greet/--inspect 可直接打招呼/查详情。 |
positions [--candidates <职位名>] | 职位管理页在招职位目录;--candidates 拉取该职位候选人,--source <auto|delivery|search> 控制来源(auto=按有无投递分派 / delivery=仅投递 / search=人才池搜索扩充),--scope <my|org> 切视图。 |
jd <名称> [--cat] | 抓取职位 JD 长文缓存到 ~/.51job-cli/jd/,--cat 直出正文。 |
已投递 / 已聊天 / 已在人才管理列表 → talent-detail
主动人才搜索池 / search 返回的 hits → inspect
人才望远镜推荐池 → recommend --inspect
不要混用 inspect 和 talent-detail:两者访问的是不同候选人来源。talent-detail --hi 是免费「回复」(只打开聊天面板);inspect --hi 是搜索池「立即Hi聊」(消耗点数)。两者都不会替你发送普通文字,发送文字需先打开会话再运行 chat + send。
最小调用示例:
# 已投递候选人:查看简历
51job talent-detail 张三 --strict --json
# 搜索池候选人:先搜索,再查看详情
51job search "测绘工程师" --json
51job inspect 张三 --json
# 已知稳定简历 ID:优先使用直链
51job talent-detail --resume-id <简历ID> --json
51job inspect --resume-id <简历ID> --json
| 命令 | 描述 |
|---|---|
inspect <姓名> [--job <岗位>] [--index <序号>] [--hi] | 仅用于主动人才搜索池:查看搜索结果中的候选人简历(只读不耗点数)。不要用它查已投递/已聊天候选人;后者用 talent-detail。--hi 执行搜索池「立即Hi聊」(消耗点数,不是普通文字回复)。支持 --resume-id <简历ID> [--job-id <职位ID>] 直链;直链 --hi 必须带 --job-id。 |
talent-detail <姓名> [--strict] [--hi] | 仅用于已投递、已聊天或已在人才管理列表中的候选人:从人才管理页查看结构化简历。不要用它查主动搜索池候选人;后者用 inspect。--hi 只点击免费「回复」打开沟通面板,不发送普通文字,也不是搜索池「立即Hi聊」。支持 --resume-id 直链;直链 --hi 需同时带 --job-id。 |
preview <姓名> | 在线简历截图存档到 ~/.51job-cli/ocr/(每日次数有限;51JOB_RESUME_OCR=1 才上传云端 OCR,opt-in)。 |
greet [姓名] [--job <岗位>] [--by-index <序号>] [--dry-run] [--no-confirm] | 搜索池候选人的 Hi聊一站式命令:搜索筛选 → 定位 → 详情摘要 → 人机确认 → 发出。写操作耗点数;--dry-run 只看不发。已投递/已聊天候选人不要用 greet,请用 talent-detail + chat/send。成功 0 / 点数不足或失败 1。 |
chat [姓名] [--index <序号>] [--unread] [--strict] | 打开已投递/聊天候选人的聊天会话(供后续 send/action 使用),不发送消息。不要把 search 结果序号直接当作 chat --index;chat --index 只认 list 输出的序号。 |
send --text <文案> | 向当前已打开的聊天会话发送一条普通文字;必须先 chat,一次只发送一遍,不自动重试。 |
action <操作> [--no-confirm] | 会话业务动作:resume(索要简历)/unsuitable(不合适)/note(备注)/wechat(换微信)/phone(换电话)/interview(约面试)。写操作默认人机确认。 |
为保证跨平台多环境与个人信息规范体系防泄露:
preview 对于人选全记录抓取的默认保存格式只提供本机纯位图 PNG 镜像快照(默认保存在 ~/.51job-cli/ocr/)。它不会执行跨网上传云打码,除非用户清晰配置环境变量 51JOB_RESUME_OCR=1 声明 opt-in(采用百度智能云组件)。51job clean
Download counts and popularity will appear here as the collector receives them.
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 20:23 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:339c7a4c5e403169b9d1c0a767c76128409a7ecf30b68361a23e685ebe8be0a1