KFCが多数の従業員を雇用する効率をどのように達成したか

KFCは、ロシア全土に毎年約100のレストランをオープンしており、従業員が必要です。多くの人はまた、学生などの一時的な仕事の場所としてチェーンのレストランを選びます。KFC毎月15,000件以上の求人応募を受け付けています。一方で、会社には従業員がいなくなることはありませんが、他方では、これらすべての候補者を処理するために何人の人事マネージャーが必要になるか想像できますか?





さらに、これらの応答のほとんどにはエラーが含まれており、空席とは無関係なものもあります。そして、HRは彼らに時間を費やしますが、本当に価値のある候補者を逃します。どうすればこれを回避できますか?





採用プロセスを改善するために、KFCはVoximplantと提携してい  ます同社は次のアイデアを提案しました。ロボットはすべての候補者に電話をかけ、空席の関連性を尋ね、肯定的な回答の場合は空席について詳しく説明し、コールセンターに接続します。





結果はすべての期待を上回りました。ロボットは人間の10倍の速さで応答を処理し、候補者の37%を排除し、人事マネージャーは関心のある候補者とのみ通信するため、コンバージョンが増加します。





それがどのように機能するか見てみましょう

Voximplantプラットフォームでこのようなロボットを作成することは、見た目よりもはるかに簡単です。今すぐ似たようなロボットを書いてみましょう。





, . , , , , -.





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