Skill: 筛选招聘岗位
使用前配置检查
每次执行前,先检查本文件是否仍包含以下占位符:
<YOUR_BASE_TOKEN><YOUR_TABLE_ID><YOUR_LARK_HOST>
如果任一占位符未替换,立即停止执行,并提示用户:
⚠️ 这个 Skill 还没有完成飞书配置,暂时不能写入岗位记录。
请先完成以下步骤:
1. 在飞书多维表格中准备岗位追踪表。
2. 将本 Skill 中的 <YOUR_BASE_TOKEN> 替换为你的 Base app/base token。
3. 将 <YOUR_TABLE_ID> 替换为目标数据表 table id。
4. 将 <YOUR_LARK_HOST> 替换为你的飞书域名,例如 feishu.cn。
5. 完成飞书 CLI/API 授权,并确认当前账号有目标 Base 的读写权限。
完成后再重新执行本 Skill。
如用户只想筛选岗位、不写入飞书,可以继续执行到「展示筛选结果」为止;在需要写入时再次提示完成上述配置。
触发方式
当用户说以下任意一种时,执行本 Skill:
- "帮我看看 [公司名] 有什么合适的岗位"
- "打开 [链接],帮我筛选岗位"
- "帮我找一下这几家公司的岗位:[公司列表]"
第零步:读取求职偏好
执行前先读取 references/job-preference.example.md。如果用户已经提供自己的偏好文件,优先读取用户文件;否则使用示例偏好并提醒用户按需修改。加载:
- 岗位优先级排序
- 推荐岗位清单
- 城市优先级
- 实习类型要求
第一步:接收用户输入
用户会提供以下任意组合:
- 一个或多个公司名
- 一个或多个招聘页面链接
- 临时偏好补充,如"这次只看上海的"、"只看 AI 方向"
将临时偏好叠加到 job-preference.md 的固定偏好上,仅本次生效,不修改配置文件。
第二步:登录检测
用浏览器控制工具打开招聘页面后,检测是否已登录。
判断逻辑:
- 页面出现"登录"、"注册"、"请先登录"、"Sign in"等字样
- 或页面跳转到了登录页
- 或页面内容为空/加载异常
检测到未登录时,停下来提示:
⚠️ [公司名] 招聘官网需要登录,请在浏览器中手动完成登录。
登录完成后回到招聘岗位页面,再告诉我「继续」。
收到「继续」后重新读取页面,确认登录成功再执行第三步。
第三步:浏览并筛选岗位
导航策略
- 优先寻找"校园招聘"、"实习生"、"intern"入口。
- 在岗位分类中寻找"产品"、"运营"、"商业分析"等类别。
- 按城市筛选,城市优先级来自
job-preference.md。 - 如果平台不支持某个城市筛选,跳过该城市,不报错。
关键词搜索规则
- 每次只用单个关键词,避免 AND 逻辑导致 0 结果。
- 推荐搜索顺序:产品经理 → AI 产品 → 策略产品 → 策略运营 → 产品运营 → 商业分析。
- 同一岗位被多次搜索命中时,去重保留一条。
筛选标准
优先保留:
- 岗位名称包含:产品经理、AI 产品、策略产品、功能产品、商业分析、产品运营。
- 工作城市符合偏好城市列表。
- 实习类型满足以下任意一条:
- 暑期实习 / summer intern
- 可转正实习
- 长期实习注明可转正
- 特殊项目制实习
- 无法判断类型时标注 ⚠️,不自动排除
排除:
- 纯技术开发类岗位,如前端、后端、算法、数据开发。
- 游戏方向岗位。
- 明确标注"不转正"或"仅兼职"的岗位。
对照推荐清单
提取完毕后,与 job-preference.md 中的推荐岗位对照:
- 清单有、页面找到:标注 ✅
- 清单有、页面未找到:标注 ❓
- 页面找到但清单没有:标注 🆕
第四步:展示筛选结果
每个岗位按以下格式展示:
✅/🆕/⚠️ N. 岗位名称
📍 城市:xxx ⏰ 截止:xxx(无则显示"未注明")
🔗 链接:xxx
📝 JD 摘要:100 字以内,提炼核心职责和任职要求关键词
🎯 推荐理由:结合岗位优先级、城市和实习类型说明
未找到的推荐岗位统一在末尾列出:
❓ 以下推荐岗位在当前平台未找到,可能尚未开放:
- [公司] · [岗位]
展示完提示:
请回复:
「全部记录」:将所有 ✅ 和 🆕 岗位写入飞书
「记录1,3」:只记录指定编号
「跳过」:不写入,只看结果
第五步:写入飞书
用户确认后写入飞书多维表格。
写入前再次检查:
<YOUR_BASE_TOKEN>、<YOUR_TABLE_ID>、<YOUR_LARK_HOST>均已替换。- 飞书 CLI/API 已完成授权。
- 当前用户对目标 Base 有写入权限。
- 目标表已创建字段映射中列出的字段。
任一条件不满足时,不执行写入,先引导用户补齐配置。
表格信息:
- app_token:
<YOUR_BASE_TOKEN> - table_id:
<YOUR_TABLE_ID>
写入要求:
- 使用字段名写入,不使用字段 ID。
- 使用用户身份操作,例如
--as user。 - 多选字段用数组。
- 日期字段按当前 CLI/API 要求转换为对应格式。
字段映射:
| 字段名 | 写入内容 |
|---|---|
| 公司 | 公司全称 |
| 机构类型 | 根据公司推断 |
| 岗位 | 岗位名称 |
| 城市 | 岗位城市 |
| 目前状态 | 固定填"未投递" |
| 投递截止时间 | yyyy/MM/dd,无则留空 |
| 链接 | 岗位链接 |
| 时间线1-投递 | 留空 |
| 时间线2-笔试 | 留空 |
| 时间线3-一面 | 留空 |
| 时间4-二面 | 留空 |
| 备注 | 留空 |
示例命令:
npx @larksuite/cli base +record-upsert \
--base-token <YOUR_BASE_TOKEN> \
--table-id <YOUR_TABLE_ID> \
--as user \
--json '{"公司":"xxx","岗位":"xxx","城市":["上海"],"目前状态":"未投递","链接":"https://..."}'
第六步:完成回复
✅ 已记录 N 个岗位到飞书待投递清单:
1. [公司] - [岗位] - [城市]
📊 查看飞书记录表:
https://<YOUR_LARK_HOST>/base/<YOUR_BASE_TOKEN>?table=<YOUR_TABLE_ID>