Analyzing Job Requirements for Data Scientist Positions
For many of us in the Data Science Boot Camp at the New York City Data Science Academy, the end goal is to acquire a position as a Data Scientist. To do so, many of us will scan the job boards like Indeed.com, LinkedIn, and Glassdoor. I thought that there is no better use of the skills I acquired at the boot camp than to automate my search and glean insights from as many posts as I could get acquire through web scraping Indeed.com.
Indeed.com is a popular web site used by job seekers and job posters to connect with each other. Of all the job boards, Indeed.com has the most lenient terms and conditions as they do not require credentials like a user name and password in order to search its listings. In addition, Indeed offers an application programming interface (API) which can be used to return results. However, it is limited when it comes to volume. Altogether, this made the site a good candidate for scraping.
Indeed.com allows the user to search by a keyword as well as a location. In the query string of the URL, these are denoted by q and l, respectively. Results were sorted by date in descending order instead of by relevance. Thus, anything in the data scientist sphere was captured, and titles were not limited to "Data Scientist".
After setting the query to "Data Scientist" (q) and varying the location (l), I leveraged the Python library Scrapy to crawl Indeed.com and retrieve as many postings as I could on the site. (Note that Indeed.com utilizes CAPTCHAs, which stands for Completely Automated Public Turing test to tell Computers and Humans Apart. These tests check that the user is a human and not an automated web scraper like Scrapy. This resulted in a limit in the number of posts I was able to capture.)
To ensure geographic diversity, I selected six locations:
- Charlotte, NC
- Chicago, IL
- Los Angeles, CA
- New York, NY
- Phoenix, AZ
- San Francisco, CA
After collecting a little over 2,500 posts, the job requirement data was culled from the web pages along with the job descriptions. Job descriptions varied in length from 282 characters to 19,658 characters.
Using the Natural Language ToolKit (nltk) library in Python, I was able to analyze the most common requested skills, tools, and minimum education. This was accomplished by initially breaking the text into distinct words and removing stop words (words that are too common or otherwise irrelevant). Next, lists of common tools and skills were assembled and compared to the word list. In an iterative fashion, new words and phrases were added to the tools and skills lists. The process was repeated until a final count was accumulated for all the job postings.
Out of the 2,502 job listings scraped on February 10th, 2021, the cities with the most listings were New York, NY and San Francisco, CA. The difference between the two is that San Francisco offer more remote positions whereas New York positions are asking for people to be in its metropoitan area. Most likely, this is due to the rising cost of living in San Francisco, especially housing costs.
From the graphs above, you can see that a little over half of the postings are more than 30 days old (1,448 out of 2,502 postings). From this, we can conclude that there is a backlog of jobs that take time to fill.
When looking at the minimum required level of education, almost 50% of the jobs require a Bachelor’s degree or higher. This contrasts with 20% of the jobs which do not specify a minimum education at all. Only one job asked for post-doctorate work.
The most common requested tool for data scientists is Python. Almost 70% of the job listings ask for it. After Python, SQL and R are greatest in demand. It is interesting to note the importance of big data skills like Spark, deep learning tools like TensorFlow and Torch, and Cloud technologies. BI tools like Tableau and Excel also make the list. However, almost 10% of the job listings do not specify any common tool. In these cases, either the tool requested is extremely esoteric (not on the list of 161 different tools) or not mentioned at all.
When looking at general skills, the job listings overwhelmingly ask for machine learning. However, since data science is the intersection of domain knowledge, mathematics, and computer science, you can see these are also requested in the job listings.
Of the 2,502 job postings, only 97 had salary information. This information came in hourly, monthly, and annual formats, so there was a need to normalize the figures. Of course, pre-hire salary figures are normally negotiable, so that must be taken into consideration.
Salaries were given ranges where there were a low-end and a high-end as shown below.
According to the Bureau of Labor Statistics, the average college graduate with at least a Bachelor’s degree earned a median salary of $72,830. As seen above, data scientists command a much higher salary.
Companies Hiring Data Scientists
Most companies are looking for one to two data scientists. Out of 1,130 unique companies, 730 have only 1 data scientist posting whereas 321 postings come from companies with 20 or more posts. The distribution can be seen below:
For those seeking camaraderie with fellow data scientists, below is the list of companies with the most postings:
# of Postings
|8||Amazon.com Services LLC||
The companies with the most listings run the gamut of financial services, consulting, and technology firms.
Best Days to Look for a Position
As the jobs age, they tend to get filled or otherwise leave the market. The graphs below track posts newer than 28 days old. If you recall from earlier, more than half of the postings are 30+ days old. These older posts have been removed to avoid conflating the graph.
By looking at the day of the week for each listing, it appears that the most popular days for posting jobs to Indeed is Tuesday and Wednesday. This corresponds to research which says that Tuesday is the best day to look for a position. Moreover, since roughly 24% of high-tech job applicants apply on the first day the job was posted, these are the best days to look.
There are great opportunities for budding data scientists. Many firms across the country are looking for people with the skills and talent. In addition, they are willing to pay a premium to bring them onboard. A good candidate will have the broad skills to do machine learning that come from knowing the technologies, the mathematics, and the business background. It is a rewarding and challenging profession and one that I personally am eager to explore further.
Code for this project is housed at https://github.com/DPWasserman/indeed-jobs.