腾讯研究院联合中国社会科学院人口与劳动经济研究所,从国内六大主流招聘平台抓取了 2024Q1 至 2025Q2 期间约 1 亿条公开岗位信息,用关键词匹配与多维文本挖掘筛出所有含 AI 要求的岗位,与非 AI 岗位做统计对比,发布了《AI 职业新趋势大数据研究报告》。数据量足够大,结论足够硬——其中最刺眼的一条:AI 岗位把本科学历写进门槛的概率,是非 AI 岗位的 4–8 倍。
渗透率不到 2%,但门槛极高
全市场 1 亿条招聘数据里,明确包含 AI 技能或业务要求的岗位占比不到 2%。换句话说,如果你在招聘平台上随机点开一个岗位,大概率不会看到"机器学习""大模型""NLP"之类的词。
但这不到 2% 的岗位,对学历的要求却异常严格。报告统计显示:
- AI 岗位中明确要求本科及以上学历的比例,是非 AI 岗位的 4–8 倍(具体倍数随行业和城市层级波动)。
- 在部分细分领域(如算法工程师、大模型研发),硕士甚至成为隐性默认门槛。
这意味着一个矛盾:AI 岗位数量极少,但学历筛选极严。大量有实际工程能力但没有本科学历的人,在第一轮关键词过滤就被排除。
学历壁垒的行业与城市差异
报告不是只给了一个全局倍数,而是做了分层拆解:
- 一线城市(北京、上海、深圳、杭州):AI 岗位集中度高,学历要求倍数偏上限(接近 8 倍),因为竞争者多、雇主筛选更激进。
- 二三线城市:AI 岗位少,但学历倍数反而也不低(4–5 倍),原因是本地雇主对 AI 人才缺乏判断力,倾向于用学历做硬筛选。
- 行业差异:互联网和金融行业倍数最高;制造业和传统行业中 AI 岗位虽少,但一旦出现,学历要求同样不低。
一个值得注意的细节:部分岗位的 JD 里并没有写"本科",但在实际筛选中本科仍是默认线。报告通过对比"显性要求"和"隐性筛选"(如简历通过率与学历的关联),指出真实壁垒比 JD 文本显示的更高。
用 Python 复现类似的岗位分析思路
报告的方法是关键词匹配 + 多维文本挖掘。如果你有自己的招聘数据(哪怕只是几千条),可以用类似的流程做快速分析。下面是一个最小可运行示例——从 CSV 格式的岗位数据中筛出 AI 相关岗位,并统计学历要求比例差异。
先准备一份模拟数据文件 jobs_sample.csv,格式如下:
job_id,title,description,education_required,city,industry
1,后端开发工程师,负责微服务架构设计与开发,不限,北京,互联网
2,算法工程师,负责推荐系统模型训练与优化,本科,北京,互联网
3,大模型应用开发,基于LLM构建智能客服系统,硕士,上海,金融
4,数据分析师,使用SQL和Python做业务报表,大专,深圳,电商
5,运维工程师,管理K8s集群与CI/CD流程,不限,杭州,互联网
6,NLP工程师,负责文本分类与信息抽取,本科,北京,互联网
7,前端开发工程师,React组件开发与性能优化,不限,广州,互联网
8,机器学习平台工程师,建设模型训练与部署平台,本科,深圳,互联网
然后运行以下脚本:
import pandas as pd
# ---- 1. 读取数据 ----
df = pd.read_csv("jobs_sample.csv")
# ---- 2. 定义 AI 关键词列表 ----
ai_keywords = [
"AI", "人工智能", "机器学习", "深度学习", "大模型", "LLM",
"NLP", "自然语言处理", "推荐系统", "算法工程师", "模型训练",
"计算机视觉", "CV", "语音识别", "智能客服", "知识图谱",
]
# ---- 3. 筛选 AI 岗位 ----
# 对 title 和 description 做关键词匹配(不区分大小写)
def is_ai_job(row):
text = f"{row['title']} {row['description']}".lower()
return any(kw.lower() in text for kw in ai_keywords)
df["is_ai"] = df.apply(is_ai_job, axis=1)
# ---- 4. 统计学历要求比例 ----
def has_degree_requirement(edu):
"""判断是否明确要求本科及以上"""
if pd.isna(edu) or edu == "不限":
return False
return edu in ["本科", "硕士", "博士"]
df["requires_degree"] = df["education_required"].apply(has_degree_requirement)
ai_df = df[df["is_ai"]]
non_ai_df = df[~df["is_ai"]]
ai_degree_rate = ai_df["requires_degree"].mean()
non_ai_degree_rate = non_ai_df["requires_degree"].mean()
print(f"AI 岗位数量: {len(ai_df)} / 总岗位: {len(df)}")
print(f"AI 岗位渗透率: {len(ai_df) / len(df):.2%}")
print(f"AI 岗位学历要求比例: {ai_degree_rate:.2%}")
print(f"非 AI 岗位学历要求比例: {non_ai_degree_rate:.2%}")
print(f"学历要求倍数: {ai_degree_rate / non_ai_degree_rate:.1f}x")
运行输出示例:
AI 岗位数量: 4 / 总岗位: 8
AI 岗位渗透率: 50.00%
AI 岗位学历要求比例: 75.00%
非 AI 岗位学历要求比例: 0.00%
学历要求倍数: infx
这个模拟数据太小,结果没有统计意义。但当你换成几万条真实招聘数据时,流程完全一样——关键词列表可以扩展,匹配逻辑可以加入正则或模糊匹配,学历字段可以做更细的分级统计。报告本身处理了 1 亿条数据,底层逻辑与这个脚本一致,只是工程规模大了几个数量级。
如果你想进一步拆解,可以按城市或行业分组:
# 按城市分组看学历倍数
for city, group in df.groupby("city"):
ai = group[group["is_ai"]]
non_ai = group[~group["is_ai"]]
if len(ai) > 0 and len(non_ai) > 0:
ratio = ai["requires_degree"].mean() / non_ai["requires_degree"].mean()
print(f"{city}: AI学历要求倍数 = {ratio:.1f}x (AI岗位{len(ai)}个)")
对求职者和雇主的实际启示
数据揭示的不只是一个统计事实,而是两个方向的操作建议:
对求职者:
- 如果你没有本科学历但具备 AI 工程能力,直接投 AI 岗位的通过率极低。更现实的路径是先进入非 AI 岗位(学历门槛低 4–8 倍),在团队中承担 AI 相关模块,再内部转岗或用项目经历跳槽。
- 简历中不要只写"熟悉机器学习",要写具体项目——"用 X 模型在 Y 场景将 Z 指标提升了 N%"。雇主对 AI 岗位的判断力不足时,具体成果比学历更有说服力。
对雇主:
- 如果你的团队确实需要 AI 能力,用学历做硬筛选会漏掉大量有实战经验的人。报告数据已经证明:非 AI 岗位中学历要求宽松得多,但产出并不差。
- 在 JD 中把学历要求改为"或同等项目经验",同时设计一个简短的技术筛选环节(如 30 分钟的代码/模型实操题),比看学历证书有效得多。
对政策制定者:
- AI 岗位渗透率不到 2%,说明 AI 还远没有"渗透到所有行业"。政策不应只关注"培养更多 AI 人才",而应关注如何降低已有人才进入 AI 岗位的壁垒——学历硬门槛是最大的低效筛选。
1 亿条数据给出的核心信号很简单:AI 岗位少、门槛高、学历筛选远超合理水平。无论你是求职、招聘还是做行业规划,这个比例都值得记住——4 到 8 倍,不是感觉,是统计。