This app runs inside the BotSurf browser. Don't have it yet? Get the app or extension now!

LinkedIn Jobs Salary Estimate Overlay

Productivity · All
0 installs · Verified BotGentz app
Launch App
Opens in BotSurf — try it free, no account needed.
CategoryProductivity
PlatformAll
Pricing Free
Installs0
Download BotSurf to use — free
No account needed for free apps. Once BotSurf is open, find this app in Apps from the + menu.

About this app

WHAT IT DOES

This script adds salary estimate overlays to LinkedIn job listings, helping you quickly see the expected salary range for any position. When you browse job listings, the script extracts the job title, company, and location, and looks for any salary information already displayed. If no salary is shown, it estimates the salary using a local database of over 80 common job titles with average salary ranges, adjusted for location and company type. A badge appears next to the job title showing the estimated salary range (e.g., "$80k-$130k/yr" or "$25-$35/hr"). The badge is color-coded: green for above average, yellow for average, and red for below average. You can add custom salary estimates for specific job titles and companies in the settings panel. The overlays update dynamically as you browse.

WHERE IT RUNS

The script runs on LinkedIn job pages (*.linkedin.com/jobs/*). It works on search results, job listings, and job detail pages. It supports both desktop and mobile views.

HOW TO USE

After installation, the settings panel appears on the left side of the screen with the gear emoji (⚙️). Open the panel to configure the script:

- The "Enable salary overlays" toggle enables or disables the script.

- Toggle "Show salary range" to show a range (e.g., "$80k-$130k") or a single midpoint value.

- Add custom salary estimates by entering a job title, company (optional), and salary range.

- Click "Refresh jobs" to manually re-scan the current page.

The overlays appear automatically on job listings. The badge color indicates how the salary compares to the average for that role.

TECHNICAL SECTION — REAL MECHANISM

The script detects LinkedIn job pages by checking the URL for linkedin.com/jobs/. It finds job cards using selectors like .job-card, .base-search-card, .job-card-list, and .job-result-card. For each job, it extracts the title from .job-title or .base-search-card__title, the company from .company or .base-search-card__subtitle, and the location from .location or .base-search-card__metadata. It looks for existing salary information in .salary or .salary-text and parses it using regex to extract min and max values. If no salary is found, it estimates the salary by matching the job title against a local database of over 80 job titles with min, max, and average salaries. The estimate is adjusted for location (high-cost areas like San Francisco and NYC get a 25% bump) and company size/type (large tech companies get a 30% bump). A badge is created using style properties and textContent (never innerHTML) and inserted next to the job title. A WeakSet tracks processed jobs to avoid duplicate work. A MutationObserver watches for DOM changes and updates new jobs as they load.

THE PANEL

The settings panel is built with BotGentz's BGPanel component. It is draggable via its header, allowing you to reposition it anywhere on the screen. The panel snaps to the left edge by default but can be moved freely. Click the gear emoji to collapse the panel into a small bubble, and click the bubble to expand it again. The panel remembers its position per page session. Press the Escape key to quickly close or minimize the panel. The panel includes a status flash bar that provides visual feedback when settings are changed or actions are performed. All settings and custom estimates save automatically via GM_setValue.

PLEASE NOTE

This script requires the free BotGentz browser extension to run. It does not function as a standalone Chrome extension and does not use chrome.* APIs. LinkedIn frequently updates its job page structure, which may affect the selectors used to find job information. If the overlays stop appearing, please check for script updates. Salary estimates are based on a static local database and may not be accurate for all roles, locations, or companies. The estimates are a guide, not a guarantee of actual salary. Custom estimates override the database for specific job titles and companies. The script stores only your preferences and custom estimates via GM_setValue. No data is sent externally—all data is stored locally in your browser. The script never reads or writes password fields, hidden inputs, or file inputs. All DOM operations use safe methods (style properties, textContent, appendChild) and never use innerHTML.

Similar Apps

Log in to BotGentz

Suggest an App

Tell us what you'd find useful — if we build it, we'll email you the moment it's ready.