Soirée Portes Ouvertes en ligne : découvrez nos formations !
Mercredi 4 octobre à 19h
En ligne

Découvrez nos programmes de formation accélérée en Data et Cybersécurité, et posez toutes vos questions à Marine.

S'inscrire
Retour à l'accueil du blog
Améliorer l'expérience de recrutement avec la Data Science
2
 min
Projet data
 Publié le 
27/7/2018

Améliorer l'expérience de recrutement avec la Data Science

Waiter, est une plateforme SaaS permettant aux restaurateurs, dans un environnement social et grâce à un algorithme de matching, de recruter le candidat qui correspond à leurs besoins. Notre but est d’améliorer l’expérience de recrutement en analysant sémantiquement la verbatim contenu dans les offres (les phrases et énoncés), et de le faire concorder avec les profils des candidats qui postulent à leurs offres

Le process de Recrutement chez Waiter

D’abord, l’établissement recruteur s’inscrit sur Waiter, en y ajoutant toutes les informations nécessaires ( nom, adresse, siret, photos, description, spécialités etc…), afin de donner envie aux candidats présents sur la plateforme d’y postuler.

Puis le restaurant poste son offre d’emploi avec des critères et des filtres, comme par exemple : “Je cherche un limonadier ayant 3ans d’expérience, sachant porter au plateau et parlant anglais”

Lorsque l’offre est publiée, les candidats vont postulé à l’offre d’emploi, et le professionnel recevra les candidatures avec un pourcentage de comptabilité à l’offre, il pourra alors accepter ou refuser les candidats.

Chez Waiter, nous souhaitons délivrer aux professionnels, le maximum de profils correspondant aux critères entrés dans les offres d’emplois. C’est pourquoi nous voulons améliorer notre base existante en analysant aussi le contenu sémantique des jobs mais aussi des profils y postulant.
Le but étant de voir de façon évidente une corrélation existante ou non entre les 2 phrases : celle d’un recruteur et celle d’un candidat.

Notre méthodologie

Pour pouvoir aller plus loin dans l’analyse sémantique, nous avons utilisé le langage Python pour tout ce qui est Data Mining ou Text Mining, ainsi que des librairies telles que NLTK, Wordcloud, Pandas etc …

Récupération et nettoyage des données

Nous cherchons ici à récupérer des données textuelles d’utilisateurs et d’offres d’emploi de la plateforme Waiter. Grâce à un script Python, nous avons requêté une base de données directement en langage SQL, et enregistrer dans un fichier, les données que nous souhaitons.

Nous avons donc récupéré les descriptions des candidats de la plateforme ainsi que la description et le profil recherché des offres d’emploi.

Ensuite nous avons chargé nos fichiers récupérés précédemment sur Jupyter afin de pouvoir continuer à travailler dessus avec Python.

Nos étapes de nettoyage

1) « Tokenizer » notre dataset en y imputant les caractères qui ne nous seront pas utiles comme des liens URLs, des tags HTML, des chiffres

2) De nettoyer les “Stopwords” qui sont les mots qui ne seront pas utiles pour notre analyse comme par exemple des pronoms personnels, et autres… grâce à la librairie StopWords de NLTK.

3) Transformer notre liste de donnée en une chaîne de caractères, appelé string en anglais, afin que nous puissions continuer notre processus d’analyse textuelle.

Analyse de sentiment

Nous avons importé une librairie externe en Python qui nous permet de faire ce qu’on appelle de l’analyse de Sentiments, afin de voir la polarité et la subjectivité de notre texte à analyser. Dans notre cas la polarité ne nous est pas très utile ? La subjectivité quant à elle va nous servir à savoir si le jeu de donnée contient des informations pertinentes ou non telles que des liens urls, des promotions sur des produits.

Nuage de mot

Nous avons ensuite pour avoir une image visuelle des mots clés les plus apparents dans notre base de donnée effectuer des nuages de mots.

Termes les plus fréquents dans les descriptions des candidats
Termes les plus fréquents dans les descriptions des candidats
Termes les plus fréquents dans les descriptions et profils recherchés des offres d’emploi
Termes les plus fréquents dans les descriptions et profils recherchés des offres d’emploi

Maching, sémantique, et analyse de process

On importe maintenant la librairie Fuzzy Wuzzy, qui permet d’analyser 2 phrases l’une par rapport à l’autre, ou 2 textes. Ici nous allons tester d’abord sur des échantillons. En effet, la taille de nos textes est assez conséquente, il est donc inutile pour le moment d’analyser tout notre dataset, car cela prendrait plusieurs heures de calcul.

Ici on peut observer une concordance moindre entre la description du candidat et l’offre d’emploi en effet il n’y a que 40% de matching entre les mots contenus dans ces 2 descriptions.

Notre système de matching fonctionne bien, l’objectif est maintenant de pouvoir l’adapter à une mise en production afin de pouvoir analyser l’ensemble de nos données via des requêtes envoyées par l’API de Waiter, et grâce à des microservices en Python via Amazon Web Services avec son service appelé “Lambda” et “EC2” qui nous permettraient d’avoir un module externe dédié au calcul sémantique du matching et ainsi ne pas surcharger notre API, mais de seulement envoyé les résultats de l’analyse.

D’autres alternatives existent, les recruteurs utilisent également des CRM Recrutement qui intègrent l’IA dans le sourcing de candidats.

Si vous souhaitez acquérir les compétences en Data recherchées des recruteurs, n'hésitez pas à regarder la formation avancée en Data Sciences que Jedha Bootcamp propose.

Joé Marc
Écrit par
Joé Marc
 - 
CEO

Programmes, thématiques Data, admissions,
vous avez une question ?

Prenez rendez-vous avec nos équipes