userscripts/linkedin-jobs-enhanced/README.md

55 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

2024-06-23 22:55:22 +00:00
# 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.
2024-06-23 23:04:13 +00:00
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.
2024-06-23 22:55:22 +00:00
## Configuring filters
Post following setup instructions, visit Tampermonkey Dashboard > Click on script name > Click _Storage_ tab.
You should see JSON like the following:
```json
{
"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.
2024-06-23 23:04:13 +00:00
## 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.
2024-06-23 22:55:22 +00:00
## 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)
2024-06-23 23:04:13 +00:00
- [ ] 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