À propos du projet

ms-job-watcher est un pipeline automatisé d'alerte d'emploi qui s'exécute de manière autonome sur GitHub Actions. Il interroge six API de carrière d'entreprises majeures (Microsoft, NVIDIA, Amazon, Goldman Sachs, IBM, Oracle) ainsi qu'environ 1 200 forums d'emploi ATS sélectionnés parmi les plateformes Greenhouse, Lever, SmartRecruiters, Workday et Ashby. Les offres sont filtrées pour identifier les postes d'ingénierie logicielle entry et mid-level basés aux États-Unis à l'aide d'une classification basée sur des règles qui exclut fermement les stages, les tests qualité, les ventes, le marketing, les postes exigeant un visa ou une citoyenneté, ainsi que les postes ne permettant pas le parrainage, tout en excluant doucement les rôles DevOps/ops sauf s'ils sont associés à un signal fort d'ingénierie logicielle. Les résultats sont dédoublonnés par rapport à un état JSON persisté, les nouvelles correspondances étant envoyées par courriel sous forme de résumés via Gmail SMTP. Le pipeline fonctionne en deux modes indépendants : un pipeline principal qui vérifie les API d'entreprises toutes les ~10 minutes et un pipeline de forums qui balaye les forums ATS toutes les ~30 minutes en lots basés sur curseur de 200 pour terminer les balayages complets dans les délais imposés par GitHub Actions. Les forums sont récupérés simultanément à l'aide de ThreadPoolExecutor avec des sémaphores par plateforme. Les forums inaccessibles retournant 404/410 sont automatiquement ignorés. Un tableau de bord Flask permet de naviguer dans les offres vues et l'historique des exécutions. Technologies utilisées : Python 3.11, requests, BeautifulSoup4, GitHub Actions, Gmail SMTP, Flask. L'état est persisté sous forme de fichiers JSON atomiques qui sont commités dans le dépôt afin de persister malgré les exécuteurs éphémères. La planification de production utilise cron-job.org pour appeler l'API workflow_dispatch afin garantir des intervalles courts fiables.