核心结论
招聘量是观察企业预期的高频温度计。某行业、某地区的职位发布量连续多个周期异常下降,可能意味着招聘冻结或预算收紧;回升如果只集中在少数公司或少数 AI 岗位,则更接近“局部复苏”。只要能把 LinkedIn Jobs、Indeed、Naukri 等平台的公开职位数据,按周/月聚合成时间序列,头条里的裁员与创业故事,就可以变成可计算、可复核的指标。
一、头条之外:2026 年劳动力市场的两条线索
线索一:AI 人才在“出走”,也在“再定价”。2026 年的公开报道反复出现同一类故事:大模型、智能体、AI 科研项目的负责人、研究员甚至实习生离开大厂自立门户,不少人在正式离职前就敲定融资;投资界整理的“大厂离职创业名单”按姓名、原公司、去向、融资情况和投资方成表发布,粗略统计相关离职创业者已不下百人。海外同样如此——OpenAI 的持续“裂变”、明星科学家的相继离开,都在重复同一个模式:资本跟着人才走,支票比辞职信先到。
线索二:游戏行业在“收缩”,也在“换结构”。同年,游戏行业的裁员持续成为焦点:GDC《2026 State of the Game Industry》对超过 2,300 名从业者的调查显示,约 28% 的受访者在过去两年经历过裁员;Reuters 报道 Microsoft 于 2026 年 7 月宣布削减约 4,800 个岗位(约占全球员工 2.1%),Xbox 业务首当其冲。与此同时,不少公司仍在给 AI、引擎、数据和基础设施岗位开出新职位。
这两条线索放在一张桌子上,就构成了 2026 年劳动力市场最典型的悖论:总量在收缩,结构在迁移。总量下降不等于所有技能都降温;少数 AI 岗位回升,也不等于行业全面复苏。要想把这两个“都正确”的叙事拼成一张完整的图,靠的不是更多新闻,而是一套可以按周更新、按行业和地区拆分的招聘数据管道。
二、为什么招聘量比裁员新闻更早“报信”?
裁员公告记录的是“已经发生的决定”;招聘发布反映的是“正在形成的预期”。一个职位从预算立项到挂上招聘平台,中间隔着业务规划、编制审批和招聘渠道选择——所以招聘量的变化,往往比组织调整的新闻早一两个季度。
痛点之一:宏观数据慢,企业信号散。GDP、PMI、失业率按月或按季更新,且难以细分到“某城市某类岗位”;而行业研究者恰恰需要这种颗粒度。财报能看收入,看不到“哪家公司在悄悄停招”。
痛点之二:只看新闻会漏掉“没上热搜”的变化。新岗位发布量下降、全职转合同、远程岗位减少、招聘周期拉长——这些变化从不开发布会,却往往是冻结的前奏。等“XX 公司裁员 25%”登上头条,信号已经过期了。
痛点三:结构性分化让“总量”失去解释力。AI 岗位扩张与传统岗位收缩同时发生时,总招聘量可能是平的,但内部已经换了血。不做技能、职级、雇佣类型和地区的拆分,就读不出真实的方向。
三、把头条变成指标:三个可计算的信号
3.1 需要哪些数据字段?
| 字段 | 用途 | 可观察信号 |
|---|---|---|
职位标题 /title | 归一化岗位族群(AI、游戏策划、客户端、数据工程等) | 技能需求结构变化 |
公司 /company | 按企业或业务线聚合 | 单家公司冻结、扩张或重组 |
地点 /location | 国家、城市、区域分层 | 地区劳动力市场分化 |
发布时间 /posted_at | 构建周度、月度时间序列 | 招聘量趋势与拐点 |
职位描述 /description | 提取技能与职责 | AI 技能渗透与岗位迁移 |
职级 /experienceLevel | 实习、初级、中高级、管理层分层 | 哪一层先被冻结 |
工作类型 /jobType | 全职、兼职、合同、临时 | 用工结构变化 |
办公方式 /workplaceType | 到岗、混合、远程 | 组织政策与地域弹性 |
申请人数 /applicants | 岗位竞争度(如有) | 供需压力辅助信号 |
薪酬 /salary | 薪资区间与技能溢价(如公开) | 紧缺技能与预算变化 |
各家平台对这些字段的暴露程度不一样:薪酬与申请人数经常缺失,办公方式只在部分站点可见。做时间序列之前,务必确认字段口径随时间的稳定性——字段改名、历史区间不可回溯,都会污染基线。
3.2 三个核心指标
指标一:职位发布量指数(Hiring Volume Index, HVI)
以基准期岗位均值为 100:
HVI_t = 当期有效职位数 ÷ 基准期平均职位数 × 100
指标二:冻结信号(Freeze Signal)
某行业、地区与岗位族群的 HVI 连续多个周期下降,同时出现职位撤下加快、全职占比下降、发布公司数减少——标记为“冻结候选信号”。它不是法律意义上的“正式冻结”,而是需要用企业公告、财报与裁员新闻复核的预警。
指标三:解冻信号(Thaw Signal)
HVI 连续回升,且回升分布在多家公司、多个关键职能和相邻地区——标记为“复苏候选信号”。若回升只集中在合同岗或少数 AI 岗位,只能称为“局部解冻”。
四、动手搭一条周/月招聘量监测管道
4.1 数据接入:按行业、地区、时间窗口采集
下面的示例假设你能通过某个 HTTP 接口(自建采集服务也好、现成的数据服务也好)拿到结构化的职位记录;没有接口的话,直接把含相同字段的 JSON 导出文件喂给 4.2 的聚合脚本也能跑通。
importosimportrequestsimportpandasaspd# 任意返回下列结构化字段的职位数据源均可:# job URL / title / company / location / posted_at / applicants / descriptionENDPOINT=os.environ["JOBS_API_ENDPOINT"]deffetch_jobs(keywords:str,location:str,days:int=7)->list[dict]:"""采集公开职位,用于周度/月度招聘量统计。"""payload={"keywords":keywords,"location":location,"resultsLimit":1000,"postedWithinDays":days,# 1 / 7 / 30"experienceLevel":"MID_SENIOR","jobType":"FULL_TIME","workplaceType":"REMOTE",}response=requests.post(ENDPOINT,headers={"Content-Type":"application/json"},# 如需鉴权,在此补充 headersjson=payload,timeout=90,)response.raise_for_status()body=response.json()returnbody.get("data",body.get("jobs",[]))jobs=fetch_jobs("AI OR machine learning OR LLM","United States")df=pd.json_normalize(jobs)df.to_json("linkedin_jobs_weekly.json",orient="records",force_ascii=False)print(f"Collected{len(df)}public job records")生产环境不要把REMOTE、MID_SENIOR固定为唯一口径:全职/合同、远程/混合/到岗、初级/高级应分别跑切片并保存查询条件,否则“招聘下降”可能只是筛选变窄。
4.2 聚合周度招聘量并计算变化率
importpandasaspd jobs=pd.read_json("linkedin_jobs_weekly.json")jobs["posted_at"]=pd.to_datetime(jobs["posted_at"],errors="coerce",utc=True)jobs=jobs.dropna(subset=["posted_at"])jobs["week"]=jobs["posted_at"].dt.to_period("W").astype(str)weekly=(jobs.groupby(["week","location"],dropna=False).size().reset_index(name="job_count").sort_values(["location","week"]))weekly["wow_change_pct"]=(weekly.groupby("location")["job_count"].pct_change().mul(100).round(2))weekly.to_csv("weekly_hiring_volume.csv",index=False)监测游戏行业时,把关键词拆成game developer、game designer、technical artist、game producer、Unity、Unreal,再单独跑AI engineer、ML engineer、LLM、data infrastructure——这样才能区分“游戏岗位整体收缩”与“游戏公司向 AI 能力迁移”。
4.3 多源招聘数据的合并纪律
LinkedIn 覆盖全球职业网络与跨国公司,但并不覆盖所有市场——比如印度本地岗位大量沉淀在 Naukri 一类平台上。补齐第二数据源之后,真正的工程量不在“采”,而在“合”:统一格式、频率与口径之后,先归一化职位标题、公司名称、地点与发布时间,再做去重。跳过这一步,平台差异就会被误读成招聘增长。
4.4 同一套工作流:从外贸获客到人才情报
这套流程其实是“通用情报工作流”的一个切面:建立关键词库 → 建立采集任务 → 精准筛选。外贸团队用它筛国家、品类、公司与联系方式;换成人才情报场景,只需要把关键词换成AI engineer、game developer、Unity、LLM,再把地区、公司、经验级别、办公方式写进任务参数,最后按规则过滤无效记录。
同理,如果要交叉验证的是人才流向而不只是岗位数量,还可以补充领英个人主页上公开的职业经历与技能标签——前提同样是合规与去重。行业在变,真正难的不是采集动作本身,而是关键词体系、时间窗口、去重规则与解释框架的设计。
五、冻结,还是短期噪音?
| 观察结果 | 可能含义 | 复核动作 |
|---|---|---|
| 单周下降 20% | 节假日、搜索波动或采集异常 | 延长观察窗口,检查请求成功率 |
| 连续 3–4 周下降 | 招聘冻结或预算收紧候选信号 | 对比公司数量、岗位类型与招聘公告 |
| 全职下降、合同岗上升 | 企业降低长期承诺 | 分析雇佣类型、岗位持续时间与薪酬 |
| 总量下降、AI 岗位上升 | 组织能力迁移或技能重构 | 提取 JD 技能词,比较岗位族群 |
| 多地区同步回升 | 行业复苏可能性更高 | 对比公司覆盖面与职级分布 |
| 仅一家大公司回升 | 公司级项目启动 | 不外推为行业复苏 |
在实际操作中,“招聘量”是最容易被误读的指标之一:一个大型雇主集中关闭职位,会让城市曲线瞬间下坠;一个 AI 项目集中放出上百个岗位,又会制造虚假的复苏感。更可靠的做法,是同时观察岗位数量、发布公司数、职位族群、雇佣类型和地区分布,并对极端值做公司层面的拆分——宏观判断要广度,单点事件要克制。
六、合规与数据边界
这套方法处理的都是公开招聘信息。招聘数据可用于劳动力市场研究、竞争情报、人才规划与经济分析;但不应被用来推断个人敏感属性、绕过登录保护、采集私密资料,或对个人候选人做未经授权的自动化决策。
平台字段、展示方式与历史数据可得性都会随时间变化:数据新鲜度取决于采集渠道与请求类型,历史可用性取决于具体来源。请保存每次查询的关键词、地区、筛选条件、时间戳与结果数量,建立可追溯基线——这也是把“头条叙事”变成“可复核证据”的第一步。
七、问与答
问:招聘岗位数量真的能代表经济周期吗?
答:它是高频代理指标,不是 GDP、失业率或裁员人数的替代品。连续多周期下降,叠加发布公司数、全职占比、薪资与地区分布,才能构成冻结候选信号;最终仍需宏观数据与企业公告复核。
问:怎么按周或按月统计招聘量?
答:对 LinkedIn Jobs、Indeed、Naukri 等公开招聘数据,按固定关键词、地区与筛选条件周期采集,再按posted_at聚合到周/月维度。关键是每次查询都保存条件与结果数量,形成前后一致的统计口径。
问:采集时需要哪些筛选维度?
答:至少包括关键词、地点、结果数量、经验级别、工作类型、办公方式、发布时间窗口、公司名称、最低薪资等;返回侧应尽量覆盖职位标题、公司、地点、发布时间、申请人数与描述等字段。
问:为什么要多个平台一起采?
答:不同平台覆盖的人群和市场不同:LinkedIn 适合全球职业网络与跨国公司观察,Naukri 补充印度本地市场。多源采集后必须归一化职位标题、公司名称、地区与发布时间并去重,否则平台差异会被误读成招聘增长。
问:如何区分 AI 招聘增长与行业全面复苏?
答:把 AI、机器学习、LLM、数据基础设施岗位与传统岗位分组,分别观察职位量、发布公司数、职级、雇佣类型与地区。只有少数 AI 岗位回升、而传统岗位与公司覆盖面仍下降时,准确说法是“局部技能复苏”,而非行业全面复苏。
别等裁员登上热搜,才想起看劳动力市场。固定口径、按时采集、留存每一次查询条件——职位列表就能变成一支每周可读数的温度计,头条叙事也才能变成可复核的时间序列。