引言

今日闲来无事,投投简历,在boss的网页版投了一会,发现有点麻烦:

  • 先得看到合适的岗位,点进岗位详情
  • 点击右上角的“立即沟通”
  • 弹出来的框框,还得点击“留在此页”

关键是,我自己认真看没用啊,人家HR直接一键筛选掉!

而我一个个认真看详情,既浪费时间,又浪费心情

再加上看多了已读不回,甚至有种很强烈的挫败感。

索性一不做二不休,写个插件,一步到位,点击就投递,投递完就下一个!

功能

  • 在左边职位列表,增加一个投递按钮
  • 点击即发起沟通,自动留在当前页面(不去聊天页面)
  • 计数浏览岗位数量和沟通岗位数量,控制台打印
  • 看完一页(通常是15个)之后,自动回到顶部,并且将看过的职位移除

最终效果

最终效果

当然,这里的按钮样式我没做很好的修改,毕竟将就着用就完事了,俺是实用主义

代码实现

// ==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

有不懂怎么用的,可以在网上搜索“篡改猴”,放进里头的插件就行

PPS:还是不会的,可以关注公众号,直接发消息问我,或者留言哦


欢迎关注拓行公众号,分享各种技术博客文章

拓行——奋勇进取,开拓未来,砥砺前行

最后修改:2024 年 12 月 06 日
如果您对各种技术博客文章感兴趣,欢迎关注拓行公众号,分享各种专业技术知识~