Au 2026-11-04, SwissAIJob recense 541 postes actifs en IA et machine learning chez 139 employeurs suisses. Cette page explique comment ces données sont constituées et tenues à jour.
Chaque offre est collectée sur une source publique appartenant à l’employeur : la page carrières de l’entreprise, le portail d’emploi d’une université ou d’un institut de recherche, ou le logiciel de gestion des candidatures (Ashby, Greenhouse, Lever, Workable, SmartRecruiters, Personio, SuccessFactors et d’autres) qu’utilise l’employeur. Chaque employeur a son propre scraper. Nous ne reprenons jamais d’offres de LinkedIn, Indeed, Glassdoor, jobs.ch ni d’aucun agrégateur tiers : chaque URL renvoie donc à la source même de l’employeur, et non à une republication. Seule exception : une offre marquée « Partenaire », que l’employeur nous transmet directement. Elle figure en tête du tri par date et, pour le reste, elle est filtrée et classée comme n’importe quel autre poste.
Les scrapers tournent chaque jour : ils ajoutent les nouveaux postes, confirment à nouveau les postes existants et retirent ceux qui ont quitté la liste d’offres de l’employeur. Chaque offre porte un horodatage dateModified, actualisé chaque fois que le scraper confirme qu’elle est toujours en ligne. La fraîcheur des données est ainsi vérifiable, et non simplement supposée.
Chaque offre collectée est évaluée à l’aide d’une liste d’environ 50 mots-clés d’IA et de machine learning soigneusement choisis, en anglais et en allemand, puis passe un filtre sur l’intitulé. Dans l’industrie, un poste doit comporter un terme d’IA ou de ML dans son intitulé, ou plusieurs mots-clés dans sa description, pour être retenu. Dans les entreprises natives de l’IA, un seul mot-clé dans le texte propre au poste suffit. Les postes des universités et des instituts de recherche passent un filtre plus souple, car une annonce académique décrit souvent un travail très axé sur l’IA sous un intitulé générique. Le texte qu’un employeur répète dans la plupart de ses annonces, comme un paragraphe de présentation de l’entreprise, n’est pas pris en compte : un poste de vente ou de finance dans une entreprise d’IA n’est donc pas retenu sur la seule foi de la description de l’entreprise. Les postes de back-office (finance, RH, recrutement, assistance administrative, etc.) doivent comporter un terme d’IA dans leur intitulé. Une offre que l’employeur publie plusieurs fois sous différents liens n’est listée qu’une fois. La couverture s’étend à trois secteurs : le monde académique (universités et hautes écoles), les instituts de recherche (institutions avant tout tournées vers la recherche, comme l’Idiap, le CSEM, l’Empa et le PSI) et l’industrie (entreprises à but lucratif), y compris des employeurs hors tech qui recrutent en IA, comme les banques, les assurances et la pharma.
La plupart des employeurs suisses ne publient pas de salaires, la fourchette affichée sur chaque offre est donc estimée, et non communiquée par l’employeur. Un grand modèle de langage lit l’intitulé, l’entreprise, le secteur, le domaine, le lieu et la description du poste, se cale sur des repères explicites du marché suisse (FAANG, tech de taille moyenne, conseil, start-up, monde académique) et sur des ajustements selon le niveau, arrondit la borne inférieure à CHF 5’000 près et ajoute CHF 20’000 pour la borne supérieure. Si l’offre indique elle-même un salaire ou un barème doctoral, c’est ce chiffre qui est repris : l’offre affiche alors la fourchette de l’employeur, avec la mention « annoncé » au lieu de « est. ». Considérez chaque estimation comme une indication approximative, pas comme un engagement. La page des salaires regroupe ces estimations par domaine et par ville.
Un poste reste en ligne tant que la liste d’offres de l’employeur l’affiche, et il est retiré lors de la première collecte quotidienne qui ne l’y trouve plus. Si une liste d’offres revient nettement plus courte que la veille, chaque poste manquant est d’abord vérifié auprès de la plateforme de recrutement de l’employeur, et un poste que la plateforme liste encore reste en ligne. Si un scraper ne parvient pas à lire une liste d’offres un jour donné, ses postes sont vérifiés un par un auprès de la plateforme de recrutement ou sur la page de l’offre elle-même, et un poste collecté que rien n’a confirmé pendant trois semaines est retiré dans tous les cas. Le but : qu’un poste sur lequel vous cliquez soit un poste auquel vous pouvez encore postuler. Pendant les 24 heures qui suivent la fermeture d’un poste, son offre reste visible avec la mention « Retirée récemment », puis elle disparaît complètement. Un poste qui réapparaît dans la liste de l’employeur revient sous la même offre, et non comme une nouvelle.
Les salaires sont des estimations produites par un modèle et peuvent être erronés. La couverture dépend de l’existence d’une page carrières publique que l’on peut collecter : une entreprise qui recrute uniquement par un portail fermé ou par un canal que nous ne couvrons pas encore n’apparaîtra pas tant qu’un scraper n’aura pas été ajouté. Les lieux sont ramenés à une ville suisse : un poste réellement en télétravail apparaît donc sous la ville indiquée dans l’annonce. Les intitulés de poste sont nettoyés une seule fois, lors de la première mise en ligne d’un poste : si l’employeur modifie ensuite un intitulé, celui affiché ici peut ne plus être à jour. Il s’agit d’un projet mené par un seul développeur et géré en grande partie par des agents IA. Les scrapers sont ajoutés et réparés en continu, si bien que la couverture s’élargit avec le temps plutôt que d’être complète à un jour donné.