您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically unclicks the Follow button in the Easy Apply application, and automates the process of submitting and closing the application once all the information has been entered.
// ==UserScript== // @name LinkedIn Easy Apply Unfollow & Automate Submit/Close Windows // @namespace https://github.com/1LineAtaTime/TamperMonkey-Scripts // @version 0.4 // @description Automatically unclicks the Follow button in the Easy Apply application, and automates the process of submitting and closing the application once all the information has been entered. // @author 1LineAtaTime // @license MIT // @match https://*.linkedin.com/jobs/* // @icon https://www.google.com/s2/favicons?domain=linkedin.com // @grant none // ==/UserScript== (function() { 'use strict'; let submitted = true; function checkFollowCheckbox() { // Find the label with for="follow-company-checkbox" and text "Follow " const followLabel = Array.from(document.querySelectorAll('label[for="follow-company-checkbox"][class="t-14 t-black--light"]')).find(label => label.textContent.trim().includes("Follow ") ); if (followLabel) { const followCheckbox = document.querySelector('#follow-company-checkbox'); if (followCheckbox && followCheckbox.checked) { console.log('Follow checkbox found checked and unselected.'); followCheckbox.click(); } // go ahead and also hit submit application const submitButton = document.querySelector('button[class="artdeco-button artdeco-button--2 artdeco-button--primary ember-view"][aria-label="Submit application"]'); // Update this selector if needed if (submitButton) { console.log('Submit application button found, clicking...'); submitButton.click(); submitted = true; } } // Check if the "Application sent" header is present const applicationSentHeaderA = document.querySelector('h2#post-apply-modal'); const applicationSentHeaderB = document.querySelector('h3.jpac-modal-header'); if (applicationSentHeaderA && applicationSentHeaderA.textContent.includes('Application sent')) { // Find the "Done" button const doneButton = Array.from(document.querySelectorAll('button.artdeco-button')).find(button => button.textContent.trim() === 'Done' ); if (doneButton && submitted) { console.log('Done button found and clicked.'); doneButton.click(); submitted = false; } } else if (applicationSentHeaderA && applicationSentHeaderA.textContent.includes('Added to your applied jobs')) { // Find the "Dismiss" button const dismissButton = document.querySelector('button[aria-label="Dismiss"]'); if (dismissButton) { console.log('Dismiss button found and clicked.'); dismissButton.click(); } } else if (applicationSentHeaderB && applicationSentHeaderB.textContent.includes('Your application was sent to ')) { // Find the "Dismiss" button const dismissButton = document.querySelector('button[aria-label="Dismiss"]'); if (dismissButton) { console.log('Dismiss button found and clicked.'); dismissButton.click(); } } } // Observe changes in the DOM to detect when the checkbox appears const observer = new MutationObserver(() => { checkFollowCheckbox(); }); // Start observing the body for changes in the subtree and child nodes observer.observe(document.body, { childList: true, subtree: true }); // Initial check in case the checkbox is already present when the script loads checkFollowCheckbox(); })();