AI PLAY玩法更新持续收录
← 回到更新流

2026-09-06 · 原文发布日

追踪某岗位的技能需求趋势

填一次表单或按日定时运行:用SerpApi抓Google Jobs上某职位在某城市近期的上百条招聘帖,去重后交给OpenRouter模型提取核心技术栈,统计每项技能在多少比例的帖子里被提到,按技能逐行追加到Google Sheets的Skill Trends表,并写一份可读摘要到Run Summaries表。连续跑一段时间就能看出某岗位技能要求的升降变化,适合转行或备课参考。

原文要点

原模板(n8n 工作流19288,Fafa Modey)事实:可由n8n表单或每日定时触发;用SerpApi的Google Jobs引擎按职位+城市最多翻10页取约100条近期招聘帖,扁平化、截断描述后按标题+公司去重;调用OpenRouter chat completions返回JSON(技能名、类别、提及比例)和纯文本摘要;然后逐技能追加一行到Google Sheets的Skill Trends表,摘要写入Run Summaries表,并更新Config表供定时复用上次职位。原模板免费,但SerpApi与OpenRouter按各自用量计费。

这次做成什么

在n8n里复刻一条"岗位技能趋势采集"流程:定时或手动跑一次,把某岗位在某城市的近期招聘帖交给大模型统计技能提及比例,结果累积到Google Sheets,连续跑几周后可在表内看技能升降。以下步骤与提示词为本站独立编写,节点名称需对照原模板核对。

准备什么

  • n8n账号(云端或自托管)及新建空白工作流权限
  • SerpApi账号与API Key,且套餐允许Google Jobs引擎分页查询
  • OpenRouter账号与API Key,账户内有少量余额
  • Google账号,可创建Google Sheets并配置n8n的Google Sheets OAuth2凭据

具体怎么做

  1. 建三张Google Sheets表

    新建一个表格文件,建Config、Skill Trends、Run Summaries三个标签页。Config页首行写key,role,location,last_run_date,并先手工填一行current,数据分析师,上海,空。Skill Trends首行写run_date,role,location,postings_analyzed,skill,category,percentage_of_postings。Run Summaries首行写run_date,role,location,postings_analyzed,top_skills_readable,summary_text,raw_skills_json。记下表格ID备用。

  2. 配置触发与读取Config

    在n8n里加Schedule Trigger(如每天9点)或Form Trigger(字段role、location)。后接Google Sheets读节点读Config页第一行;再加一个Code节点做输入解析:表单role为空就沿用Config里的role和location,否则用表单新值,输出{role,location}两个字段。

  3. 调用SerpApi抓招聘帖

    加HTTP Request节点,GET https://serpapi.com/search.json,参数engine=google_jobs、q=上一步role+空格+location、hl=zh-cn、api_key=你的SerpApi Key。为翻页可加Loop节点让start参数从0到90步进10(最多10页,先跑1页调试)。后接Code节点:取jobs_results数组,把每条帖子的title、company_name、description(截断到800字符)合并进一个列表,再按title+company_name拼接串去重,截取前100条。

  4. 调用OpenRouter提取技能

    加HTTP Request节点,POST https://openrouter.ai/api/v1/chat/completions,Header加Authorization: Bearer 你的Key,body用下方提示词材料,把去重后的帖子列表拼进user消息,model填一个你账户可用的聊天模型ID(先在OpenRouter模型页确认名称)。后接Code节点用JSON.parse解析模型返回的content,失败时记录原文便于排查。

  5. 写入结果并更新Config

    加Google Sheets追加节点:对解析出的skills数组逐项一行写入Skill Trends(run_date用当天日期,postings_analyzed填实际去重后的帖子数)。第二个追加节点把top_skills_readable(如"SQL 82%、Python 76%")和summary_text写入Run Summaries。第三个节点更新Config页,把本次role、location和日期写回,保证下次定时运行有值。

可直接复制的材料

OpenRouter技能提取提示词(放入chat completions的messages)

本站独立编写;{帖子数量}{职位}{城市}{帖子文本}需在n8n表达式中替换为真实变量;模型ID请选你OpenRouter账户可用的。

系统消息:你是招聘数据分析师。只输出合法JSON,不要输出markdown代码块。
用户消息:下面是{帖子数量}条"{职位}"岗位在{城市}的近期招聘帖描述:
{逐条拼接的帖子文本,每条以---分隔}
请完成:1) 提取被反复要求的核心技术技能,最多15项;2) 为每项给出category(编程语言/数据库/云平台/框架工具/软技能之一);3) 估算每项技能被多少比例的帖子提及,填0-100的整数;4) 写一段100字以内中文摘要说明本期技能结构。
严格按此JSON结构返回:{"skills":[{"skill":"名称","category":"类别","percentage":整数}],"summary":"中文摘要"}

Skill Trends表测试用合成数据(两行示例)

本站虚构的合成练习数据,用于手动填表验证追加节点字段映射,不是真实抓取结果。

run_date,role,location,postings_analyzed,skill,category,percentage_of_postings
2026-09-06,数据分析师,上海,20,SQL,数据库,85
2026-09-06,数据分析师,上海,20,Python,编程语言,70

输入与输出示例

本站虚构演示,输入输出数字互相对应,未实际调用SerpApi/OpenRouter,非原作者运行结果

输入

表单提交role=数据分析师、location=上海,测试时只抓1页得到20条帖子,去重后剩18条

对应输出

Skill Trends追加多行,关键行示例:2026-09-06,数据分析师,上海,18,SQL,数据库,83;2026-09-06,数据分析师,上海,18,Excel,框架工具,61。Run Summaries追加一行:top_skills_readable="SQL 83%、Python 72%、Excel 61%",summary_text="本期岗位以SQL与Python为核心,可视化工具提及率上升。"

做完检查这些

  • 手动触发一次后,Skill Trends页新增行数等于模型返回的skills数组长度,且postings_analyzed与去重后帖子数一致
  • Config页的role、location、last_run_date被更新为本次值;清空表单role再触发,流程沿用Config旧值不报错
  • 同一职位连续两天运行后,同一技能出现两行不同run_date,可在表内按技能筛选比较percentage变化
  • 模型返回非JSON时Code节点走异常分支并在执行日志中留下原始content

容易卡住的地方

  • SerpApi免费额度有限,10页翻页会快速消耗额度,调试期务必先只跑1页
  • 招聘帖描述很长,不截断会超出模型上下文或显著推高OpenRouter费用
  • 去重键若只用职位名会把同公司不同帖子误删,需用标题+公司组合
  • OpenRouter模型ID拼错或账户无余额会返回401/404,需在AI请求节点单独核对
  • Google Sheets节点每处都要选对标签页名,表头拼写不一致会写入失败或错位

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Track role skill trends from Google Jobs with SerpApi, Claude and Sheets
原作者
Fafa Modey
原始发布日期
2026-09-06T13:14:55.001Z
来源
https://n8n.io/workflows/19288