根据用户简历和求职意向,多渠道搜索匹配岗位,生成可交互看板,支持每日定时搜索。
必须同时满足以下两项,否则不执行搜索:
如果用户仅发了"帮我找工作"等触发指令但未上传简历,必须先要求上传简历,再进入意向收集。如果用户已有 .temp/job-hunter/profile.json 且明确表示复用,可跳过简历上传。
[1/6] 简历上传 → [2/6] 简历解析 → [3/6] 意向选择 → [4/6] 岗位搜索 → [5/6] 看板生成 → [6/6] 定期搜索设置
在每一步切换时,必须输出进度条提醒用户当前进度和下一步操作,格式如下:
---
**求职进度**: [1/6] 简历上传 [已完成] → [2/6] 简历解析 [已完成] → [3/6] 意向选择 **[当前]** → [4/6] 岗位搜索 → [5/6] 看板生成 → [6/6] 定期搜索
**下一步**: 请在下方选项中选择您的求职意向,选择完成后将立即开始搜索匹配岗位。
---
引导规则:
[当前] 标记)[已完成],未开始步骤不标记等待用户上传简历时的引导:
---
**求职进度**: [1/6] 简历上传 **[等待中]** → [2/6] 简历解析 → [3/6] 意向选择 → [4/6] 岗位搜索 → [5/6] 看板生成 → [6/6] 定期搜索
> **请上传您的简历文件**(支持 PDF / Word / 图片格式),上传后我将自动解析并提取关键信息。
---
看板生成后的引导:
---
**求职进度**: [1/6] 简历上传 [已完成] → [2/6] 简历解析 [已完成] → [3/6] 意向选择 [已完成] → [4/6] 岗位搜索 [已完成] → [5/6] 看板生成 [已完成] → [6/6] 定期搜索 **[当前]**
**下一步**: 是否需要开启每日定时搜索?每天早上自动搜索新岗位并增量更新看板,不错过任何机会。
---
用户上传简历文件(PDF/Word/图片),使用 docx/pdf/paddleocr-doc-parsing 技能解析内容,提取结构化信息。
必提取字段: 姓名、学历、学校、专业、工作年限、当前公司、当前职位
核心能力提取: 技能标签、行业经验、岗位类型、项目亮点、软技能
解析完成后,展示提取摘要供用户确认,然后进入 Step 1.5 收集求职意向。
使用 question 工具,以选项形式(非自由文本)收集求职意向。所有问题在同一个 question 调用中一起发出。
必选项:
| 问题 | 选项 | 多选 |
|---|---|---|
| ------ | ------ | ------ |
| 目标岗位方向 | 产品经理、解决方案经理、售前经理、项目管理、技术岗、运营、其他 | 是 |
| 期望城市 | 北京、上海、深圳、广州、杭州、成都、不限 | 是 |
| 期望月薪范围 | 15-20K、20-30K、30-50K、50K以上、面议 | 否 |
| 公司偏好 | 互联网大厂优先、央企/国企优先、不限 | 否 |
选选项(可根据用户画像智能判断是否需要问):
| 问题 | 选项 | 多选 |
|---|---|---|
| ------ | ------ | ------ |
| 重点目标公司 | 从简历行业经验推断推荐(如"华为、阿里、腾讯"),加"不限"选项 | 是 |
| 能否接受出差 | 经常出差可接受、偶尔出差可以、不接受 | 否 |
| 加班接受度 | 适度加班可接受、不接受加班 | 否 |
选项设计原则:
profile.json,加载历史选择作为默认值将简历解析结果 + 意向选择合并保存到 .temp/job-hunter/profile.json,格式:
{
"name": "张三",
"education": "硕士",
"school": "XX大学",
"major": "计算机",
"experience_years": 5,
"skills": ["Python", "大模型", "AI解决方案"],
"industries": ["人工智能", "数字政府"],
"target_roles": ["产品经理", "解决方案经理"],
"target_cities": ["北京"],
"salary_range": "20-30K",
"company_preference": "央企/国企优先",
"target_companies": ["华为", "阿里", "腾讯"],
"business_travel": "偶尔出差可以",
"overtime": "适度加班可接受",
"daily_search": true
}
详细评分逻辑参见 references/resume-parsing.md。
采用全量企业覆盖 + 平台扩散搜索策略,确保不错过任何匹配岗位。
企业名单以 references/company-list.md 为唯一来源,包含5大类100+家企业:
无论用户选择"不限"还是指定了公司偏好,搜索范围都必须至少覆盖 company-list.md 中的所有企业。
在BOSS直聘、猎聘等求职平台上,不能只搜用户指定的几家公司,而要根据用户选择的企业类型进行扩散搜索,保障覆盖面。
扩散规则:
执行方式:
"{目标岗位}" 招聘 {城市} 2026"{目标岗位}" 招聘 site:zhipin.com"{目标岗位}" 招聘 site:liepin.com"{核心技能1}" "{核心技能2}" 招聘"{公司名}" {目标岗位} 招聘 {城市} 2026"{公司A}" OR "{公司B}" OR "{公司C}" {目标岗位} 招聘 {城市} 2026注意:
search_recency_filter 限定时间范围(默认 week 或 month)__SEARCH_SCOPE__.searched_companies 中如实记录实际搜索过的企业名单当搜索引擎聚合数据不足,或用户要求从特定平台深度采集时:
对 company-list.md 中有官网的企业,如果搜索引擎结果不足,可通过官网补充:
公司列表和招聘官网URL参见 references/company-list.md
执行方式:
site:{官网域名} "{岗位关键词}" 社会招聘当搜索引擎聚合数据仍然不足时,可对BOSS直聘/猎聘等平台做更细粒度的搜索:
"{行业关键词}" {目标岗位} 招聘 {城市}"央企" OR "国企" {目标岗位} 招聘 {城市}"AI" OR "大模型" OR "人工智能" {目标岗位} 招聘 {城市}"智慧城市" OR "数字政府" {目标岗位} 招聘 {城市}详细渠道策略(含完整URL列表和反爬注意事项)参见 references/search-channels.md。
对搜索到的每个岗位,按以下维度打分(总分100):
| 维度 | 权重 | 评分依据 |
|---|---|---|
| ------ | ------ | ---------- |
| 岗位名称匹配 | 30分 | 目标岗位关键词与招聘标题的语义相似度 |
| 技能匹配 | 15分 | 简历技能与岗位要求的重叠度 |
| 行业匹配 | 15分 | 简历行业经验与招聘方行业的匹配度 |
| 学历匹配 | 15分 | 学历是否满足要求(超出一档加分) |
| 经验匹配 | 15分 | 工作年限是否在要求范围内 |
| 附加匹配 | 10分 | 城市、薪资期望、公司偏好等 |
同时生成 matchReason 字段,简要说明匹配原因。
使用看板模板生成本地HTML文件。
assets/dashboard-template.html__JOBS_DATA__ 占位符(JSON数组)__USER_PROFILE__ 占位符(JSON对象)__SEARCH_SCOPE__ 占位符(JSON对象,格式见下方)求职看板_YYYY-MM-DD.html搜索范围对象格式(__SEARCH_SCOPE__):
{
"target_roles": ["解决方案经理", "售前经理"],
"target_cities": ["北京"],
"salary_range": "30-50K",
"company_preference": "央企/国企优先",
"search_date": "2026-04-13",
"search_recency": "近1个月",
"search_channels": ["BOSS直聘", "猎聘", "中国电信官网", "百度聚合"],
"searched_companies": ["华为", "阿里", "腾讯", "百度", "字节跳动", "中国移动", "中国电信", "中国联通", "中交集团", "中国电子", "中车集团", "国网信通", "科大讯飞", "浪潮集团", "中兴通讯", "太极股份", "万达信息", "数字政通"]
}
其中 searched_companies 是本次搜索实际覆盖的所有企业完整名单(包含目标公司 + 搜索过程中涉及的其他公司),用于看板中展示"本次搜索覆盖的企业"。
看板特性:
看板生成完毕后,必须主动使用 question 工具询问用户是否开启定期搜索,不可跳过。
question:
header: "是否开启定期搜索?"
question: "看板已生成。是否需要开启每日定时搜索?开启后每天早上自动搜索新岗位,增量更新看板,不错过新机会。"
options:
- label: "开启,每天9:00自动搜索(推荐)"
description: "每天早上9点自动执行搜索,新岗位标注【新】,覆盖上次看板"
- label: "开启,自定义时间"
description: "设定其他自动搜索时间"
- label: "暂不开启"
description: "之后可随时要求开启"
如果用户选择开启:
0 9 *如果用户选择暂不开启: 记录到 profile.json 的 daily_search: false,后续每次生成看板时再次提醒。
如果用户已有历史数据(.temp/job-hunter/ 下的上次结果),支持增量对比,新发现的岗位在标题前标注"【新】"。
.temp/job-hunter/
├── profile.json # 用户简历画像(首次解析后保存)
├── jobs_YYYY-MM-DD.json # 每日搜索结果原始数据
└── history/ # 历史搜索结果(用于增量对比)
.temp/job-hunter/ 目录,不上传到任何外部服务共 1 个版本