Web Scraping Industry Salaries from Glassdoor

Emanuel Kamali
Posted on May 24, 2018

Inspiration

My interest in scraping glassdoor is due to the fact that I recently graduated from college. I was interested in seeing industry salaries for popular cities, along with their associated ratings.

The questions I asked:

  • How much does someone make in each industry?
  • What is the average salary in each state?
  • Are salary and company rating related?

The Scraping Process

Using Scrapy, my plan was to look up every job posting on Glassdoor.  After viewing each posting, I would be able to retrieve information such as the job title, the company’s name, the estimated salary for the posting, rating, and industry the job was in.

Images showing the relevant information that I would scrape (highlighted) from the job posting and the company description pages respectively.

The data collection seemed like it was going to be relatively straightforward, but there were a few unforeseen problems that I encountered.

Problem 1:

      Encountering JavaScript

One issue that occurred was my attempt to retrieve information about the company. Even though it was listed in the source code of the website, the code that Scrapy looks at to gather information, my program was unable to scrape it properly. When attempting to debug my code, looking for a solution, I found that even though the information on the company was in the source code, the website uses JavaScript, something that Scrapy does not recognize, to get the information from another link.

The network file that Glassdoor uses to see which website to call to present company information.

After learning this, I searched through the network files that was being transmitted in hopes of finding the source of the JavaScript. I ended up finding a promising file titled “companyOverview” which contained a request URL. That URL which was the same for every posting, except for a string of numbers which was the company ID, contained all the information needed for that company.

The URL and the page containing the company’s information

The URL and the page containing the company’s information

Once I found this separate page which hosted the missing data, I was able to scrape the company information successfully.

Problem 2:

       Encountering a max search result

Another problem I encountered was a strange error where my code would break whenever it reached the 31st page of Glassdoor. As I investigated the problem, I learned that Glassdoor only provides the first 30 pages for its viewers. Even though it states “30 out of 5277 pages”, there is no 31st page (or any page past it)

Despite Glassdoor stating that had 5277 pages of listings…

Despite Glassdoor stating that had 5277 pages of listings…

 

...I would get an error on any page past 30.

The Scraping Process: The Solution

In order to gather enough data, I decided to look up 16 different cities across the US and find all the job postings located in those areas. I also discovered a way for my spider to go to the next website programmatically, by decoding what each part of the URL meant.

The code above gives us a specific URL to each city. This was a solution to compacting the Problem 2

After overcoming these two obstacles, I was able to scrape all the necessary information from Glassdoor.

The Visualization Analysis

After scraping for and pre-processing my data, I was finally able to visualize the questions I first asked, with a further investigation into the results.

Industry

In this chart, I summed the number of job postings in each industry. Looking at the top 3 job posted industries, we have Business Services, Information Technology, and Finance. If we had more data, it would be interesting to look at how each industry evolved over the years. For example, it would be interesting to look into information technology and see when its inception to mainstream culture occurred.

In this graph, I averaged all the industry salaries, along with the estimated salary low and estimated salary high, to provide myself with the highest paying industry. The top five highest mean salary, from highest to lowest, is Information Technology, Finance, Manufacturing, Construction Repair, and Business Services. Again we see Information Technology and Business Services in the top portion of our industry salary.

In this graph, I was interested in seeing which industry had the most touted rating. It's interesting to see Construction Repair and Real Estate as the first and third highest rated industry. To dig into the data we've just visualized, I found out there's a reason as to why those industries are so highly rated.

According to FastCompany, TINYpulse surveys revealed the top three issues standing in the way of happy employees were:

  1. Managers who aren’t supportive
  2. Not having the tools to succeed
  3. No opportunity for professional growth

In the construction industry, a variety of organizations offer coaching and career mentorship to students. Once they’re ready for the workforce, the industry has a long history of providing new workers with apprenticeships so they can learn the skills required to move on to tackle more challenging work.

State

After looking at some metrics involving industry, I was interested in looking at some states. To begin my search, I counted all the number of job postings each popular state offered.

California, Texas, and New York have the largest amount of jobs posted on Glassdoor.

Aggregating each states average salary, we see that California, New York, and Illinois have the highest averages.

We see that Massachusetts has the highest mean rating, followed by Califonia.

City

Now that we've gathered information on industries, I was interested in diving into the salaries, job postings, and ratings per city. The graph below represents cities that are popular amongst the younger workforce.

 

As you can see, New York, Chicago, Los Angeles, Houston, San Fran... have a large number of job postings. Now to dive a little further, I took a look at the average salary.

We see here that San Fran, San Jose, New York, and Austin have a high average salary. It's assumed that San Fran, New York, and San Jose would have a higher average salary, as we saw, Business Services and Information Technology are the two highest paying industries. For those cities listed before, they promote those specific jobs, which will indicate the high salary pay. For the city of Austin, I dug a little deeper as to whether there's a problem with my dataset. As it turns out, Austin is a growing digital city, which means there are many job postings for information technology jobs.

 

 

Coming to a conclusion, I was interested to see if their is a linear regression with rating and salary. We see here that there is no relation between salary and rating.

About Author

Emanuel Kamali

Emanuel Kamali

In addition to machine learning, he loves the AHA! moments, storytelling, and the creative aspects of data science
View all posts by Emanuel Kamali >

Leave a Comment

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

No comments found.

View Posts by Categories


Our Recent Popular Posts


View Posts by Tags