BOSS直聘招聘端AI辅助自动化技术研究
最近公司HR反映直聘上虚假应聘者越来越多,比如你找个程序员,就会有各种外包开发公司或者零工平台冒充求职者发简历应聘,此外还有不少求职简历和职位要求八竿子都打不着,这些估计都是用海投工具的,虽然我就做过这样的海投工具😎,但是有矛就得有盾,社会才能和谐😁。于是我就开始造盾了,写这篇文章时我开发的招聘工具(暂且称之为“BOSS助手”)已使用了3个月,对BOSS招聘端的业务逻辑也有了比较充分的了解,下面就介绍下我的实现过程,也算做一次总结。
BOSS直聘招聘端技术架构
boss直聘目前有3种登录招聘账号的方式,分别是手机APP、电脑客户端、浏览器,如果做自动化,浏览器肯定是最好入手的方式。web端仍是vue的技术栈,只不过不像以前的求职端,用的是比较老的版本,现在已经完全使用vite打包,所以单从页面代码上是很难看出逻辑的,而且部分地方是还使用了wasm技术,这样加解密的逻辑逆向难度就非常高了,但是无论怎样它都是在浏览器运行,那就离不开js,这样就能找到切入点,无非就是要多些耐心去研究。
首先从登录开始,入口页面与求职端是一样的,区别就是要切换到“我要招聘”
这里做自动化有两种方式,
1、拦截二维码发送到其它渠道进行扫码登录,但是二维码的有效期很短,要及时操作。
2、手机+短信验证码,然后还得处理人机校验,相对第一种方式更麻烦,需要借助一台手机接码和通过专用的ai来完成人机校验,但是可以做到登录过程完全自动化。如果只是少量招聘账号就没有必要用这种方式,维护成本也会比较高。
当然最安全的方式还是人肉登录,但是boss直聘对异地登录管控很严,反复几次PC端登录权限就会被管控。有人可能说我用固定的代理ip不就行了,但是boss在你每次操作时都会上报操作的设备信息以及鼠标的点击位置,所以它真想要识别你并不难。
登录成功后就会进入首先进入聊天界面,这里的用并不是vue单页应用,左侧的除了聊天菜单其实都是加载一个iframe
而且对于多页面打开做了限制,比如你同时打开两个聊天页面,另一个就会自动登出,一方面为了反爬,另一方面也是为了节约mqtt消息长链接。
接下来自动化要解决的就是api接口和消息两个主要问题。
API
先说API接口,header中下面三个参数是关键,可以用postman去模拟请求,部分接口会有signX参数,cookie没什么好说的,其它参数都可以在js中找到生成逻辑,为避免麻烦,这里就不公开了。
MQTT
然后消息这块和求职端技术是一样的,具体可以看我博客研究BOSS求职端的文章,用的是protobuffer协议,找到定义文件,解密即可,为避免麻烦,这里就不公开了。
有人说直接调用接口会被封账号,那是因为没有掌握接口的正确调用姿势,你想浏览器上的运行的所有代码最终都是通过接口和boss的服务器交互,所以调用接口一定是最高效的方式。如果使用无头浏览器做模拟鼠标操作,定位元素的成本就很高,每次页面的小小调整就有可能导致你的整个流程失效,而且vue等现代前端框架都是虚拟dom,靠css或id定位元素就非常不可靠。
工具的操作流程
下面是开发好的工具大致功能说明
注册
在使用本工具前您需要用自己邮箱注册工具的账号(非boss直聘账号),已注册的用户可跳过。
添加BOSS直聘账号
这里一定要用boss直聘招聘者账号,不要用求职者账号,否则无法使用
登录成功后左侧会显示您的boss账号信息
招聘任务
本工具可以自动在boss直聘的【搜索牛人】或【推荐牛人】两个入口进行自动打招呼,但是【搜索牛人】需要开通直聘的付费服务(具体咨询boss直聘客服),否则无法使用。
添加任务
基础配置
- 【选择职位】必须选择。只会显示boss直聘中您开放的职位。
- 搜索入口二选一,如果没有购买BOSS直聘服务,那么只能选择【推荐牛人】入口。
- 点击【设置搜索条件】会弹出boss直聘的界面,请在弹出的boss界面里选择好筛选条件,然后关闭弹出的boss直聘页面。请勿在页面中做筛选以外的操作,否则会导致筛选无效和搜索不到牛人!
【推荐牛人】设置搜索条件
【搜索牛人】设置搜索条件
Ai招呼语
默认是关闭的,打开后会结合当前的职位和牛人简历自动生成一段招呼语,打开前需要先配置大模型密钥。该功能打开后,前面已设置的固定招呼语将失效。
【自定义Ai提示词】打开该功能后,点击编辑提示词,可为该职位的任务单独定制招呼语提示词。
Ai评估求职者
启用该功能后,将先对求职者信息进行评估,满足要求后才会打招呼,启用该功能后会出现如下界面
【自定义Ai提示词】开启后点击编辑提示词即可覆盖系统默认的提示词。注意:评估的结果取决于提示词。系统有通用提示词,也可以根据自己的实际需要进行调整。
【评估阈值】如果Ai评估结果低于该阈值则不会和求职者打招呼或回复该求职者的消息。
【打招呼前评估】打招呼前对可见的牛人信息进行评估,如果低于阈值则不会打招呼。需要注意:打招呼前并不能获得牛人的完整信息,比如工作经历、附件简历等。
【收到简历后评估】收到牛人发送的附件简历后进行评估,如果低于阈值,则不再自动回复该牛人的所有消息。
自动回复消息
开启后会自动回复求职者发送的文本(不支持图片)消息。由于每个企业的回复逻辑都不一样,因此这里开放给用户自行配置,只有配置后自动回复才会生效!点击【配置】按钮进行配置
目前有“规则回复”和“Ai回复”两种自动回复方式,如果两种都配置了,那么会优先使用“规则回复”,在规则覆盖不了的情况下会再调用“Ai回复”的配置,如果两种都没有覆盖到,那么在app里会显示为未读消息,由人工去回复。
规则回复配置
可以按照消息的文字进行过滤并作出相应的回复或动作,具体请往下看。
点击“添加”按钮填写规则
规则填写说明:
比如我要匹配消息内容中包含“简历”两个字的,然后执行自动请求简历的操作,那么如下配置即可
点击“确定”,再点击“保存”。
多个关键字匹配有两种方式:
- A和B(A&B):即消息内容中既要包含A也要包含B,比如我要匹配“你们工资能给多少”和“你能给多少薪资”这两类消息,他们的共同点是都包含“你”和“资”,那么规则可配置为“你&资”。
- A或B(A|B):即消息内容中要么包含A要么包含B,仍然以匹配“你们工资能给多少”和“你能给多少薪资”这两类消息为例,要么包含“工资能给多少”,要么包含“多少薪资”,那么规则可配置为“工资能给多少|多少薪资”。
左侧的上下箭头按钮用于调整优先级,每条消息都会按顺序从上到下匹配你设置好的规则,一旦完成匹配,就不会再匹配后面的规则。匹配不上的将会在app内提醒,你再手工回复。
Ai回复配置
点击“Ai回复”开关开启Ai回复消息功能
这里有两个提示词来控制Ai回复的逻辑,它们在全局配置中可以自定义,在这里也可以自定义,这里的自定义配置只对当前的任务(职位)相关的消息生效。意图判断的目的相当于先对消息做一次过滤,筛选完后再交给回复求职者消息进行更详细的回复。目的是减少对大模型token的调用量,提高回复的效率。
AI配置
AI模型配置
本工具支持市面主流各大模型,也支持配置自己部署的模型,但是自己部署的模型需要支持OpenAI的sdk。
获取各大模型的配置信息可以参考下面的教程或者网上搜索。
获取deepseek密钥
获取豆包大模型密钥
添加大模型
点击添加按钮会出现下面的弹框,请在弹框内填入你已经获得的模型配置信息。
名称:随意填写,目的是当你配置多个模型时便于区分,不要重名即可。
描述:可选。
model:各大模型都有自己的模型id,详情咨询各大模型平台。
baseUrl:各大模型都有自己的模型baseUrl,详情咨询各大模型平台。
temperature:根据自己的需求和各大模型的特点选填。
API密钥:到各大模型平台获取
添加好模型后请按下面的步骤启用
大模型管理
工具支持添加多个大模型,但同时只能有一个模型在使用。如果启用ai相关功能,必须要有一个模型在使用。
【使用】使用该模型,使用后背景为淡蓝色。
【删除】删除模型配置,已使用的模型无法删除,只能编辑。
【编辑】编辑模型配置信息。调整过配置后,建议重新打开软件,确保配置生效。
提示词配置
工具有固定的提示词,按下图可以找到
每个提示词都可以自定义,但是在自定义前请先熟悉各个提示词的用途。