Greasy Fork is available in English.
1.boss直聘 自动打招呼 2.拉勾 自动投递简历 3.猎聘 自动打招呼
// ==UserScript==// @name Boss-自动打招呼_3// @namespace http://tampermonkey.net/// @version 0.4// @description 1.boss直聘 自动打招呼 2.拉勾 自动投递简历 3.猎聘 自动打招呼// @author imcuttle// @license MIT// @match https://www.zhipin.com/*// @grant none// ==/UserScript==(function () {"use strict";// 拉勾##列表 __NEXT_DATA__.props.pageProps.initData.content.positionR###lt.r###lt// 猎聘## document.querySelector('.chat-btn-box .ant-btn').click()var retryCheck = function (checkFun,interval,nextFun,times,delay,startTime) {if (!times) times = 1;else times += 1;if (!delay) delay = 0;if (!startTime) startTime = new Date().getTime();setTimeout(function () {if (checkFun(times)) {if (delay) {var detal = delay - (new Date().getTime() - startTime);if (detal > 0) setTimeout(nextFun, detal);else nextFun();} else nextFun();} else retryCheck(checkFun, interval, nextFun, times, delay, startTime);}, interval);};var t;function killTime() {clearTimeout(t)}let checking = false;var bossHandle = function (e) {let el = document.querySelector(".tools-btn");console.log('checking', checking)let closeHandle = () => {el.innerText = "自动打招呼";el.style.background = "#67C23A";checking = false;killTime();}let openHandle = () => {checking = true;el.style.background = "#E6A23C";var getLst = () => {const lstTmp = document.querySelectorAll(".recommend-card-list .candidate-card-wrap");const validList = Array.from(lstTmp).filter(item => {const joinText = item.querySelector('.col-2 .row.row-flex .content')?.textContentconst baseInfo = item.querySelector('.col-2 .row.base-info.join-text-wrap')?.textContentconst workBg = item.querySelector('.col-3 .timeline-wrap')?.textContentconst tmps = baseInfo && baseInfo.match(/(\d+)岁/)if (baseInfo && baseInfo.includes('应届生')) {return false}if (!tmps || !tmps[1] || Number(tmps[1]) > 32) {return false}if (!joinText || !joinText?.includes('前端')) {return false}if (!workBg || !['阿里', '腾讯', '百度', 'Facebook','Google', 'Amazon', '亚马逊', '微软','唯品会', '盒马', '#东', '快手', '滴滴','小米', '网易', '猿辅导', '学而思', '字节','虾皮', 'Shopee', '360', '蓝湖', '高德',// '','嘀嘀', '美团', '三快'].some(k => new RegExp(k, 'i').test(workBg))) {return false}console.log({joinText,baseInfo,workBg,})return true})return {validList,list: lstTmp}}let ct = 1;let successedCount = 0;let current = getLst();const delay = (ms) => new Promise(res => setTimeout(res, ms))async function callFn() {let domconst goNext = async () => {if (!checking) {return}let prevLen = current.list.lengthdocument.scrollingElement.scrollTo(0, Number.MAX_SAFE_INTEGER)await delay(2000);const tmp = getLst();if (tmp.list.length <= prevLen) {alert('到底了!')closeHandle()} else {current = tmpif (ct >= tmp.validList.length) {await goNext()} else {dom = current.validList[ct-1]}}}do {if (!checking) {return}dom = current.validList[ct-1]el.innerText = "停止打招呼(" + ct + "/" + (current.validList.length) + ")";if (!dom) {await goNext()}if (!checking) {return}const hiBtn = dom.querySelector(".btn.btn-greet");if (!hiBtn) {ct++;continue}hiBtn.click();await delay(1000);ct++;} while (dom);closeHandle();}callFn();}if (checking) {closeHandle();} else {openHandle();}};((_) => {console.log('jobs tools start ============================================');let el = document.createElement("button");el.setAttribute("style","width:140px;height:30px;border:0;color:#fff;background-color:#67C23A;cursor:pointer;outline: none;position: fixed; top: 0; left: 0;z-index:99999;");el.setAttribute("class","tools-btn")el.innerText = "自动打招呼";if (window.location.host === "www.zhipin.com") {if (window.location.href.startsWith("https://www.zhipin.com/")) {retryCheck((_) => {let lst = document.querySelectorAll(".recommend-card-list > li .card-inner");return lst && lst.length > 0;},100,(_) => {document.querySelector("body").appendChild(el);// closeHandle()el.addEventListener("click",bossHandle,false);});}}}) ()})();