Comment KFC a réussi à embaucher un grand nombre d'employés

KFC ouvre chaque année environ 100 restaurants dans toute la Russie, qui nécessitent des employés. Beaucoup choisissent également les restaurants de la chaîne comme lieu de travail temporaire, par exemple des étudiants. KFC reçoit plus de 15 000 candidatures chaque mois . D'une part, eh bien, l'entreprise ne sera pas laissée sans salariés, mais d'autre part, pouvez-vous imaginer combien de responsables RH seront nécessaires pour traiter tous ces candidats?





De plus, la plupart de ces réponses contiennent des erreurs, et certaines ne sont pas pertinentes pour le poste vacant. Et tandis que les RH passent leur temps sur eux, ils passent à côté de candidats vraiment valables. Comment pouvez-vous éviter cela?





Pour améliorer le processus de recrutement, KFC s'est associé à  Voximplant . L'entreprise a proposé l'idée suivante: le robot appelle tous les candidats, demande la pertinence du poste vacant et, en cas de réponse positive, en dit plus sur le poste vacant et se connecte au centre d'appels.





Les résultats ont dépassé toutes les attentes. Le robot traite les réponses 10 fois plus rapidement qu'un humain, éliminant 37% des candidats, et les responsables RH ne communiquent qu'avec les candidats intéressés, augmentant ainsi la conversion.





Voyons voir comment ça fonctionne

Fabriquer un tel robot sur la plateforme Voximplant est beaucoup plus facile qu'il n'y paraît. Écrivons maintenant un robot similaire.





, . , , , , -.





Voximplant, . , :





require(Modules.ASR);
require(Modules.Player);
 
const callerid = '7xxxxxxxxxx';
const operator = '7xxxxxxxxxx';
let data;
let callCandidate, callOperator;
let asr;
      
      



, , VoxEngine.customData. JSON : { "phone" : "7xxxxxxxxxx", "name": "" }.





, JSON customData, callerid data.phone :





VoxEngine.addEventListener( AppEvents.Started, async e => {
 data = JSON.parse( VoxEngine.customData() );
  //    callerid   data.phone
 callCandidate = VoxEngine.callPSTN( data.phone, callerid );
 
 //  
 callCandidate.addEventListener( CallEvents.Connected, callCandidate_connected_handler );
 callCandidate.addEventListener( CallEvents.Disconnected, callCandidate_disconnected_handler );
 callCandidate.addEventListener( CallEvents.Failed, callCandidate_failed_handler );
});
      
      



, , ( ) . , , :





function callCandidate_connected_handler( e ) {
 //     
 const text = ` ${data.name}.  ?`;
 const language = VoiceList.Yandex.Neural.ru_RU_alena;
 const player = VoxEngine.createTTSPlayer( text, language );
 
 //        ,
 //  ,   
 player.sendMediaTo( callCandidate );
 player.addEventListener( PlayerEvents.PlaybackFinished, playbackFinishedHandler );
};
      
      



, . , , :





function playbackFinishedHandler() {
 // ASR    
 const asrProfile = ASRProfileList.Tinkoff.ru_RU;
 asr = VoxEngine.createASR( { profile: asrProfile } );
 
 //      ,
 // ,     
 callCandidate.sendMediaTo( asr );
 asr.addEventListener( ASREvents.Result, asrResultHandler );
}
      
      



. . , “”, , , . , , :)





“”, . :





async function asrResultHandler( answer ) {
 //   
 asr.removeEventListener( ASREvents.Result );
 
 //     text,        
 if( answer.text.includes( '' ) ) {
 
   //    
   data.wantsToWork = '';
 
   //   (   callCandidate_disconnected_handler )
   callCandidate.hangup();
 }
 else if ( answer.text.includes( '' ) ) {
   data.wantsToWork = '';
 
   //   
   startOperatorCall();
 }
 else {
   callCandidate.hangup();
 }
}
 
function startOperatorCall() {
 const callOperator = VoxEngine.callPSTN( operator, callerid );
 
 //    
 VoxEngine.sendMediaBetween( callCandidate, callOperator );
 
 //  
 callOperator.addEventListener( CallEvents.Connected, () => {
   Logger.write( '  ' );
 });
 callOperator.addEventListener( CallEvents.Disconnected, async () => {
   callCandidate.hangup();
 });
 callOperator.addEventListener( CallEvents.Failed, async () => {
   callCandidate.hangup();
 });
}

      
      



. ( ) http- . :





//   
async function callCandidate_disconnected_handler( e ) {
 const url = 'https://servicename';
 
 //       url
 await Net.httpRequestAsync( url, { method: 'POST', postData: JSON.stringify(data) } );
 
 //  
 VoxEngine.terminate();
};
 
//  
function callCandidate_failed_handler( e ) {
 VoxEngine.terminate();
};
      
      



. , , , , , -.





. , ; . — :)





!








All Articles