Tesla Global Careers Tracker

The world’s most valuable carmaker is notoriously reticent, closely guarding its corporate strategy apart from a few high-profile events and the occasional interview by its CEO.

I built a tool that scrapes Tesla’s global and Chinese careers websites to collect all open positions, cleans, analyzes and geocodes the data, and subsequently creates interactive visualizations to track the company’s hiring strategy across countries and job categories.

The data gets updated on a weekly basis.


Explore an interactive map of Tesla’s latest job openings. The filter on the right (on top on mobile) allows you to toggle between job categories. To scroll down the filter on the desktop, click and hold and then scroll.

Explore an interactive graph showing global openings across Tesla’s job categories.

Explore an interactive graph showing global openings by country.

Explore an interactive graph showing Tesla job openings across countries by categories.

Explore an interactive graph showing Tesla job openings for the top-six countries.

Explore the total number of global Tesla job openings.

Tesla has said it will produce its own in-house batteries, reducing its reliance on suppliers and arguably increasing battery performance. Given the importance of battery development for automakers, below is a map that contains all global jobs currently listed that mention the word(s) battery / batteries / Batterie (German) in the job title. The filter on the side allows you to filter for individual battery job titles. To scroll down the filter on the desktop, click and hold and then scroll.

Explore the total number of global Tesla battery-related job openings over time.


Project Overview:

Tesla is growing its operations across the world, building new manufacturing plants near Berlin, Germany and Austin, Texas. At the same time, the company is trying to grow vehicle sales across the world. Looking at hiring data provides a look into Tesla’s strategic priorities, both from a geographic and business perspective.

The data used for this project is scraped from two separate websites. The global Tesla Careers page:

 

And the Tesla China Careers page (jobs based in China do not appear on the global page):

 

The challenge in scraping the data consisted of the infinite scroll nature of Tesla’s careers pages, which means a simple scraping script will not scrape the entire list of jobs. The scraping code I developed takes about 18 minutes to scrape the entire global careers site, yielding roughly 6,000 job listings.

Project Tools:

  • Jupyter Notebook,

  • Python / Pandas,

  • Chrome WebDriver Manager,

  • Beautiful Soup,

  • Geopandas and GeoPy library,

  • Javascript,

  • Tableau

Project Findings:

The analysis shows the thousands of open positions across Tesla’s global operations, putting its scale into perspective. Tesla in a December 2021 SEC filing disclosed that it employs close to 100,000 employees globally, and the data analysis of its career website shows how many positions it must hire for only to cover attrition.

The findings also show that Tesla continues to hire most of its employees at its Fremont facility in California, despite having moved its headquarters to Austin, Texas. Despite global expansion plans, hiring remains by far the strongest in Tesla’s largest sales market, the United States.

The company is also focusing its hiring initiatives on building out its vehicle services department, and expand its manufacturing operations.

Project Summary:

I started by scraping the global Tesla careers site using the ChromeDriverManager:

 

From there, I directed the automated browser to the careers website and configured it to scrape open positions across all regions.

I then used the below code to ensure the browser kept scrolling (avoiding the infinite scrolling problem outlined above) until the browser can no longer scroll.

 

I then parse the site with BeautifulSoup to extract its content.

I repeat the same step for the China careers website, translate the Chinese column headers to English, and merge the two data frames.

I then use the Geopandas library to create longitude and latitude coordinates of the job locations for my map. The code takes a long time to run but the library works surprisingly well at determining the locations of both English and non-English speaking locations.

 

The output looks something like this:

To allow for a country-level based analysis, I split the country in the address column into a separate column. I lastly use pandas groupby() functions to analyze the data, and add the date the scraping was done.

 

Voilà!

Next
Next

Do more female executives mean higher ESG scores?