Loading... ## 引言 今日闲来无事,投投简历,在boss的网页版投了一会,发现有点麻烦: + 先得看到合适的岗位,点进岗位详情 + 点击右上角的“立即沟通” + 弹出来的框框,还得点击“留在此页” 关键是,我自己认真看没用啊,人家HR直接一键筛选掉! 而我一个个认真看详情,既浪费时间,又浪费心情 再加上看多了已读不回,甚至有种很强烈的挫败感。 索性一不做二不休,写个插件,一步到位,点击就投递,投递完就下一个! ## 功能 + 在左边职位列表,增加一个投递按钮 + 点击即发起沟通,自动留在当前页面(不去聊天页面) + 计数浏览岗位数量和沟通岗位数量,控制台打印 + 看完一页(通常是15个)之后,自动回到顶部,并且将看过的职位移除 ![最终效果](https://static.hw13.cn/usr/uploads/2024/11/2625481459.png) 当然,这里的按钮样式我没做很好的修改,毕竟将就着用就完事了,俺是实用主义 ## 代码实现 ```js // ==UserScript== // @name Boss直聘一键投递按钮 // @namespace http://tampermonkey.net/ // @version 2024-11-01 // @description try to take over the world! // @author You // @match https://www.zhipin.com/web/geek/job-recommend* // @icon https://www.google.com/s2/favicons?sz=64&domain=zhipin.com // @grant none // ==/UserScript== (function() { 'use strict'; let countAllJobs = 0; let countSendJobs = 0; function oneClickSend() { console.log("执行了oneClickSend函数"); // 所有的职位 let curJobs = document.getElementsByClassName('job-card-footer') if (curJobs.length < 1) { alert("拿不到职位列表") return ; } countAllJobs += curJobs.length; console.log(`已经浏览了${countAllJobs}个岗位,已投递了${countSendJobs}份简历`); for (var i = curJobs.length - 1; i >= 0; i--) { let curJob = curJobs[i]; let btn = document.createElement('button'); btn.setAttribute('class', 'mySendJobBtn') btn.innerText = '投递'; // 添加按钮 curJob.append(btn) btn.onclick = function() { // 进入职位详情 curJob.click() // 等待职位详情内容渲染 setTimeout(() => { // 模拟投递 let toudiBtn = document.getElementsByClassName('op-btn-chat')[0] if (toudiBtn.innerText == "立即沟通") { toudiBtn.click() // 等待职位投递结果 setTimeout(() => { let stayHeres = document.getElementsByClassName('cancel-btn'); if (stayHeres.length < 1) { alert("无法点击留在此页") return ; } // 继续留在本页 stayHeres[0].click() toudiBtn.innerText = "已投递,继续沟通" console.log("投递成功") countSendJobs += 1; }, 1000) } else { console.log("此岗位已投递过") } }, 500) } } } function cleanMyBtns() { console.log("执行清除"); let allMyBtns = document.getElementsByClassName('mySendJobBtn'); if (allMyBtns.length < 1) { return ; } for (var i = allMyBtns.length - 1; i >= 0; i--) { allMyBtns[i].parentElement.parentElement.parentElement.remove() } // 返回顶部 window.scrollTo(0, 0) } function main() { console.clear(); let startScriptBtn = document.createElement('button'); startScriptBtn.innerText = '脚本执行'; startScriptBtn.onclick = function() { cleanMyBtns(); oneClickSend(); } document.getElementsByClassName('recommend-search-more')[0].append(startScriptBtn) } // 防止页面没加载完 setTimeout(main, 1000) })(); ``` ## PS 有不懂怎么用的,可以在网上搜索“篡改猴”,放进里头的插件就行 毕竟这玩意就是闲着写的小玩意,我就不放GitHub了。 PPS:还是不会的,可以关注公众号,直接发消息问我,或者留言哦 欢迎关注拓行公众号,分享各种技术博客文章拓行——奋勇进取,开拓未来,砥砺前行 最后修改:2024 年 11 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果您对各种技术博客文章感兴趣,欢迎关注拓行公众号,分享各种专业技术知识~