Faster visual scan
Large headline, restrained blue accents, and open spacing make the page feel more like a product destination than a README wrapper.
Privacy-first LinkedIn Jobs userscript that hides or highlights viewed job cards, preserves SPA compatibility, and includes scroll guard protections. Keep the queue readable, preserve soft SPA navigation, and stay local-only while the script tracks viewed and applied job cards across multilingual LinkedIn markers.
The page now leads with a lighter, section-based marketing flow instead of a single dark documentation slab. The repository still owns the content, but the presentation now mirrors the pacing, spacing, and confidence of a LinkedIn-style landing page.
Large headline, restrained blue accents, and open spacing make the page feel more like a product destination than a README wrapper.
Top sections sell the value proposition, while the full markdown documentation stays intact below for install, usage, and detection details.
The design language moves closer to LinkedIn marketing pages without copying their trademark assets or replacing the project brand.
It is not a giant automation layer. It is a clean control surface for people who just need LinkedIn Jobs lists to stay readable while they scroll, compare, and apply.
The site now acts like a proper product page up top and a full project reference down below. That keeps the public face sharper without moving feature details out of the repository workflow.
Install steps, supported languages, usage notes, and project links remain markdown-driven so the public page and repository docs do not drift apart.
Hide or highlight viewed job postings on LinkedIn Jobs with a privacy-first userscript built for Tampermonkey and Violentmonkey.
This project focuses on three things: stable LinkedIn SPA behavior, high-confidence multilingual viewed/applied detection, and safer scrolling with guard and cooldown protections.

ON/OFF status toggle.Guard (ON/OFF): Scroll protection to prevent LinkedIn rate-limits. This is especially important when hiding jobs, as rapid scrolling through hundreds of hidden items can trigger bot-detection filters.Hide Mode: Automatically vanishes viewed jobs.Highlight Mode: Keeps jobs visible but adds separate low-opacity full-card color filters for viewed and applied cards.jobs and jobs/search views, the currently open job card gets its own configurable highlight filter color so the selected row stays easy to spot.Hide and Highlight modes, tune viewed, applied, and active card colors, adjust filter opacity, and open the GitHub repository.N viewed or N hidden items in real-time.ON/OFF, Scroll Guard, Detection Mode, Navigation Reload, Viewed/Applied/Active Colors, Filter Opacity, and Badge Position.https://www.linkedin.com/jobs/*https://www.linkedin.com/jobs/search/*https://www.linkedin.com/jobs/collections/*linkedin-hide-viewed-jobs.user.js into the extension.Alternative:
@downloadURL:https://raw.githubusercontent.com/sametcn99/linkedin-hide-viewed-jobs/main/linkedin-hide-viewed-jobs.user.jsThis repository includes a GitHub Pages setup that renders this README through Jekyll with a polished dark editorial layout, a branded hero section, and responsive documentation styling.
Included site assets:
manifest via icons/site.webmanifestrobots.txtsitemap.xmlicons/Publish flow:
Pages.Build and deployment to Deploy from a branch.master branch and /(root) folder.Published site URL:
https://sametcn99.github.io/linkedin-hide-viewed-jobs/The script supports detection for the following languages:
OFF, viewed jobs are not hidden; they are only counted.ON, viewed jobs are hidden.Reload OFF is the default. SPA navigation stays on soft refresh unless you explicitly enable Reload ON.Highlight mode, Viewed and Applied cards use different colors so you can distinguish them at a glance.jobs and jobs/search pages, the currently selected card also gets its own full highlight filter color.Viewed, Applied, and Active card colors, and use the opacity slider to make the highlight filter lighter or stronger.GitHub Repo shortcut for the project source and issue tracker.5-15s) and slow scroll steps to reduce LinkedIn rate-limit risk.div.jobs-search-pagination are temporarily disabled (including collections/search pagination buttons).The script performs detection in multiple layers:
li[data-occludable-job-id] and related LinkedIn list item selectorsVIEWED_MARKER_SELECTORS)aria-label, and title checks inside each cardText matching uses normalize('NFD') plus diacritic removal for more stable multilingual matching.
Source-of-truth customization lives under src/** and the userscript bundle is generated from that source.
Common knobs:
VIEWED_KEYWORDS: Add more viewed-language phrasesAPPLIED_KEYWORDS: Add more applied-language phrasesJOB_CARD_SELECTORS: Card selection scopeVIEWED_MARKER_SELECTORS: Marker selection scopeSTORAGE_KEY: Preference storage keyUI_POSITION_KEY: Badge position storage keyHIDDEN_CLASS: CSS class used for hidingVIEWED_KEYWORDS.Contributions are welcome.
feature/your-change) or fix branch (fix/your-change).src/** and update README.md if behavior changes.Guidelines: