userscripts/linkedin-jobs-enhanced
Sangeeth Sudheer dec55fd62b
Add moar README
2024-06-24 04:34:13 +05:30
..
LinkedInJobsEnhanced.user.js Add LinkedIn Jobs Enhanced script 2024-06-24 04:09:21 +05:30
README.md Add moar README 2024-06-24 04:34:13 +05:30

README.md

LinkedIn Jobs Enhanced

Motivation

LinkedIn job filters are just too limited. There are spammy companies that spray their random-ass job listings every single day, which mkaes it difficult to find stuff. There is also no option to create custom filters (at least in Free plan AFAIK) to show/hide listings.

Setup

  1. Install this userscript
  2. Go to Tampermonkey Dashboard > Settings > Set Config Mode to Advanced (THIS IS MANDATORY!)
  3. Go to LinkedIn Jobs page, verify that extension is loaded and working. It should yell at you.

NOTE: This script isn't super-resilient and aware of SPA navigations so you might need to refresh if things don't look right after changing config.

Configuring filters

Post following setup instructions, visit Tampermonkey Dashboard > Click on script name > Click Storage tab.

You should see JSON like the following:

{
    "disliked": [],
    "liked": [],
    "mode": "hide-disliked",
    "debug": false
}

Add companies you like into liked as strings, companies you don't want to be shown in listing page into disliked. The names are not case-sensitive, and can include partial names. Note that there is no exact match. i.e, if you added "Evil" into disliked and there are two companies in job search page — "Evil Corp" and "Not Evil Corp", it'll hide both.

Modes

Valid values: "hide-disliked" (default), "show-liked"

As the values suggest, it either hides companies that you set in disliked array in storage (default) or it'll only show companies in liked array.

Development Notes

This works by basically creating a MutationObserver and listening on every change. If there's any change w.r.t one of the job list items, it triggers the logic that runs against ALL the job list items to see if we should show/hide.

Obviously, this isn't very performant and could be optimized but it works.

This also isn't accounting for SPA navigations now, which is another enhancement.

TODO

  • Add icons to job list items to add to liked/disliked to avoid manual edits
  • Show some config UI to toggle between Show liked and Hide disliked modes
  • Preconfigured lists of naughty companies (ones who spam the job listings)
  • Perf: Only scope MO to listen on closest parent container
  • Account for SPA navigation (maybe listen on entirety of LinkedIn and detect navigations using History API)
  • Think about other useful filters
  • UI Option to export config quickly