An end-to-end Data Engineering capstone project designed to automatically scrape, process, and visualize the technical job market (specifically Data Engineers & Software Engineers).
- Cloud Provider: Google Cloud Platform (GCP)
- Infrastructure as Code: Terraform
- Orchestration: Mage (Dockerized)
- Data Lake: Google Cloud Storage (GCS)
- Data Warehouse: Google BigQuery
- Transformation: dbt (Data Build Tool)
- Visualization: Looker Studio
- Language: Python
- Extract: Python scripts pull daily job postings for specific tech roles via the RapidAPI JSearch free API.
- Load (Data Lake): Orchestrated by Mage, raw data is pushed into a GCS bucket partitioned by execution date using PyArrow in Parquet format.
- Load (Data Warehouse): Mage runs a script to mount the GCS lake as an external BigQuery table with Hive partitioning.
- Transform: A containerized dbt project executes on BigQuery, cleaning data in a
staginglayer and building afact_job_postingstable that uses BigQuery Regex to extract tech skills (Python, SQL, AWS, Airflow, dbt, etc.) from the descriptions. - Big Data Synergy: A new module that pulls 1M+ rows of Stack Overflow tag trends (2019-Present) from a BigQuery Public Dataset. This allows for correlation between "What developers are talking about" vs "What companies are hiring for."
-
GCP & Terraform Setup
- Create a Service Account in GCP with
Storage AdminandBigQuery Adminroles. - Download the JSON key locally.
- Navigate to the
terraform/folder, runterraform init,terraform plan, andterraform apply.
- Create a Service Account in GCP with
-
Mage Orchestrator
- Create an
.envfile at the root with your RapidAPI key:RAPIDAPI_KEY=your_key - Run
docker compose up -dto spin up Mage. - Open
http://localhost:6789, create a scheduled pipeline, and paste the Python blocks located in the/scriptsdirectory.
- Create an
*Architecture diagram : RapidAPI -> Mage -> GCS -> BigQuery -> dbt -> Looker*
- dbt Transformations
- Navigate to the
dbt_project/folder. - Install BigQuery adapter:
pip install dbt-bigquery - Run models:
dbt build --profiles-dir .
- Navigate to the
*Figure: Successful execution of dbt models and data tests in the terminal.*
- Top In-Demand Tech Skills
- Average Salary by Employment Type (Remote vs On-site)
- Total Open Job Postings Geographical Distribution
Created for the DataTalksClub Data Engineering Zoomcamp
