taxue-job-search
按地区、学历、企业类型精准搜索真实在招岗位,交叉验证多来源。双引擎:A 腾讯校招官方 API 直连(join.qq.com,无需鉴权),B 全平台搜索(有 argo 用 argo job/search 多平台聚合,无 argo 用基础搜索兑底)。两引擎可独立工作,协同时交叉验证。不是职业建议,是查招聘信息。Search real job listings by region, education,
Files9
View on GitHubSKILL.mdskills/taxue-job-search/SKILL.md
GitHubtaxue-job-search:真实在招岗位搜索(双引擎)
不是「搜到一个结果就停」,是「交叉验证多个来源,给你可行动的结论」。
双引擎架构:
| 引擎 | 数据源 | 依赖 | 适用 |
|---|---|---|---|
| A:腾讯官方 API | join.qq.com 公开接口 | 仅 Python 标准库 | 腾讯系校招/实习/青云岗位、公告、宣讲会 |
| B:全平台搜索 | argo job 多平台聚合 / 基础搜索 |
argo CLI(无则用 web_fetch) | BOSS/猎聘/智联/前程无忧/ncss 等全平台 |
引擎路由规则(见下方「搜索流程」):
- 意图含「腾讯/鹅厂/校招」→ 引擎 A 为主,引擎 B 交叉验证
- 其他平台/全平台 → 引擎 B 为主;结果中出现腾讯系岗位时可用引擎 A 核实官方 JD
- 两引擎单独都能工作,协同时输出标注各自来源
Outcome Contract
- 产出:用户拿到当前可报名的岗位列表,每个岗位附可直接打开的链接、截止时间和关键条件。
- 做完的标准:至少覆盖 2-3 个不同来源类型,每个有效岗位都有可打开的详情页。没有岗位时诚实报告「未找到」,不编造。
- 不做的事:不评价岗位好坏,不做职业方向诊断,不建议投递哪个。job-search 只查信息。
参考文件(按需读取)
| 文件 | 何时读取 | 内容 |
|---|---|---|
references/platforms.md |
开始搜索时 | 8 类来源平台速查表 + 按意图域选来源 |
references/search-strategies.md |
构造搜索词时 | 关键词模板、时效判断、学历匹配、用工形式、argo/基础搜索分层 |
references/tencent-engine.md |
路由到引擎 A 时 | 腾讯官方 API 脚本用法、数据字段、红线、缓存与重试 |
references/work-permit.md |
仅当求职地需要工作准证时 | 准证 / sponsorship 核验规则(中国大陆岗位不适用) |
输出纪律(硬门):脚本默认紧凑输出,且岗位/匹配列表只渲染前 30 条,positions_total / matches_total 会标明实际总数。不要为了「看全」加 --full——全量近千条会直接撑爆上下文。需要更多条目时用 --limit N 逐级放大,且脚本原始 JSON 不得整段进入正文。
输入解析
从用户消息中提取以下维度(缺哪个就用哪个做搜索关键词):
| 维度 | 示例 | 默认值 |
|---|---|---|
| 地区 | 福建省三明市、广东、全国 | 必须 |
| 学历 | 专科/大专、本科、硕士 | 不限 |
| 企业类型 | 国企、央企、外企、民企、事业单位 | 不限 |
| 行业 | 教育、医疗、工程、金融、IT、制造业、互联网、科技 | 不限 |
| 时间要求 | 最近、本月、当前可报名 | 默认当前可报名 |
| 其他条件 | 年龄、专业、工作性质 | 不限 |
搜索流程
第 0 步:引擎路由
- 用户意图含「腾讯 / 鹅厂 / join.qq.com / 腾讯校招 / 腾讯实习」→ 引擎 A 为主
- 其他招聘意图 → 引擎 B 为主(腾讯系岗位出现时,可用引擎 A 核实官方 JD)
- 无法判断时默认引擎 B,B 覆盖不到官方公告类信息时提示可查腾讯引擎
第 1 步:引擎 A(腾讯官方 API)执行
读取 references/tencent-engine.md,运行:
# 岗位搜索:关键词 + 可选城市/岗位类别筛选
python3 scripts/fetch_recruit_jds.py search --keyword "<岗位+技能>" --page-size 20
# 关键岗位拿完整 JD
python3 scripts/fetch_recruit_jds.py detail <post_id>
# 校招流程问题:按问题匹配官方公告
python3 scripts/fetch_recruit_info.py flow "<问题>" --question-time "<当前时间>"
# 招聘动态
python3 scripts/fetch_recruit_info.py latest
引擎 A 岗位字段含 apply_url,直接打开即官网投递页。
第 2 步:引擎 B(全平台搜索)执行
检测 argo 可用性:which argo 命中(或 ~/.local/bin/argo 存在)即有 argo。
有 argo(优先):
# 招聘岗位多平台聚合:BOSS/猎聘/智联/前程无忧/597/今日招聘/ncss 等
argo job "<岗位> <城市>"
# 补充平台/公告检索(argo search 会 TF-IDF 路由到多引擎)
argo search "site:zhipin.com <岗位> <城市>"
argo search "<地区> 人社局 招聘公告"
无 argo(兑底):用基础搜索,直接抓平台搜索页或公告原文:
- 商业平台:
web_fetch抓zhipin.com/liepin.com等站内搜索 URL 或直接抓平台搜索页 HTML - 政府/官方:
web_fetch抓iguopin.com、人社局公告页原文 - 无法打开站内搜索时,用通用搜索构造
site:查询(如site:zhipin.com 后端 深圳)
引擎 B 至少覆盖 2-3 个不同来源类型,确保不遗漏。
第 3 步:时效性过滤
- 只保留报名未截止的岗位
- 已截止的标注「报名已截止,仅供参考」
- 没有明确报名时间的标注「报名时间未核实,建议登录平台确认」
- 没有最新信息时,直接说「未找到当前可报名的岗位」,不编造
- 日期距今超过 30 天大概率已截止;有「递补」「补录」说明第一批已结束
第 4 步:学历匹配
参考 references/search-strategies.md 的学历匹配规则。用户要求专科 → 只保留「大专及以上」或「专科及以上」的岗位。「本科及以上」专科不可报。
第 5 步:详情核实
对每个有效岗位,打开公告或招聘详情原文,获取:招聘单位、岗位名称和人数、学历/专业/年龄要求、发布日期或截止时间、报名方式、用工形式、薪酬范围、联系电话。
有效岗位必须附可打开的直接链接。 无法打开详情页或确认仍在招,就不能放进「正在报名中」,只能列为「待核验线索」。搜索摘要、聚合页标题和职位编号都不能替代原文。
引擎 A 的岗位直接附 apply_url(join.qq.com 投递页),引擎 B 的岗位附平台职位页链接。
仅当用户求职地需要工作准证时(新加坡、港澳、海外),读 references/work-permit.md 的准证核验规则再判断。中国大陆的国企、事业单位、民企岗位不涉及准证,不要套用那套规则。
第 6 步:交叉验证
- 同一岗位多平台出现 → 合并,标注来源数
- 引擎 A 与 B 都命中同一岗位(如腾讯岗位)→ 以 A 的官方 JD 为准,标注「官网 API 确认」
- 同一单位多岗位 → 按单位分组
- 信息矛盾 → 标注「存在不一致,以官方公告为准」
- 单一来源 → 标注「单来源,建议核实」
输出格式
## 搜索结果:{地区} {企业类型} {学历} 可报名岗位
### 正在报名中(X 个岗位)
#### 1. {招聘单位} — {岗位名称}({N} 人)
- 报名时间:{开始} 至 {截止}
- 学历要求:{学历}
- 专业要求:{专业}
- 年龄要求:{年龄}
- 用工形式:{正式/合同/派遣/临时}
- 薪酬:{如有}
- 报名地址:{网址/邮箱}
- 联系电话:{如有}
- 来源引擎:{A:腾讯官网 API / B:平台名}/来源:{多平台交叉确认}
### 报名已截止(仅供参考)
### 未找到当前可报名的岗位
如果全部已截止或不符合条件,明确输出此句。
输出前质量门(强制自查)
提交前逐项检查:
- 「正在报名中(N 个)」的 N 与实际条目数一致;
- 每个岗位的日期、要求、状态都能定位到对应直接链接;
- 年龄、薪资、国籍、签证状态等用户条件只使用用户明确提供的信息,未提供就写「未知」,不得猜测;
- 政策数字附官方链接和核验日期;
- 「准证支持未确认」不能在建议段被改写成「通常支持」「更明确」或类似暗示;
- 有没有出现「建议你投这家」→ job-search 只查信息,不做建议;
- 有没有出现「大概是N万到N万」→ 没有来源的估算数字必须删除或标为示例假设。
任一不通过,修正后再输出。
说话风格
共享规则见 ../taxue/references/shared-rules.md(踏雪总入口的共享规则,不在本技能目录内)。job-search 特化:像招聘信息核实员,只报事实,不评价岗位好坏。结论句用陈述,不用建议语气。
反模式声明
失败 1:搜到一个结果就停
第一次搜索找到 1-2 个岗位就输出,没有交叉验证。 纠正:每次至少覆盖 2-3 个不同来源类型。单一来源的信息标注「单来源,建议核实」。
失败 2:编造或用过时信息填充
搜索没找到当前可报名的岗位,但为了「给个结果」用了 3 个月前的旧公告。 纠正:没有当前可报名的岗位,直接说「未找到」。标注已截止信息时必须写明截止日期。
失败 3:忽略学历门槛
用户是专科,返回了「本科及以上」的岗位没标注。 纠正:「本科及以上」专科不可报,必须筛选掉或明确标注「仅限本科及以上」。
失败 4:把搜索摘要当证据
从搜索摘要看到「招运营专员」就直接放进「正在报名中」,没打开详情页核实截止时间。 纠正:有效岗位必须附可打开的直接链接。搜索摘要只能作为待核验线索,不能替代原文。
失败 5:做职业建议
输出末尾加一句「建议你重点关注这个岗位」或「这个方向很有前景」。 纠正:job-search 只查信息,不做职业判断。
失败 6:把原始 JSON 灌进上下文
跑完脚本把结果整段贴出来,或为了「看全」加 --full,一次上千条岗位。
纠正:脚本已默认紧凑输出、只渲染前 30 条,positions_total 标明实际总数。需要更多才用 --limit N 逐级放大。原始 JSON 只作内部证据,正文只出现核实过的岗位条目。
示例
示例 1:标准搜索(多来源交叉验证)
输入:「三明市国企专科有在招的吗?」
输入解析:地区=三明市,企业类型=国企,学历=专科。
输出:
三明市 国企 专科 可报名岗位
正在报名中(1 个岗位)
1. 三明市城投集团 — 财务助理(3 人)
- 报名时间:2026-06-10 至 2026-06-25
- 学历要求:大专及以上
- 专业要求:财务/会计相关
- 用工形式:合同制
- 报名地址:smcthr.com
- 来源:3 个平台交叉确认(国聘网、三明人才网、国资委公告)
报名已截止(仅供参考)
三明市交建集团 — 行政专员(截止 06-08,已过期)
说明:专科可报的国企岗位当前不多,这 1 个是核实过还在报名期内的。如果你有兴趣,我可以用同样的条件查事业单位公告。
示例 2:无结果(诚实报告)
输入:「上海央企专科招聘」
输出:
上海市 央企 专科 可报名岗位
未找到当前可报名的岗位
搜索了国聘网、国资委官网、中国公共招聘网,当前上海央企在招岗位学历要求均为本科及以上。
几个替代方向:
- 上海地方国企(非央企)对专科更友好,要查吗?
- 事业单位的工勤岗/技能岗常有专科可报的名额
要换一个方向查吗?
输出末尾
子 skill 只负责方法论。不要在此定义导流规则——导流交给主入口。
DO NOT
- 需要职业方向诊断 → 不在本技能范围(job-search 只搜岗位)
- 需要简历优化 → 不在本技能范围
- 需要面试准备 → 不在本技能范围
- 做职业建议 → 只查信息,不做判断
taxue-job-search v4.1.0 — 双引擎(腾讯官方 API + argo/基础搜索)· 直接链接门禁 · 准证规则外挂 references/work-permit.md · 输出闸门 · 详情并发抓取 · 召回门禁 · 反模式扩展
共享规则与纪律
本技能继承 ../taxue/references/shared-rules.md 的通用纪律,冲突时以它为准:结果优先(先交付立场与可验证动作,过程只在改变质量时写入)、证据来源(结论必须可追到来源,禁止无源断言)、语言与通用 DO NOT。