摘要: 本文不仅是一个“上岸”复盘,更是一个个人项目的完整开发手记。在求职的“黑暗时期”,我为自己构建了一个AI求职Agent,它不仅帮我拿到了Offer,现在,我决定把它分享出来,希望能成为更多技术同行的“光”。
一、 缘起:当求职变成一场“反爬”与“被反爬”的战争
今年失业后,我做的第一件事,就是想写个爬虫,去聚合招聘信息。结果发现,Too young, too simple. 各大平台的反爬机制,已经把我这种小打小闹的脚本安排得明明白白。
我突然意识到,现代求职,本质上就是一场信息战。 企业用ATS(AI筛选系统)来“反爬”我们这些求职者,而我们,却还在用最原始的“人肉”方式去撞墙。
这不公平,也不够Geek。
与其抱怨AI求职软件哪个好,不如自己动手,丰衣足食。我决定,把求职本身,当成我的一个开源项目来做。我给它起了个名字,叫“云端职达”。
二、 架构选型:做一个真正“懂我”的AI求职智能体
我的目标不是做一个简单的自动投简历工具,而是做一个能理解我、为我规划、替我执行的Agent。
[此处可配一张图:项目的架构图,包含感知、规划、行动三个核心模块]
感知模块 (Perception): 我使用了Scrapy框架结合Selenium来解决动态加载和反爬问题,实现对设定目标的7x24小时岗位监控。所有数据进入一个MongoDB队列。
规划模块 (Planning - The Brain): 这是项目的灵魂。我没有自己训练模型,而是巧妙地利用了LangChain来编排多个LLM的API调用。
JD解析与向量化: 对抓取到的岗位描述进行深度解析,提取关键技术栈、软实力要求,并将其向量化。
简历-JD精准匹配: 我把我所有的项目经历存入一个ChromaDB向量数据库。通过计算JD向量与我简历向量的余弦相似度,实现远超关键词匹配的精准度。
行动链生成: 对于高匹配度的岗位,LLM会生成一个行动指令集,例如:“为该岗位生成求职信”、“准备XX项目的面试说辞”、“3天后进行一次跟进”。
行动模块 (Action): 根据大脑生成的指令,RPA单元(我用了PyAutoGUI的简化思路)会执行内容填充、初步沟通等操作。
三、 从“作品”到“产品”:意外的收获
这个“外挂”跑起来后,我的求职效率提升了至少10倍。我不再焦虑,因为我知道,我的Agent在后台为我工作。
最戏剧性的是,在我最终拿到Offer的面试中,我用了整整20分钟,向面试官完整地展示了我这个“云端职达”项目。从需求分析到架构设计,再到遇到的技术难点和解决方案。
面试官听完后,笑着说:“你不用等通知了,我们现在就需要一个像你这样,能用技术手段系统性解决业务问题的人。”
入职后,我并没有停止对“云端职达”的迭代。很多朋友听说了我的故事,都想试试我这个“神器”。于是,我花了一些周末,把它从一个本地运行的脚本,重构成了一个SaaS化的Web应用。
我把它部署上线了,希望能帮到更多像我当初一样迷茫的开发者。
这个AI求职智能体真的很好用,我把它做成了免费使用的模式,希望能帮助更多人。
免费使用链接在这里:zhida.century-cloud.com/register/free
我为它录制了一个快速上手的视频,注册后在首页就能看到,花3分钟看一下就知道怎么用了。它能帮你完成90%的重复性求职工作,让你把精力真正聚焦在面试本身。
希望我的这个个人项目,能成为你在求职路上的一把利器。

被折叠的 条评论
为什么被折叠?



