猎聘职位搜索与卡片推荐
Overview
将用户的自然语言求职意图转换为猎聘开放接口 POST https://open-agent.liepin.com/mcp/search-job 的查询条件,取回结果后做薪资本地二次过滤,最终输出可点击的 Markdown 职位卡片(详情链接已内嵌官方渠道码,原样使用)。
每次调用前必须确认 token 可用。未配置 token 时先走认证引导,未完成禁止发起搜索。
When to Use
- 用户描述找岗需求:城市、职位名、薪资、学历、经验、公司性质、指定公司
- 用户要求翻页或调整条件:"换一批""更多""只要浦东的""不要外包"
- 用户询问某公司在招岗位或某类机会的行情(基于真实搜索结果回答,不编造总数)
Workflow
Step 1 — 确认 token(未完成禁止搜索)
读取会话环境变量 LIEPIN_USER_TOKEN。已存在则进 Step 3 先做一次真实搜索验证;不存在,或验证返回 401/403,按 references/auth.md 引导用户本人完成授权与配置,验证通过后再继续。
Step 2 — 提取搜索条件
只把用户明确提到的条件写入请求体,未提到的不加键。参数名与取值口径见 references/api_reference.md。两个高频错误:
salaryFloor/salaryCap必须传纯数字(元):"25k 以上" 传"25000";传"25k"会被服务端静默忽略、不过滤(2026-09-03 实测)page首页为0,用户要"更多"时 +1
Step 3 — 调用搜索接口
优先执行脚本(已实测;自动读取 token、只装配非空参数、统一错误处理):
- Windows PowerShell:
powershell
powershell -ExecutionPolicy Bypass -File scripts/search_job.ps1 -JobName "Java开发" -Address "北京" -SalaryFloor "25000" -Page 0
- macOS / Linux Bash:
bash
bash scripts/search_job.sh --job-name "Java开发" --address "北京" --salary-floor "25000" --page 0
宿主无脚本执行能力时,按 references/api_reference.md 的「等价 HTTP 调用」小节用等价 HTTP 工具复现:POST JSON + 请求头 x-user-token,中文参数须保持 UTF-8(charset=utf-8 不可省)。
宿主既无脚本也无 HTTP 工具时,按 references/auth.md 的「CLI 兜底」小节引导用户安装官方 CLI 并用 liepin-cli job search 完成搜索,参数与上表一一对应(snake_case),务必带 --output json。
Step 4 — 解析与薪资本地二次过滤
返回契约与字段含义见 references/api_reference.md。约定:顶层 code 非 0 视为失败。
服务端薪资过滤是"区间交集"语义(实测 salaryFloor=25000 时 15-40k、20-30k 仍会返回),因此当用户明确要求"XXk 以上 / 以下"时,必须解析每条 salary 的区间下限(如 15-40k·13薪 取 15)做本地过滤,剔除不满足的条目,并在结果前如实说明"已按薪资条件筛掉部分结果,每页剩余条数可能不固定"。
Step 5 — 组装卡片输出
每条职位一张卡片,字段缺失的行省略:
### 1. {jobName} [查看]({jobDetailUrl})
💰 {salary} | 📍 {location} | 🏢 {company}
{workYears} / {education}
列表前加一句自然语言概括(含搜索条件复述);列表后视情况补一句引导,如"可以说『换一批』或『只要浦东的』继续筛选"。
jobDetailUrl 已内嵌官方渠道码 mscid=soai_pc_001,原样使用,禁止改动或重复拼接(猎头职位为 /a/ 路径,同样原样使用)。
规则边界
- 只搜索,不投递、不碰简历:用户要求投递或完善简历时,说明当前版本未开放该能力,建议用户自行到猎聘 App 操作
- 数量表述只做模糊描述("搜到一些""不少""较多"),禁止编造具体总数
- 翻页默认
page 0,每页条数以返回为准;做过薪资本地过滤时每页条数不固定,需提前告知 - 无结果时给降级话术("没有搜到符合条件的职位")并建议放宽条件(去掉薪资 / 学历限制)
- 多轮筛选基于上一轮条件调整后重新搜索;接口不支持排除类条件,用更精确的正向条件替代(如换
jobName关键词) - 禁止替用户输入猎聘账号密码或验证码
失败处理
| 现象 | 处理 |
|---|---|
| 401 / 403(token 失效) | 按 references/auth.md 引导用户回授权页重置 token 并更新环境变量 |
| 限流(60 次/分钟共用配额) | 告知用户稍等片刻再试 |
| 网络失败 | 展示原始报错,建议检查网络后重试 |
Resources
scripts/
search_job.ps1— Windows PowerShell 直调脚本,实测可用。参数对应 Step 2 的搜索条件,自动从环境变量读取 token,仅装配非空参数,输出原始 JSONsearch_job.sh— macOS / Linux 等价实现,基于 curl + jq,参数用 snake_case 长选项
两个脚本的注释均为 ASCII:Windows PowerShell 5.1 读取无 BOM 的 UTF-8 脚本时中文注释会乱码,中文说明统一放在 SKILL.md 与 references 中。
references/
auth.md— token 获取与配置全流程、有效期与失效处理、CLI 兜底方案、面向用户的引导话术。首次使用或遇到 401/403 时加载api_reference.md— 接口完整契约:请求参数全表与取值口径、响应字段、jobDetailUrl 渠道码规则、薪资本地过滤规则与示例、等价 HTTP 调用模板、错误码与限流。组装请求或解析返回时加载