Extracteur d'Offres Indeed - transformer une recherche d'emploi en lignes structurées
Indeed est le plus grand site d'emploi au monde, et pour la plupart des postes sur la plupart des marchés, c'est là qu'une offre apparaît d'abord. Sa recherche est conçue pour être parcourue : vous tapez un intitulé et un lieu, appliquez un filtre ou deux, et faites défiler. Cela fonctionne quand vous cherchez un emploi. Cela fonctionne mal quand la question porte sur tout un marché - quel est le tarif courant pour ce poste dans cette ville, quels employeurs recrutent en ce moment, comment cela a-t-il évolué depuis le mois dernier. L'Extracteur d'Offres Indeed y répond en transformant une recherche en tableau : une ligne par annonce, portant l'intitulé, l'employeur, le lieu, la rémunération annoncée, le type de contrat, l'ancienneté de la publication, un extrait de la description, le lien de l'annonce et la clé d'offre propre à Indeed.
La conception de ce service place le filtrage là où il doit être - sur Indeed. Une URL de recherche Indeed encode ses propres paramètres : les mots-clés en q, le lieu en l (un code postal ou une ville et un État), un rayon autour de ce lieu, un filtre de type de contrat couvrant temps plein, temps partiel, contrat, stage et intérim, un filtre de publication récente, et un choix entre ordre par pertinence et par date. Construisez la recherche voulue sur Indeed, copiez l'URL, et l'exécution hérite de tout. Ce n'est pas seulement commode, c'est la manière la moins chère de travailler : resserrer une recherche ne coûte rien, en exporter une large coûte des lignes.
Deux propriétés des données d'Indeed méritent d'être anticipées avant de bâtir quoi que ce soit sur l'export. La première est la clé d'offre. Chaque annonce sur Indeed porte un identifiant jk - la valeur visible dans un lien viewjob - et il arrive sous job_key. C'est la colonne sur laquelle dédupliquer. Un rapprochement par intitulé et entreprise paraît équivalent mais ne l'est pas, car le même poste est souvent publié plusieurs fois, parfois par un cabinet de recrutement et l'employeur simultanément, et un rapprochement textuel fusionnera deux offres réelles ou en scindera une. L'identifiant, non. La seconde est l'ancienneté de publication : Indeed l'écrit de façon relative sur la carte de résultat plutôt que sous forme de date, elle décrit donc l'annonce au moment de l'exécution et ne peut pas être comparée entre des exécutions faites à des moments différents. Notez votre date d'exécution et déduisez-en de vraies dates.
Deux autres réserves gardent l'analyse honnête. Le salaire sur Indeed est tantôt un chiffre saisi par l'employeur, tantôt une fourchette qu'Indeed modélise quand l'employeur l'a omis ; la carte indique laquelle, et cette mention voyage dans la chaîne salary - elle devrait donc survivre jusqu'à vos données plutôt que d'être écartée au parsing, car rémunération déclarée et rémunération estimée répondent à des questions différentes et ne doivent pas être moyennées ensemble. Et Indeed entremêle des placements sponsorisés aux résultats organiques, ce qui signifie que la position dans la liste reflète aussi une dépense publicitaire et pas seulement la pertinence. Ni l'un ni l'autre n'est un défaut à contourner ; c'est simplement le fonctionnement du site, et le savoir fait la différence entre un benchmark salarial défendable et un benchmark trompeur. Commencez gratuitement : vos 500 premières lignes ne coûtent rien et ne nécessitent pas de carte bancaire.