每年到了毕业季,“毕业生找不到工作”就会变成一个被反复讨论的话题。今年更特殊一些:岗位在收缩、学历在通胀、面试流程越来越长,于是很多人把问题归因到人口结构、扩招政策、甚至某个代际。但如果你把目光放到企业内部、招聘网站后台和用人部门的工作方式上,会发现一个更熟悉的变量正在起作用——AI。
可以先把结论放在这里:AI 不是直接“抢走”了某个岗位,而是改写了从职位发布、简历筛选、能力评估到任务分配的一整条链路。它让批量生产内容、快速筛选人才、自动生成方案变得几乎零成本,也把过去需要两三年才能积累的“执行经验”压缩成一段可被机器调用的技能。换句话说,AI 不只是一个工具,它是就业市场中一张隐形的结构性过滤网。
这篇文章不打算传播焦虑,也不是一篇人生鸡汤,而是一次偏工程视角的拆解:AI 到底动了招聘和工作的哪几个环节?技术新人应该如何理解这种变化,并且用一套可操作的工具链重新组织自己的学习路径和作品集?如果你正准备找工作,或者正在带团队、参与招聘,这篇文章值得读完。
1. 就业市场里那条看不见的筛选链
很多人觉得找工作难,主要是投出去的简历石沉大海。但真正的矛盾往往在简历之前就已经发生了:岗位定义变了,筛选标准变了,产出预期也变了。
以最常见的“软件开发工程师”岗位为例。几年前,一个初级岗位的 JD 通常描述的是“负责某个模块的开发”“熟悉 Java/Go/Python”“有良好的编码习惯”。面试官关心的是:你会不会写代码、能不能在项目里跑通需求、基础是否扎实。现在再看同样级别的岗位,JD 里高频出现的是:熟悉大模型应用、会写 Prompt、了解 RAG、能调用 AI 接口解决业务问题,甚至直接要求“能够通过 AI 工具提升开发效率”。
这背后的变化不是 HR 拍脑袋想出来的,而是企业真实在工作流中感受到的:同一件需求沟通、代码生成、测试补充、文档编写的工作,使用 AI 工具的工程师和人肉完成,交付周期可以差出几倍。当一家公司把这种效率差异沉淀到招聘标准里,它不再关心“你会哪些技术栈”,更关心“你能否在同样的时间内产出过去两倍的交付量”。
更深一层的变化出现在简历初筛环节。过去 HR 或招聘负责人需要在几百份简历里人工挑关键词,现在很多企业引入 ATS(Applicant Tracking System,申请者追踪系统),甚至直接用大模型做初筛。大模型做的事比关键词匹配更粗暴:它会按照岗位 JD 总结候选人能力、判断项目经历的相关性、自动生成一个“匹配度”分数。简历里如果没有可被识别的技术关键词、没有与目标岗位强相关的项目描述,很可能还没被人类看到,就已经进入了“不合适”的分类。
所以现在“找不到工作”已经不是单纯的投递次数问题,而是候选人对外展示方式,能否穿越 AI 筛选链的问题。理解这条链路的机制,比盲目海投更有意义。
2. AI 对岗位结构做了什么:替代、增强和重定义
聊“AI 抢工作”之前,需要先做一个看起来有点绕、但很有用的区分:AI 真正替代的不是“岗位”,而是“确定性任务”。所谓确定性任务,就是输入输出关系稳定、规则明确、可以批量复制的脑力劳动。比如:
- 根据模板撰写周报、月报和会议纪要;
- 把一段需求描述转换成 SQL、正则表达式或 Shell 命令;
- 抽取一篇文章中的观点并生成摘要;
- 为常见场景生成测试用例;
- 把产品需求拆成任务列表并预估工作量。
这些工作过去大量落在初级工程师、数据专员、内容运营乃至应届生实习生身上。它们构成了“工作经验”的一部分——新人通过做这些基础任务,逐渐理解业务、熟悉流程、建立手感。但当 AI 可以在几秒内完成同等质量甚至更好的输出时,企业就不会再把这类任务当作全职岗位去招聘。这才是初级岗位入口变窄的真相。
不过 AI 对岗位的另一种作用同样重要,叫作增强。增强不是“替你做”,而是“放大你会做的事”。比如资深工程师过去需要花一周做技术调研,现在借助 AI 工具半天就能完成,节省出来的时间可以投入到架构设计、技术评审和系统优化上;产品经理过去要为竞品截图写几十页说明,现在可以拉一个 LUI(Language User Interface,语言交互界面)工具快速生成对比表格,把精力用于判断和决策。
因此,更准确的图景是:一部分重复性、规则性任务被压缩,另一部分需要判断、沟通、责任和创造力的工作被重新放大。不同角色拿到的杠杆不一样,但如果把技术圈看作一个整体,AI 并没有把蛋糕拿走,它只是把蛋糕重新切了一下:原来切给执行层的权重,正在向“能用 AI 放大产出”的能力层转移。
从求职者的角度,这种切法带来的结果是:只有“基础执行能力”的人越来越难被识别;相反,能把 AI 工具链融入日常工作、能用模型解决真实场景问题的人,议价能力是在上升的。下面从招聘技术细节入手,把这条逻辑具体化。
3. 看一个真实机制:JD 生成与简历初筛是如何被 AI 改写的
要理解 AI 如何进入招聘链路,看两个环节就够了:一个是 JD(职位描述)生成,一个是简历初筛。
3.1 JD 生成:从“岗位说明书”到“能力画像”
过去写 JD 通常是 HR 和业务负责人开会讨论,把岗位职责逐条写下来。现在更常见的做法是:HR 把岗位的关键词和目标输入到 LLM,由大模型生成一版 JD,再人工微调。这样产出的 JD 天然带有明显的“模型可识别”特征——它会把技能词、工具词、经验年限描述得非常标准化,例如“熟练使用 Python、SQL”“具备 Prompt 工程经验”“了解向量数据库与 RAG”。
这种标准化 JD 反过来又被用于匹配简历。也就是说,招聘的双方都越来越依赖同一套由模型生成的“能力语言”。如果你的简历没有对齐这套语言,即使真实能力过硬,也可能在自动初筛阶段被漏掉。很多求职者把“投了没回音”归结为运气不好,实际是被这种语言鸿沟卡住了。
3.2 用代码模拟一个简化版简历初筛
下面用一个最小示例来演示“关键词匹配 + 分数排序”是如何运作的。这个例子不涉及大模型,只是展示 ATS 背后最简单的一层逻辑,帮助你理解筛选链路的机械性。
假设有三份简历的摘要文本,我们希望通过判断它们和 JD 的匹配度来排序。
# requirements: pip install jieba import jieba import re JD = "熟悉Python开发,掌握SQL,了解大模型应用,有RAG项目经验" resumes = { "A同学": "在校期间主要负责Python后端开发,写过SQL存储过程,参加过一项NLP课程设计,对RAG有一定了解。", "B同学": "本专业课程包括高等数学、大学英语,兼职做过电话客服,自学过Excel公式。", "C同学": "用Python写过一个电商数据分析脚本,会基本的SQL查询,读过几篇关于大模型应用的博客。", } def tokenize(text): # 对文本做简单清洗和分词 text = re.sub(r"[,。;、\s]+", " ", text) words = jieba.lcut(text.lower()) return set(w for w in words if len(w.strip()) > 1) jd_tokens = tokenize(JD) scored = [] for name, text in resumes.items(): resume_tokens = tokenize(text) overlap = jd_tokens & resume_tokens score = len(overlap) / len(jd_tokens) scored.append((name, round(score, 2), overlap)) for item in sorted(scored, key=lambda x: x[1], reverse=True): print(item)运行后,A、C 同学的得分会明显高于 B 同学,因为他们的简历中出现了“Python”“SQL”“大模型”等 JD 关键词。这个示例虽然粗糙,但能说明两个关键点:
- 简历筛选本质上是“信号的匹配”,不是“能力的判定”;
- 在 AI 参与的初筛中,真实经历会被先翻译成文字信号,再参与评分。
把这里的“关键词匹配”换成大模型语义匹配,底层逻辑仍然是同一件事:候选人的表达能不能和岗位画像对齐。理解了这一点,你就知道为什么“写过项目”和“在简历里把自己做过的东西用准技术术语讲清楚”是两件同等重要的事情。
3.3 大模型初筛阶段的实际状态
从公开信息和企业实践看,现在已经有不少招聘平台和 HR 系统开始集成大模型能力:
- 自动解析简历,输出结构化字段(技能、年限、项目、亮点);
- 根据 JD 给简历打分,生成“推荐理由”;
- 在候选人进入面试前,先用 AI 面试官或在线测评完成一轮筛选;
- 对候选人的开放性问题回答做语义分析,辅助评估表达能力。
这类系统的最大特点就是标准化:它让每个候选人都处于同一套评估框架之下。好处是减少主观偏见,坏处是,如果候选人不了解这套框架,很容易被误伤。理解招聘自动化,不是为了“欺骗系统”,而是为了更准确地向系统传达真实信息。
4. 给技术新人的实操:用 AI 工具链重构求职作品
如果前面几节分析的是“问题”,那么从这一节开始进入“解决办法”。对于应届生或初级工程师,与其抱怨 AI 造成筛选变严,不如主动把 AI 纳入求职过程,做成一套可以展示的能力闭环。
这里有三个建议:
- 不要只准备简历,还要准备一个可运行的“AI 加持项目”;
- 不要只背八股文,要能把 AI 工具链接到某个真实问题的解决过程中;
- 不要只会“让 AI 给出答案”,要能验证、评估并解释 AI 输出的质量。
下面用一个“求职辅助工具”作为示例项目,演示如何将大模型能力集成到一个小的应用里。它可以是你简历上的一个作品,也可以帮助你反向理解 AI 在招聘链路中的角色。
4.1 项目背景
我们希望做一个命令行小工具,输入一个目标岗位 JD 和一份候选人简历文本,它输出匹配度评分、候选人技能摘要、缺失技能建议。这个工具既可以用于企业侧初筛演示,也可以用于求职者自查简历与 JD 的对齐程度。
技术栈选择:Python 3.10+,OpenAI 兼容接口示例(不同模型供应商的 SDK 略有差异,重点理解调用流程)。
4.2 环境准备
mkdir resume-matcher cd resume-matcher python3 -m venv venv source venv/bin/activate pip install openai python-dotenv4.3 代码实现
创建一个.env文件存放 API Key(注意安全,不提交到仓库):
# 文件路径:resume-matcher/.env OPENAI_API_KEY=你的_API_KEY OPENAI_BASE_URL=https://你的模型服务地址/v1编写主程序match.py:
# 文件路径:resume-matcher/match.py import os from openai import OpenAI from dotenv import load_dotenv load_dotenv() client = OpenAI( api_key=os.getenv("OPENAI_API_KEY"), base_url=os.getenv("OPENAI_BASE_URL"), ) JD = """ 岗位名称:AI 应用开发工程师(校招) 职责: 1. 参与基于大模型的应用开发,包括对话系统和知识库问答; 2. 使用 Python 编写服务端接口,完成模型调用和结果后处理; 3. 参与 RAG 流程的搭建与优化; 4. 编写技术文档和测试用例。 要求: - 熟悉 Python,了解 FastAPI 或 Flask; - 对 LLM API 调用有实践经验; - 了解向量数据库或 RAG 的基本原理; - 有较好的逻辑思维和沟通表达能力。 """ RESUME = """ 张三,计算机科学与技术专业,本科应届。 主要经历: - 在毕业设计中实现了一个图书推荐系统,技术栈为 Python + Flask + MySQL; - 使用 ChatGPT 协助完成课程论文的文献综述整理; - 接触过 Elasticsearch,了解倒排索引的基本概念; - 通过公开课学习过大模型基础理论,知道 Embedding 和向量检索的概念。 """ PROMPT = f""" 你是一位技术面试官。请根据下面的岗位 JD 评估候选人简历。 JD: {JD} 候选人简历: {RESUME} 请输出: 1. 匹配度分数(0-100,附一句理由); 2. 候选人已具备的三个关键技能; 3. 候选人最明显的两个不足; 4. 给出简历优化和技能补全建议。 要求输出为 JSON 格式,字段名分别为 score, strengths, gaps, suggestions。 """ response = client.chat.completions.create( model="gpt-4o-mini", # 请以你实际用的模型为准 messages=[ {"role": "system", "content": "你是一个严谨的招聘评估助手。"}, {"role": "user", "content": PROMPT}, ], temperature=0.2, ) print(response.choices[0].message.content)运行方式:
python match.py如果一切正常,你会看到模型输出类似这样的 JSON:
{ "score": 68, "strengths": ["掌握 Python 基础开发", "了解 Flask 框架", "熟悉 ES 倒排索引,可迁移理解向量检索"], "gaps": ["没有实际的 LLM API 调用项目", "RAG 知识停留在概念层面"], "suggestions": ["补一个调用大模型 API 的课程设计", "阅读 RAG 相关技术博客并写总结", "在简历中突出对话式 AI 相关项目"] }请注意:一次调用大模型 API 前,务必确认你拥有合法的 API 权限,并遵守模型提供方的使用政策。涉及真实简历和个人信息时,要提前脱敏,防止隐私数据外泄。
4.4 这个示例项目能说明什么
把这个小工具放在简历里,作用比在自我评价里写“熟悉大模型应用”要直接得多。它至少证明了四件事:
- 你能调用大模型 API,并处理返回结果;
- 你能设计合理的 Prompt,把复杂任务拆成结构化输出;
- 你了解招聘/面试业务场景,知道如何把 AI 落到具体流程中;
- 你具备基本的工程化习惯(虚拟环境、环境变量、命令行运行)。
顺着这个思路,你还可以把项目扩展成:一个简历关键词联想工具、一个面试模拟问答工具、一个基于 RAG 的知识库问答系统。每多一个可运行的 AI 项目,你在简历里写“熟悉 RAG”“熟悉 Agent”时才更有底气。
5. 学习路径建议:从提示词到 Agent 的 AI 工程实践
对技术新人来说,最容易犯的错误就是追逐概念,而不是沿着一条可验证的路径积累工程能力。下面这条路径比较稳妥,每走一步都能产出可展示的成果。
5.1 第一阶段:Prompt 工程
目的:掌握与 LLM 沟通的基本能力,包括上下文设计、约束条件、结构化输出。
一个可实践的 Prompt 模板如下:
角色:你是一名资深 Python 开发工程师。 任务:根据下面的需求写出代码,并给出使用说明。 要求: 1. 代码需要可直接运行; 2. 注释使用中文,解释关键步骤; 3. 如果需求有歧义,先列出假设再生成答案。 需求:写一个脚本,读取 CSV 文件中的订单数据,统计每个商品的销售数量, 并输出按销量降序排列的 Markdown 表格。提交给模型后,你应该关注的不只是代码,而是:模型是否理解了 CSV 的列名假设?输出是否结构化?边界情况(空文件、脏数据)是否覆盖?这些判断本身就是在训练你的工程思维。
5.2 第二阶段:API 调用与结构化输出
在第一个阶段的基础上,把 Prompt 固定到代码里,通过 API 调用。学到的内容包括:请求参数(model、messages、temperature)、输出解析(JSON)、错误处理(超时、限流、内容过滤)。
这里有一个容易踩坑的地方:一次请求里放太多文字容易触发上下文超限,放太少又说明不了问题;拆分任务、合并结果都是常见手段。在实际项目中,最好把 Prompt、模型参数、后处理逻辑分开管理,方便迭代。
5.3 第三阶段:RAG(检索增强生成)
RAG 解决的是“模型不知道你私有业务数据”的问题。它的核心流程并不复杂:
- 离线阶段:把你的文档切块,用 Embedding 模型转成向量,存入向量数据库;
- 在线阶段:用户提问,先把问题转成向量,在向量库中召回最相关的片段;
- 生成阶段:把检索到的片段和问题拼成 Prompt,交给 LLM 生成回答。
对新人而言,不必一开始就写全流程。可以从“调用一个向量数据库 + 一个 Embedding 接口,完成 10 篇文档的问答”开始。这个阶段的核心收获是理解“召回质量决定回答质量”,这也是后续做更复杂 AI 系统的地基。
5.4 第四阶段:Agent 与工具调用
Agent 的意义在于让模型不再只“说”,还能“做”。通过 function calling,模型可以决定调用某个搜索工具、执行某段代码、访问某个数据库。这里需要格外注意安全:给 Agent 的权限必须是最小权限,涉及生产环境变更时必须在测试环境验证,操作前备份,操作后留日志。
这也正是当前企业里“AI 工程实践”岗位最看重的能力之一:不只会调用模型,还会设计可靠、可控、可回滚的工作流。
5.5 每个阶段都要留下证据
无论走到哪一步,都要把过程中的内容沉淀下来:技术文档、源代码、运行截图或博客文章。未来写简历时,“有过程记录”和“嘴上说做过”是完全不一样的说服力。
6. 常见问题与误区分析
围绕“毕业生找工作难 + AI 影响”这个话题,总是绕不开下面几个问题。我尽量用技术视角而不是鸡汤式表达来回答。
| 常见问题 | 需要澄清的误区 | 更稳妥的做法 |
|---|---|---|
| AI 会不会彻底取代程序员? | 会把“写代码”和“解决软件开发问题”混为一谈。AI 可以生成大量代码,但很难独立承担需求确认、系统设计、质量验收和风险责任。 | 把 AI 当作协作对象,重点训练需求分析、方案选择和结果验证能力。 |
| 现在转 AI 算法方向还来得及吗? | 把“了解 AI”等同于“读 AI 论文做算法岗”。算法岗竞争激烈,且门槛较高。 | 更多人适合做 AI 应用开发、AI 工程化、AI 产品设计,而不是纯算法研究。 |
| 学什么语言更好? | 以为还有“一招鲜吃遍天”的语言。实际语言选择取决于生态和场景。 | 入门阶段把 Python 当作 AI 生态的主线,同时保持另一种语言(如 Java/Go/TypeScript)的工程能力。 |
| 面试时使用 AI 算不算作弊? | 很多公司明确规定可以用 AI 辅助,关键是是否有自己的理解和验证。 | 面试时主动说明“这里我用 AI 辅助做了初版,接着我修正了 XX 问题”,比藏着不说更有说服力。 |
| 没有大厂实习经历怎么办? | 简历的空白往往是因为没有可验证的项目。实习的本质是让用人方获得“这个人能干活”的信号。 | 用 2-3 个完整的开源或个人项目补足信号,最好能部署上线并提供演示地址。 |
| 用 AI 生成的简历会不会被 HR 反感? | 反感的是“无脑复制”和“虚假内容”,不是使用 AI 工具本身。 | 用 AI 帮你挖掘经历中的量化成果,但每个数据、每个项目都必须真实。 |
上面表格里最后一条很重要。简历的作用是建立信任。如果你把 AI 生成的经历包装成真实经历,一旦面试官深入提问,很容易穿帮。让 AI 帮你把经历整理得更清晰是一回事,伪造经历是另一回事。
7. 最佳实践与工程建议
如果把目光从个人求职拉远一点,AI 对就业市场的影响本质上是一种“工程效率革命”。在这种环境下,无论你是个人开发者还是团队成员,都值得把下面几条实践纳入日常工作。
7.1 建立自己的 AI 工具链
不要只用一个聊天窗口,而是构建一套固定工具组合。比如:
- 写代码:使用支持 AI 的 IDE 或插件,把代码补全、单元测试生成和 Commit Message 生成接入日常开发;
- 查资料:用 RAG 工具管理自己的技术文档和收藏夹,让知识积累可以检索;
- 写作:用 AI 完成初稿,但自己负责逻辑、数据校验和最终定稿。
这套工具链本身就是你“会用 AI”的最好证明。
7.2 在团队协作中引入 AI 流程规范
如果你已经进入团队,或者正在做小组项目,可以推动以下规范:
- 需求确认后,先用 AI 生成任务拆解和验收标准,再进入开发;
- 代码提交前,要求写清楚“哪些代码由 AI 生成、哪些由人工调整”,便于 Code Review;
- 涉及数据库、权限、生产环境变更时,使用最小权限原则,先在测试环境验证,并保留回滚方案;
- 所有 AI 生成的文档和代码,必须由真人完成最终复核。
这样做的好处不是“显得更正式”,而是让 AI 真正成为可以追溯、可评测、可控的协作成员。
7.3 关注评测而不是炫技
AI 开发最大的坑是“demo 很好,上线就崩”。无论是做 RAG 问答还是 Agent 工作流,都要尽早建立评测集:准备 20-50 条典型问题,每次修改 Prompt 或检索逻辑后跑一遍,观察回答质量变化。没有评测的优化都是自我安慰。
7.4 平衡效率与风险
大模型输出的内容不一定可靠,调用第三方 API 也可能带来合规和隐私风险。在项目里,请始终记住三件事:
- 不把敏感数据直接发给模型;
- 不把生产环境的管理权限交给自动 Agent;
- 对 AI 的每一次“重要动作”都保留审计日志。
这既是工程底线,也是职业素养。
8. 一些真心话,也是下一步建议
聊到这里,我想把最初的结论再说透一点:AI 之所以成为就业市场的隐形推手,不是因为它能代替很多人,而是因为它把“能不能高效使用技术杠杆”变成了几乎每个岗位的默认评价项。毕业生找工作难,背后有经济周期、教育适配、地域差异等很多因素,但如果你只是想解决问题,抱怨时代不如调整策略。
下一步可以考虑这样实操:
- 本周:把你最熟悉的一个功能,用 AI 辅助重写一遍,并做前后对比总结;
- 本月:完成一个包含 LLM API 调用的项目,写成博客文章,附上运行方法;
- 下个月:给这个项目加入缓存、错误处理和简单评测,提交到 GitHub,并部署一个可访问的线上演示。
如果已经工作,不妨在组内推动一个小工具接入 AI 流程,记录效率变化,形成一份可复用的方法总结。这些听起来不如转发一篇文章过瘾,但它们才是能让你穿越“筛选链”的实际筹码。工具只是杠杆,引擎仍然在你自己手里。