Estimating Linkedin Salaries with a Chrome Extension

Update: link is back up with a new update

(Note: I’ll be working at Jobr at the end of January. Start swiping now for new job discovery!)

(Link to download the chrome extension for those of you that don’t read bullshit)

One area domain that I always found interesting was the concept of jobs and salaries. In a strange way a salary is one way in which we can quantify a worker’s value to a company and sometimes a subjective quantitative value of a person’s worth. But salaries are beginning to become more transparent with many websites and services offering a view into market rate salaries. Glassdoor came along and blew my mind when I first discovered that I could glean information from how much my peers were making at internships and how much it was possible to make if I were to follow a certain career path.

I first started getting interested in job searching and salaries after trying to find an internship the summer of my sophomore year in college. It was a consistent manual parsing of what jobs I qualified for and what salaries I could expect to achieve. Advice for all university students, career growth is important when you’re in college.

For the last nine months, I slowly worked on a chrome extension that estimates the salary of the current position of a user on Linkedin. The main estimates come from a H1-B database website called that has a well done bootstrapped display of companies and salaries for H1-B workers. It’s a very simple estimate that can eventually be further improved on by adding more features to the model. But in a dumbed-down sense, this chrome extension will at least allow you to not have to open up one tab for Linkedin and another tab for the person’s company on Glassdoor. Ultimately if you’re a recruiter as well, there’s a possibility of using it to help with your recruiting search. I’m sure everyone could find some kind of use case.

To use the Salary Inspector chrome extension, all you have to do is download it and then start browsing Linkedin profiles. On the bottom of their current position, a salary estimate should pop up.

How the Chrome Extension Works

Surprisingly easy to build, I always thought chrome extensions were some of the harder projects when groups presented them at conferences or hackathons. Turns out groups who build chrome extensions are actually shortcutting! You’re basically creating an app built on top of someone else’s webpage/website because the javascript gets injected into the page therefore no necessary front-end design needs to be created and all data can be parsed out of the existing DOM! For more on how to build chrome extensions read up on Google’s official docs.

I mainly used Jquery to parse out specific information from their Linkedin to make an estimated guess of their salary. Specifically the data was position title, company name, and current location.

An example of my buddy in Seattle
An example of my buddy in Seattle

How the Salary Estimate Works

Using those three metrics, the app does a cross-site scrape of the website and returns back an average if it matches the company and title name. Because companies that sponsor H1-B workers must pay them at “fair-wage salaries”, all salaries and position titles are released to the government which must also release them to the public.

Therefore these estimates are from exact salary data of current h1b workers. But there’s a ton of variance that can be expected from salaries of H1-B workers. One attribute is that many times people not on H1-B can be expected to get paid more as they have more negotiating power. Also education, skillset, experience, and more differentiate the salaries between two people at the company with the same title. Ultimately all of these values are averaged to one number. I thought about doing a range but it didn’t seem like good practice. Maybe later.

But probably the hardest thing about salary estimation is the validity of actually matching up a salary to a person. As I said before, two people can have widely different salaries but it all depends on too many factors that can’t be matched up. Facebook probably has hundreds of data scientists with salaries ranging from 100,000 to possibly over 500,000 dollars. A huge range with really no variable to create any kind of consistent model. Therefore medians, averages, and more point estimates have to sustain these estimates.

Added Notes

  • People stretch their position names all the time: Want to know how many data scientists there are? Don’t look on LinkedIn. Also the app does not do well with classifying positions like Manager of Consumer Analytics and Supply Chain Management. If it can’t match it to the title then usually nothing shows up.
  • UI kind of sucks: I wasn’t really sure how to display the data and I took six months of on and off thinking to figure out how to make it look up. I gave up and just made the salary bold.
  • Bugs: This was one of my first projects in javascript so it might have some bugs. Let me know of issues on Github or features you think it could improve on. The Github repository for the code is here. (Pop-up does nothing when you click on the extension)
  • Pulling from multiple sources: In development and probably a good improvement
  • Why did I make this app? Because I thought it would be fun and useful for myself. I would also like to think that I have a fairly good internal salary estimate in my head. But sometimes when I hear a salary number I just get astounded by what could be a possibly amazing (or terrible) negotiation by a candidate or an outrageous stretch of a lie due to a possible deep down self-esteem issue. Maybe you can even blame me of holding such a thing but I’ll vehemently deny it at all costs. But there is some usefulness of knowing ones career path or what one could achieve in a couple of years. I love Linkedin because of it’s ability to let me see where other people are in their careers and what I could do to get possibly get there. This chrome extension just allows a careful look into some more information. (I’m kind of imagining that scene from Ocean’s 13 where everyone’s winning the casino games near the end and they all have huge monetary gains in neon colors next to their heads).

TODO and Future

There’s a ton of improvements that can be made in the future. Namely extrapolating for years of experience, getting averages for different big companies and how they stack up across similar positions, compiling multiple data sources, etc.. Hopefully there is a use case for anyone who’s interested in the job domain and I’d love your feedback in comments or twitter.

LinkedIn, Twitter, Email or leave a comment below!


Leave a Reply

Your email address will not be published. Required fields are marked *