A Node application that uses puppeteer to log into LinkedIn and scrape job listings based on custom parameters provided by the user and emails the user the results.
Searching for jobs on LinkedIn can be a painful process. If you search for "software engineer" you will get back a plethora of jobs that you simply aren't interested in. With the number of remote jobs available, this problem is exaggerated and you end up wasting a lot of time sifting through irrelevant jobs.
This tool is a solution to that and helps save time by only providing links to jobs that you care about.
⚠️ An email server is required: See well known services for a list of potential email providers
- Fork or clone this repo
- Run
npm install - Rename
.env.exampleto.envand enter your dataNODEMAILERvariables can be obtained from your email provider - Modify
config.jsto whatever conditions you would like - Run
npm startto start the server
The important values to set here are customTitleFilters and searchKeywords.
By default, the app will search every 30 minutes and only return new jobs found since starting the server. You can change the time in which jobs are scraped by changing searchInterval
Additionally, searchFilters are the filters provided by LinkedIn. By default, only Remote jobs posted within the past day are queried. I may provide an easier way to change this in the future.
export const config = {
baseSearchURL: "https://www.linkedin.com/jobs/search/",
searchFilters: "?f_TPR=r86400&f_WT=2&keywords=", // Applies linked in filters 1) date posted: past 24 hrs and 2) remote only
searchKeywords: "sweet software job", // The job to search for on linkedin
customTitleFilters: ["sr.", "senior"], // Any jobs that include these terms in the title will be omitted in result
searchInterval: 30, // Time interval in minutes that the search will execute
};