Pipeline ETL : Offres d'Alternance
Automatisation de la recherche d'opportunités en Data (Python, SQL, CI/CD)
Le Contexte
Pour optimiser ma recherche d'alternance pour mon entrée en école d'ingénieur (Data & IA), j'ai décidé de construire mon propre outil de veille automatisée.
J'ai conçu un pipeline de données de bout en bout qui interroge quotidiennement les serveurs de la plateforme Welcome to the Jungle, nettoie les données, et les stocke dans une base de données cloud pour que je n'aie plus à chercher les offres manuellement.
Architecture Technique
Le projet repose sur une architecture d'Ingénierie des Données classique :
1. Extraction (API Algolia)
- Au lieu de faire du web-scraping HTML instable, j'ai analysé le trafic réseau du site pour cibler directement leur moteur de recherche Algolia.
- Utilisation de la librairie
requestsen Python pour envoyer un payload JSON complexe et récupérer les offres "Data" en France.
2. Transformation (Pandas)
- Parsing du fichier JSON renvoyé par l'API.
- Utilisation de Pandas pour nettoyer les données, gérer les valeurs manquantes (ex: offres 100% télétravail sans ville précisée), et structurer l'information (Titre, Entreprise, Localisation) dans un DataFrame propre.
3. Chargement & Automatisation (SQL & CI/CD)
- Connexion à une base de données PostgreSQL cloud via l'ORM
SQLAlchemy. - Insertion sécurisée des données (variables d'environnement protégées par un fichier
.envet les secrets GitHub). - Automatisation : Mise en place d'un workflow GitHub Actions (CRON job) qui installe l'environnement, exécute le script Python et met à jour ma base de données de manière 100% autonome tous les jours à 8h00.
Technologies Utilisées
Python
PostgreSQL
GitHub Actions
Curieux de voir mon code Python et mon fichier YAML ?
Voir le code source sur GitHub