利用两周的业余时间,我开发了一个智能简历制作工具的分享

300 阅读8分钟

背景

最近因为一些个人原因准备换工作,重新找工作,那简历是很重要的一部分,它是敲门砖,代表着自己的门面。但市面上的简历模版个人实在是不喜欢(没有吐槽别的意思),单纯觉得风格上不是很满意。

再回想起2019年换工作那次,也是因为这个原因,后来直接使用makedown编写的简历,最终导出pdf再投出去。可能因为自己是程序员的原因,makedown的简介风格很是喜欢,但是makedown编辑器对于头像的处理等就是很方便啦。

基于这两次自己换工作的遇到的痛点问题,再加上当下火热的AI大模型技术,作为一名技术人员,突然有了这么个想法:自己做一个吧,做一个风格简洁、大气,排版和内容符合大厂面试官要求的,同时融入AI的能力,帮我进行修错和提修改建议等,这貌似是很有趣的一件事情。

简历Bot

有了上述的背景说干就干,先起个名字吧,脑子里蹦出来第一个名字是 简历Bot(简历机器人的意思)。

下一步先把简历Bot相关的信息注册下来,这个过程相比开发容易很多,先做了以下几件事

1、域名注册

好巧不巧,这两个域名居然还没被人注册,赶紧拿下,该说不说,挺好的两个域名:

jianlibot.com

jianlibot.cn

(补充:这两域名还在备案中,目前还没发使用,目前的替代品:www.coderutil.com/jianlibot

2、抖音、小红书等媒体平台账号

做出来只是自己使用,那是很没劲的一件事,如果可以让更多的人用到,会很有成就感。所以运营是少不了的,首选抖音、小红书等自媒体平台:

file_1ff0f6d73f1746cf9b537c69ba35ccb1.png



3、slogan

起一个让人很容易能够记得住的slogan也是很有必要的,参考Boss直聘:找工作,用Boss直聘,那我们就叫:找理想工作,就用简历Bot吧

前面的一些准备就差不多,可以开始技术、到实现啦

4、大模型选型

处理简历AI助手,其他的功能都是常规的业务,没有特别复杂的东西。模型选型对最终呈现的AI效果等都有直接影响。通过对比了国内的几家模型之后,我决定选用 Kimi

理由就是kimi支持长上下文,这个真的很重要,因为我们的处理对象是简历,是文档,如果模型没发支持长上下文,那整个流程是跑不下去的。

5、基于大模型简历内容解析与结构化技术分享

简历bot设计的技术点非常的多:比如上传简历,AI进行信息抽取;AI根据岗位要求自动生成简历;AI生成的简历数据如何在页面上准备有序结构化的回显;再比如ai对话过程中如何实现上下文数据的存储、选用websoket还是sse实现长链接来支持流式响应、在连接处中如何中断、连续对话等等技术问题吧。

这里挑简历解析一个点简单做个分享,后续全套技术实现会在程序员盒子小课中以课程的形式给兄弟们分享(需要先准备小一个月的时间)。

先简单思考下这个过程应该怎么实现?我是这样想的:

1、用户上传简历pdf/doc文档

2、服务端拿到文档后解析文档纯文本内容

3、怎么识别解析出来后的一大段纯文本那几个字是姓名,那几个字又是学校名、项目信息等,这个过程专业术语叫信息抽取,也是最难的一步。别怕我是说放在以前,这个过程的实现非常的困难,现在有了大模型,变的很简单啦。

4、通过大模型抽取纯文本内容中的用户信息、应聘岗位、学历、工作经历、项目信息……等关键内容

5、还是交给大模型,将上一步抽取到的关键信息按照我们业务所需要的简历JSON结构进行填充,直接给我抽取并且结构化后的json数据

6、服务端拿到JSON数据后,构造我们自己的简历模版html文件

7、构造出来的html文件内容(新的简历内容)在页面回显。

这就是简历内容抽取和回显的实现流程,其中最重要的是第4、5两步,我们利用大模型的prompt工程,给他输入一段prompt,大概示例如下:

你是一个简历助手,请将我的简历内容信息进行提取,并按照我的json模版返回给我最终json结构。
我的json模版:
{
    "job": "应聘岗位名称",
    "user": {
        "userName": "用户名",
        "email": "邮箱"
        .....
    },
    "educations": [
        {
            "school": "学校",
            ....
        }
    ],
    "projects": [
        {
            "name": "项目名称",
            "description": "项目介绍"
            ......
        }
    ]
    .....
}
简历内容为:
Java高级开发工程师张三男18800000000 111@163.com...

模型最终会返回给我一个抽取完信息且按照我的json模版结构返回给我的数据。在拿这个json会构造简历模版html做回显。

其他更多相关的技术实现,欢迎关注 程序员盒子技术社区(www.coderutil.com) 后续会以技术专题的形式分享,这里不展开啦。

简历bot几个优势

1. 简洁大气的模版

按照自己的喜欢设计的模版风格,个人很是满意,不管你觉得如何,反正我觉得 够简洁 够大气,直观,信息突出,信息分类清晰,编辑体验好(模版所有文字、标题、图片都可直接在页面上进行编辑、所见即所得)。

file_1a75ef1cfda04e88a9caeee70958adec.png



2、AI自助生成能力

关于这个能力建设初期,我个人是觉得没啥必要的,毕竟没有人会直接使用AI生成的内容,还是修改,而且基础是全改,感觉没必要。

但是当我在程序员盒子交流群里,上线前跟兄弟们showcase的时候,有兄弟提到对于学生等没有简历制作经验的小伙伴来说,输入招聘岗位要求,ai自动生成一份强相关的简历内容,对于他们来说有一定的参考价值。嗯~ 听完我觉的是这么个道理,那就支持上,反正也就两小时可以搞定的事情(哈哈哈,没吹牛,整个AI生成前后端交互实现现在确实两小时内)如下:

file_44f4f7c0c33c45f7a16dc2ac64e0b5d7.png



点击 AI自助生成 按钮,录入招聘要求、岗位信息,一键生成相关简历内容:

file_bee4fcb877494643bd794c937c776acf.png



3、AI智能总结、纠错、修改建议反馈、评分、模拟面试等

当我们简历写好后,点击旁边的ai助手图标,ai会自动开始对当前简历内容进行分析:

file_9a05114d1f6b4717b5fa9cc3d60b9e4e.png



分析结果

file_22b2d65a761c4770894beba8bc9f4ab4.png



这样一方面可以识别到一些低级错误,帮我们做一次检测;往深一点还可以识别到一些逻辑逻辑,优化建议等,相当于拥有一个简历优化助理。

对话支持上下文,你可以就当前对话内容,继续提问,比如:“针对我的这份简历,最有可能被面试官问到的5个问题是?”

file_81118faf595547669584707f090b06ee.png



说真的,这几个问题我觉得他给的非常的好。

4、智能证件照

如果公司有要求简历必须提供蓝色背景的证件照,而你手上只有一个白底/红底/生活照,没关系,我们简历Bot内置里图像处理的小工具,目前提供了智能证件照、智能抠图两个应用,操作非常的简单:

file_bef9b1588bf24e068babe23aa41a1e1f.png



同时还支持了几十套服装模版,任你选择:

file_7f4cf0e1613c41ffb30348ed4926b914.png



简历Bot定价

天下没有免费的午餐,但是简历Bot有,新账号首次访问简历Bot,系统随机赠送使用时长,因为是随机的,所以能抽到多长的时间完全看自己的运气啦。

没有时长了,怎么办?买吧,买买买!没办法,模型和服务器等成本都非常的高,我没办法为大家提供免费的服务,但是我们的定价很低,不会让人很心疼,也很人性化,你自己推测自己制作简历大概需要多久,那就买多久,不都在单独买,购买会员套餐后以上全部能力都打包在哪,会员有效期内所有功能不限量使用!

file_07502521dd09418dbacc36476d392a4b.png



最后

在文章结束部分,让我们大声的念出那句slogan

找理想工作,就用简历Bot!!!

喂,等等,在跟你发一下链接,目前提供的替代链接是这个:

www.coderutil.com/jianlibot