17 写简历:如何根据岗位需求自动编写简历?
你好,我是邢云阳。
上节课,我们写了一个工具,让 AI 可以访问我们本地的文件系统拿到简历信息,之后用这份完整简历测试了匹配岗位的效果。效果很不错,但却出现了大模型上下文长度不足导致最后的求职建议给不全的问题。
因此我们又借助 RAG 技术合理浓缩了简历。这个过程我们是顺势而为的,出现问题就解决问题,可能思路跳转得会有点快,不过大家也能从中学到更多知识点,而不仅仅是学会怎么调用 DeepSeek。希望你在课后也可以多多实践,加深理解。
这节课,是我们求职助手篇的最后一节课。都说 DeepSeek 写作能力强,这节课我们就来试试成色,让 DeepSeek 根据岗位需求,辅助我们编写简历。
写简历
获取岗位源数据
在之前匹配工作时,我们是根据岗位列表匹配的,也就是这个页面的信息。
实际上这个页面呢,信息量是有限的,只包含了岗位名称、要求技能、经验以及薪资待遇,公司名称等等主要信息,看不到公司情况、该岗位的详细要求描述这些信息,这样对我们写简历的帮助有限。
因此我们可以结合求职助手匹配到的三个岗位,进入到岗位详情页,把详细信息抓下来,或者手工复制下来都可以。比如我就想投递阿里云的 AI 应用开发专家TAM这个岗位,那就把该岗位的详细信息抓下来,组成这样的格式:
1. 岗位名称: AI应用开发专家TAM
公司名称: 阿里云
岗位要求: 岗位职责:
1. 基于阿里云大模型,支撑阿里云客户构建创新AI应用。帮助客户进行大模型的微调、再训练、模型评测、提示词优化等工作。
2. 负责帮助客户治理企业已有数据资产,进行数据集建设和知识工程加工。
3. 负责结合行业特点和业务场景,完成算法的工程化实现,沉淀可复用的AI应用资产。
4. 调研最新业界和学术界成果,对前沿AI应用方向进行持续探索。
任职要求:
1. 研究生及以上学历,计算机相关专业
2. 精通Python、JAVA或C++开发语言,3年以上算法开发经验,掌握数据处理、知识工程、算法选型、算法优化,开发及上线测试的全链路能力
3. 参与过完整的算法实现项目,有云计算&大模型对口行业实战算法项目经验加分
4. 有国产GPU适配经验者优先
加分项:
1. 有阿里云ACE认证者优先
2. 熟练使用阿里云AI大模型、AI开发平台产品、大数据产品者优先
3. 具备流利的英语会话能力者优先
技能要求: Golang,Java,PostgreSQL,机器学习经验,Redis,Numpy,PyTorch,MySQL,MongoDB,架构设计经验,Python,Kubernetes,TensorFlow
薪资待遇: 30-50K
之后,就可以根据这个内容,帮我们完善简历了。
完善简历
完善简历重点在于 prompt 的编写,内容如下:
ResumePrompt = """
你是一个 AI 简历助手。我会给你提供我的简历以及某公司的详细岗位要求。你的任务是根据公司的岗位要求, 帮我改写和完善我的简历,使我的简历符合该公司的要求。
简历:
{resume}
岗位要求:
{input}
"""
我这里给出了简历以及岗位要求,让大模型根据公司的要求帮我完善简历。
我们结合上节课的从本地导入 docx 文件的代码来完成这一次的代码。
def load_doc() -> list:
word=UnstructuredWordDocumentLoader('E:\\AI\\个人简历.docx')
docs=word.load()
return docs
def fix_resume():
prompt=PromptTemplate.from_template(ResumePrompt2)
llm=DeepSeekR1()
docs=load_doc()
chain={
"resume": lambda _: docs,
"input":RunnablePassthrough()
} | prompt | llm | StrOutputParser()
ret=chain.invoke(load_jobs())
print(ret)
我是将岗位需求抓下来后,放在了 job.txt 中。之后在 fix_resume 方法中,首先导入 prompt 模板,然后初始化 DeepSeek 客户端,之后重点代码就在于构建 chain。chain 其实很好理解,就类似于管道操作。比如在 Linux 中,我们常用到 grep 命令过滤字段,就像这样:
这条命令的意思是,首先使用 cat job.txt 获取 job.txt 文件的内容,然后把内容通过管道 | 传递给 grep AI 这个命令进行过滤,这样就会只显示出 job.txt 中包含 AI 的内容。
回到我们代码中的 chain,这个 chain 的意思是首先通过 “input”:RunnablePassthrough(),为 prompt 模板中的 input 字段赋值,这个值是 chain.invoke 赋的。之后把 input 的值传递给了 prompt,然后把 prompt 传递给 llm 大模型,最后把大模型的返回结果传递给 StrOutputParser(),让其将大模型的返回结果解析成字符串输出。
我们看一下代码输出结果:
以下是针对阿里云AI应用开发专家TAM岗位的简历优化建议(关键修改部分用【】标注):
张小明 | 10年AI应用开发经验
所在地:上海 | 联系方式:zhangxiaoming@x.xxx
求职意向:阿里云AI应用开发专家TAM
---
### 教育背景
山东大学 计算机科学与技术 学士(2011-2015)
【补充】主修课程:机器学习基础、分布式系统、自然语言处理导论
【新增】阿里云ACE认证(2023)
---
### 核心优势
- 10年阿里云AI产品全栈开发经验,主导3个千万级AI产品落地
- 兼具AI算法工程化能力(RAG/微调/模型优化)与云原生架构设计能力
- 深度参与客户侧AI应用开发,累计支持20+企业客户AI转型
- 国产GPU适配项目组成员(2024)
---
### 工作经历
**阿里云 | 云原生研发工程师(2015-2025)**
AI产品技术负责人(2022-2025)
- 主导AI套件开发,支撑客户完成【大模型微调(平均精度提升18%)】、【知识库构建(处理PB级企业数
据)】、【生产级RAG系统部署】
- 设计AI Agent开发框架,实现【客户业务场景算法工程化模板】沉淀,提升交付效率40%
- 构建企业数据治理方案,通过【智能ETL管道】完成非结构化数据向量化处理,支持500+客户知识工程需
求
- 牵头国产GPU适配项目,优化CUDA算子实现,达成【训练效率提升25%】的技术突破
---
### 重点项目
**云原生智算平台(2025)**
- 开发AI应用全生命周期管理平台,集成【模型微调工具链】、【自动化评测系统】、【智能提示词工厂
】等核心模块
- 实现客户侧算法快速部署能力,支持【TensorFlow/PyTorch框架无缝迁移】,日均处理300+推理任务
- 构建多租户数据隔离方案,通过【知识图谱引擎】实现企业数据资产智能治理
**K8s AIOPS平台(2024)**
- 研发基于大模型的智能运维系统,设计【自然语言指令解析引擎】,准确率达92%
- 开发集群健康诊断算法,通过【时序预测模型】实现故障提前预警,降低客户运维成本35%
- 集成阿里云日志服务/SLS,构建【跨云可观测性解决方案】
---
### 技术栈
**语言**:Python(精通)、Golang(精通)、Java(熟练)
**AI技能**:大模型微调(LoRA/P-Tuning)、RAG系统设计、PyTorch/TensorFlow工程化
**云原生**:Kubernetes(CKA认证)、Serverless架构、Service Mesh
**数据处理**:PostgreSQL向量检索、Elasticsearch、Spark数据处理流水线
**语言能力**:英语流利(技术文档撰写/国际会议演讲)
可以看到,DeepSeek还是帮我们完善了很多与岗位相关的内容的。这样我们就可以根据简历内容再调整一下,把自己确实不会的去掉,避免面试时被问到但不会的尴尬。
根据模板进一步完善
不过我认为这份简历感觉还是略显简单,尤其是项目部分,几句话就写完了,无法给人留下深刻的印象。因此我们可以在提示词中加一个模板,让其在项目经历等关键部分,按照模板进行改写。完善后的提示词如下:
ResumePrompt2 = """
你是一个 AI 简历助手。我会给你提供我的简历以及某公司的详细岗位要求。你的任务是根据公司的岗位要求, 帮我改写和完善我的简历,使我的简历符合该公司的要求。
此外,我还会给你一个简历模板,模板中会包含简历中部分内容的大纲,当你匹配到我的简历中有模板提及的内容时,要按照我模板的格式进行编写。
简历:
{resume}
简历模板:
专业技能
请在此描述符合职位要求的技能,尤其是编程技能
项目经验
(1) 项目描述
(2) 我在项目中的角色
(3) 项目规模
(4) 技术堆栈
(5) 已开发模块的描述
(6) 解决难题的经验
岗位要求:
{input}
"""
效果:
以下是按照您提供的模板和岗位要求优化后的简历(注:部分内容需您补充完善):
=====================
**张小明**
所在地:上海 | 求职意向:AI应用开发专家 | 工作年限:10年
联系方式:zhangxiaoming@x.xxx
---
### 专业技能
- **AI开发**:精通大模型微调、RAG技术优化、AI Agent架构设计,主导过企业级AI应用资产沉淀
- **编程能力**:精通Python/Golang(10年+),熟悉Java/C++,熟悉PyTorch/TensorFlow框架
- **云原生**:Kubernetes专家(5年+),主导过容器化大数据平台、AI智算平台架构设计
- **数据处理**:掌握数据治理、知识工程全流程,熟悉MySQL/PostgreSQL/MongoDB数据库技术
- **行业经验**:阿里云AI套件核心开发者,熟悉阿里云AI开发平台及大数据产品生态
---
### 项目经验
#### 云原生智算平台(2025)
**项目描述**:阿里云AI应用支撑平台,集成大模型部署、API管理、RAG增强、微调服务等功能,支撑500+企业客户构建AI应用
**担任角色**:技术负责人(团队15人)
**技术栈**:Python/Golang/K8s/PostgreSQL/PyTorch/阿里云PAI
**核心成果**:
1. 设计大模型微调模块,实现客户私有数据适配效率提升60%
2. 开发知识工程加工系统,支持非结构化数据自动向量化存储
3. 构建RAG服务治理体系,实现多源数据检索响应速度优化40%
**解决难题**:突破混合云环境下GPU资源动态调度技术,获阿里云ACE技术创新奖
#### K8s AIOPS平台(2024)
**项目描述**:基于大模型的智能运维系统,日均处理10万+集群操作请求
**担任角色**:架构设计师
**技术栈**:Python/K8s/NLP/Redis/阿里云ECS
**核心模块**:
1. 开发自然语言指令解析引擎,准确率达92%
2. 构建集群健康度评估模型,故障预测准确率提升35%
3. 设计国产GPU适配层,支持多种异构计算资源调度
#### 容器大数据平台(2023)
**项目描述**:云原生大数据基础设施,支持快速部署Spark/Flink等组件
**技术亮点**:
- 实现k8s原生作业提交接口,资源利用率提升50%
- 开发数据血缘追踪模块,获国家技术专利(专利号需补充)
---
### 工作经历
**阿里云 | 云原生研发工程师**(2015-2025)
- 主导AI套件产品线研发,年服务客户超2000家
- 完成10+重点客户AI应用落地,沉淀可复用解决方案23套
- 推动国产GPU在云原生环境的适配验证,节省硬件成本40%
---
### 教育背景
山东大学 | 计算机科学与技术 | 学士(2011-2015)
---
### 附加信息
- 英语:CET-4(可补充具体英语项目对接经验)
- 认证:阿里云ACE认证(如有请补充)
- 认证:阿里云ACE认证(如有请补充)
- 技术专利:容器化数据治理系统(申请号需补充)
可以看到,DeepSeek 还是努力按照我们的要求进行改写了。但其实由于我们的简历太过简单,项目描述只有一句话,因此大模型很难参考其内容,把项目写得太丰富。这其实也说明了,提示词质量的重要性,毕竟简历在这里也是提示词的一部分。大家可以课后拿一份自己的求职简历,做一下测试。
总结
这节课,我们做了一件轻松且有意思的事,那就是让 DeepSeek 根据详细岗位需求帮我编写或者完善一份简历。
代码部分可以说非常非常简单,如果你对 LangChain 不熟,纯使用前置课程那种调用 SDK 的方式也能完成,主要技术点其实就是 prompt 的编写。prompt 编写看似很简单,实则是有技巧的,这也是 prompt 工程时这个职业诞生的原因。在未来的 AI 开发中,prompt 编写将是基本功,得 prompt 得天下。
这节课的代码,我已经上传到 GitHub,链接是Geek02/class17/resume at main · xingyunyang01/Geek02,你可以课后下载代码自己测试一下。
思考题
在第 15 课的求职助手中,AI 曾在匹配到合适岗位后,给出了一些求职建议。我们是否可以结合这些建议,进一步完善简历呢?
欢迎你在留言区展示你的思考结果,我们一起来讨论。如果你觉得这节课的内容对你有帮助的话,也欢迎你分享给其他朋友,我们下节课再见!
- 两三天 👍(2) 💬(1)
老师提示词是越多越好吗?有没有一个经验值表示在什么范围内比较合适?
2025-04-10 - 不在线 👍(1) 💬(1)
这也是 prompt 工程时(师)这个职业诞生的原因
2025-04-07 - ifelse 👍(0) 💬(1)
学习打卡
2025-04-17