boss直聘实现自动回复以及自动获取简历功能

一、前言

最近得知公司有内推活动,但是本人工作繁忙,于是打算写个脚本来获取简历,赚点外快。于是针对boss直聘,写了一个脚本,用以实现自动回复以及自动获取简历功能。下面是第一个月挣的收益:

二、代码

谷歌浏览器F12打开控制台,运行以下脚本:

let intervalTime = 4 * 1000;
let waitTime = 200;

setInterval(() => {
    let newCount = document.getElementsByClassName('news-count');
    if (newCount.length) {
        newCount[0].click(); // 触发点击事件
        setTimeout(() => {
            // 如果我没有回复
            let myReply = document.getElementsByClassName('message item-myself');
            if (!myReply.length) {
                let test = setTimeout(() => {
                    writeAndClick();
                    clearTimeout(test);
                }, waitTime)
            }
        }, waitTime)
    }

    // 如果对方要求投简历
    setTimeout(() => {
        let hasResume = document.getElementsByClassName('link-agree')[0];
        if (hasResume) {
            hasResume.click();
        }
    }, waitTime)
}, intervalTime);


function writeAndClick() {
    let inputEle = document.getElementsByClassName('bosschat-chat-input chat-message')[0];

    if (inputEle) {
        inputEle.innerText = [
            `欢迎你投递xx公司的该岗位,因为公司正在急速扩招中,需要需要大量的人才。`,
            `简单的介绍一下xx公司:互联网和建筑行业的技术岗和非技术岗位(自研,非外包)都有。地点:上海、北京、深圳、重庆。面试简单、流程快、工资高、福利好。可视频面试和现场面试。想了解更多,可自行去百度或b站搜索xx公司,自行了解。`,
            `除此之外我们希望你:1. 本科及以上学历(研发岗位)2.至少一半工作时间不是外包的 3.有名校或者大厂工作经历(加分项)4. 如果你够厉害、可无视以上所有的点(不然,浪费彼此的时间也不好)`,
            `如果符合上述条件、希望各位大大自己要发送简历过来呀,我这边会默认接收的。不然会因为我不及时向你们要简历,而导致你们错过了最佳的投递时间哦`,
            `如果简历我这边通过的话(早中晚统一处理),会推给hr,并且每天通知你们内推进度的。如果没有回复的话,说明可能不太适合我们公司哦~。`
        ].join('\n\n');

        let keyCode = [9, 9, 13];

        for (var i = 0; i < keyCode.length; i++) {
            cCode = keyCode[i];
            fireKeyEvent(inputEle, "keydown", cCode);
            fireKeyEvent(inputEle, "keypress", cCode);
            fireKeyEvent(inputEle, "keyup", cCode);
        }


        document.getElementsByClassName('btn btn-send')[0].classList.remove('btn-disabled');
        document.getElementsByClassName('btn btn-send')[0].click();
    }
}

function fireKeyEvent(el, evtType, keyCode) {
    var evtObj;
    if (document.createEvent) {
        if (window.KeyEvent) {//firefox 浏览器下模拟事件
            evtObj = document.createEvent('KeyEvents');
            evtObj.initKeyEvent(evtType, true, true, window, true, false, false, false, keyCode, 0);
        } else {//chrome 浏览器下模拟事件
            evtObj = document.createEvent('UIEvents');
            evtObj.initUIEvent(evtType, true, true, window, 1);

            delete evtObj.keyCode;
            if (typeof evtObj.keyCode === "undefined") {//为了模拟keycode
                Object.defineProperty(evtObj, "keyCode", { value: keyCode });
            } else {
                evtObj.key = String.fromCharCode(keyCode);
            }

            if (typeof evtObj.ctrlKey === 'undefined') {//为了模拟ctrl键
                Object.defineProperty(evtObj, "ctrlKey", { value: true });
            } else {
                evtObj.ctrlKey = true;
            }
        }
        el.dispatchEvent(evtObj);

    } else if (document.createEventObject) {//IE 浏览器下模拟事件
        evtObj = document.createEventObject();
        evtObj.keyCode = keyCode
        el.fireEvent('on' + evtType, evtObj);
    }
}

三、原理说明

打开boss直聘网页版,我们会看到这样的界面:
在这里插入图片描述
只要你一直打开这个页面,左侧就可能会有很多未读信息,而我们要做的就是设置一个定时器,定时的去查询左侧是否有未读信息。放在前端,也就是查看dom节点树上是否有该dom节点:
在这里插入图片描述
有的话,就模拟鼠标点击事件,进入与该候选人聊天的界面,自动模拟聊天功能:
在这里插入图片描述
然后,如果候选人有回复的话,就会给你发简历,因为发了简历还需要点击“确定”才能接收简历。所以同样地,按照上面的思路,定时查询是否有人发简历,有的话,就模拟点击事件接收简历:
在这里插入图片描述
最后,只要我们在闲暇的时候查阅一下简历,放到内推系统上就可以了。当然,能不能到面试那一轮,就得看hr和广大面试官们了。

四、结语

因为最后查阅简历的这一步太耗时间了,所以这个内推工作做了一个月之后,就没做了。
并且,因为前段时间这个脚本被boss直聘反爬虫了,所以现在用不了。
因此,这个脚本目前可能只具有学习参考意义。

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值