Cesta do kandidátovy duše

Pavlína Schuster
11 min readDec 1, 2019

--

Analýza HR cesty kandidáta z komunitních eventů v Kiwi.com | Projekt v rámci Czechitas DA

V projektu pracujeme se dvěma datasety, které pochází z customer relationship management (CRM) systému Beamery a applicant tracking system (ATS) Jobvite. Oba datasety obsahují historická data za období 2017–2019. Cílem projektu je zmapovat cestu komunitních kandidátů v recruitment procesu Kiwi.com.

Co máme za data a proč je dobré s nimi pracovat?

Náš projekt navazuje na projekt, který zpracovala v předchozím běhu DA Lucie Chladová. Zabývala se v něm analýzou recruitment procesu v Kiwi.com; v pozdějším článku také nastínila problematiku měření recruitment kampaní. Jelikož jsem s Lucií spolupracovala na zavádění Beamery (duben 2019), v Kiwi.com měli jsme konečně v rukou data, kterými lze potvrdit či vyvrátit úspěšnost komunitních eventů při nabírání (primárně) developerů. Na projektu jsem pracovala společně s Denisou Košutovou, která přivítala možnost pracovat s reálnými daty a vyzkoušet si jejich zpracování v Power BI.

Odkud se ta data vzala?

Community team v Kiwi.com působí od roku 2017 a za dobu své existence zorganizoval řadu eventů: meetupy, konference, vzdělávací víkendy, workshopy a účastnil se spousty konferencí. Konkrétní čísla za rok 2018 si můžete přečíst tady. Z každého eventu si Community team odvážel hromadu kontaktů na lidi, kteří měli zájem pokecat s recruiterem, a to buď nezávazně nebo chtěli práci změnit ihned. Jenomže tohle všechno se odehrávalo v letech, kdy Beamery bylo ještě v plenkách, a tak přišly na řadu staré dobré Google Sheets. Potom ale přišlo CRM Beamery, domácky přezdívané Google Sheets na steroidech, od kterého se nečekalo v Kiwi.com málo. Nastala fáze, kdy se všechna historická data převáděla do Beamery. A my tak zjistili, že nám chybí data k velké řadě eventů. Momentálně je v Beamery otagováno kolem 90 eventů. Jen za rok 2018 jich ale bylo přes 160. Proč je pro nás právě tohle zjištění důležité, zjistíte níže.

Slovník

Pro lepší orientaci v textu připojuji seznam termínů vyskytujících se v článku. Protože mají oba systémy anglické rozhraní, termíny ponechávám v angličtině.

  • Eventy: všechny akce, které Kiwi.com pořádalo či se jich účastnilo a získalo na nich kontakty na potencionální kandidáty (Contact)
  • Beamery: CRM systém, jež obsahuje data o lidech, kteří se účastnili eventu a chtěli být kontaktování HR
  • Jobvite: ATS systém, jež obsahuje data o lidech, kteří vstoupili do recruitment procesu
  • Source type: původ zdroje kandidáta v Jobvite
  • Contact: člověk, který se účastnil Eventu a chce být kontaktován HR
  • Lead: člověk, který se účastnil Eventu a chce být kontaktován HR ihned
  • Passive: člověk, který se účastnil Eventu a chce být kontaktován HR později (třeba za tři měsíce, půl roku, či rok)
  • Candidate: člověk, který vstoupil do recuitment procesu (tj. přihlásil se na volnou pozici)

Cíl a Proč

Cílem projektu bylo zmapovat cestu kandidáta z komunitních eventů. Primárně nás zajímaly dvě věci. Za prvé, kolika lidem eventy natolik učarovaly, že se rozhodli poskytnout community teamu svůj email a souhlas s tím, že chtějí být kontaktování recruiterem (1). Za druhé pak, jestli mají tito lidé správný source type (“Events”) v Jobvite (2).

Proč je dobré zajímat se právě o tohle? Vycházíme-li z premisy, že eventy jsou dobré, protože nám přináší kontakty na budoucí zaměstnance, pak se nám taková domněnka musí také prokázat a ukázat. Konkrétně bychom měli prospěšnost eventů vidět v Jobvite, a to ve sloupci Source type (“Events”). V ideálním případě by mělo vše být otagováno správně a my bychom mohli nerušeně pokračovat v eventech. Jak už asi tušíte, realita je mnohem komplikovanější. Běžně se stává, že se člověk zúčastní eventu a zároveň si v ten samý večer projede kariérní stránky jobs.kiwi.com a přihlásí se na nějakou pozici. Community team ani recruiteři v takovém případě nestihnou člověka kontaktovat v rámci eventu a source type se mu automaticky přiřadí chybně na “Career Site”. Zdroj “Eventy” tak přišel o jednoho kandidáta. V průběhu roku se tito špatně zařazení kandidáti nahromadí. Když se potom podíváme na metriky, budeme si myslet, že source “Events” nám moc kontaktů nepřivádí , a naopak třeba source “Job Board” přivádí do firmy velké množství kontaktů. Zjištění, že eventy nám žádné kontakty nepřinášejí, pak může vést k tomu, že raději začneme investovat do job boardů. Po roce pak zkontrolujeme statistiky znovu a ejhle, ony ty job boardy až tak úspěšné nejsou a mezitím jsme přišli o vybudovanou komunitu developerů, protože jsme nedělali eventy.

KPIs — protože každý miluje KPIs

  1. Zjištění přímé a nepřímé konverze kandidáta (v %)
    Přímá konverze: kandidáti mají správný source type v Jobvite (“Events”)
    Nepřímá konverze:
    kandidáti, kteří proklouzli, tj. mají jiný source type v Jobvite
    Action item pro firmu:
    oprava kandidátů v Jobvite na správný source
    Proč? Díky přesnějšímu trackování můžeme určit, jak úspěšné eventy jsou při hiringu, tj. kolik lidí přivádějí.
  2. Zjištění kvality kandidátů (v %)
    Kolik kandidátů úspěšně prošlo Phone Screeningem: tuto metriku jsme konzultovali s Recruitment oddělením. Znamená to, že kandidátovo CV prošel recruiter a zároveň se kandidát po telefonním rozhovoru posunul v recruitment procesu úspěšně dále a nebyl zamítnut.
    Proč? Pro lepší cílení eventů a lepší využití práce recruitera. Pokud se recruiter musí probírat velkým seznamem kandidátů, kteří nejsou na pozici relevantní, zbytečně směřuje svou energii a čas někam, kde to nemá návratnost.
  3. Zjištění počtu eventů, kterých se kandidáti účastní
    Kolika eventy kandidát projde před přihlášením se na pozici
    Proč?
    Pokud budeme vědět, co předchází přihlášení se na pozici, můžeme eventy lépe propojit.

Co nás ještě zajímalo?

  • Procento získaných kandidátů ze source Events na celém oddělení engineeringu
  • Poměr LEAD vs. PASSIVE účastníků
  • Cesta kandidáta — jak dlouho trvá, než projde hiring procesem, a to od přihlášení se na pozici po přijetí nebo zamítnutí

Jak na to a co s tím?

To je v pohodě, ta data, prostě dvě tabulky a ani to nebudeme muset moc čistit.
— já před začátkem projektu

Ten datový model v Power BI nepotřebujete, někdy je to prostě zbytečný.
— anonym v průběhu Hackathonu

Ukázalo se, že data nejsou tak hezká, jak jsme si na začátku myslely, a že datový model v Power BI potřebujeme (ale v Pythonu ne ;)). Taky jsme v průběhu řešení narazily na zajímavé problémy, o kterých jsme předtím neměly tušení, že se problémem stanou. Právě se chystáte číst podkapitolu intermezzo začínající datových analytiků. Feel free to skip this part.

Intermezzo začínajících datových analytiků: Aneb na čem jsme se zasekly a jak jsme to vyřešily

CSV nemusí být vždy coma separated value. Někdy je to středník. A někdy se neseparuje, což byl případ importovaného CSV datasetu z Beamery. Excel tvrdošíjně všechna data cpal do jednoho sloupce a my jsme trávily spoustu času hledáním řešení. Změnit středníky za čárky? Bude fungovat? Ale my tam máme středníky i ve stringu. Jak přidat jednu uvozovku na začátek celého dokumentu? Jde otevřít v SQL? Ne. Řešení se nakonec ukázalo jako velmi prosté — nahrát dokument do Google Sheets, které si s tím poradily.

Jaké nástroje použijeme pro zpracování projektu? SQL? Python? Power BI? R? Excel? Just jokin' s tím Excelem, i když někdy by bylo rychlejší ten Excel otevřít. Jelikož SQL a Power BI nejsou zrovna Mac friendly (zdržte se prosím komentářů na to, jaký OS používáte a jaký ten nejlepší), tak za mě zvítězil Python. A to nejen kvůli mému applímu OS, ale také protože jsem se Python prostě chtěla naučit. Kolegyně zase nedá dopustit na Power BI, takže bylo rozhodnuto. Uděláme kombinaci Python + PowerBI. Velkou výhodou bylo, že jsme si výsledky mohly postupně porovnávat a předcházet chybám.

Back to business

Nejprve bylo třeba vytvořit funkční datový model. Ten jsme pod rouškou noci připravily v kanceláři s obrovskou whiteboard tabulí. Whiteboardy se ukázaly jako nejlepší přátelé při tvorbě datových modelů. Přetavení whiteboardu do elektronické podoby v Power BI se ujala Denča, a nakonec vznikl překrásný datový model, který neměl žádnou many-to-many (M:M) vazbu. Poučení z hackathonu: many-to-many je velký špatný.

Datový model na whiteboardech se píše jedna báseň
Datový model na obřích whiteboardech se píše jedna báseň

Já jsem se mezitím vrhla na otevírání CSV souboru v Pythonu. Pokud vás zajímá, jestli jsem použila Pandas, tak ne. Ty jsem si vygooglila až později, když už jsem měla soubor otevřený. Nicméně, první úspěch — CSV je v souboru s koncovkou .py. Ještě otázka k Pandas — ono, analyzovat data v nich by bylo jednodušší, ale datová akademie se na pandy nezaměřovala. Také jsem si říkala, že v rámci pochopení toho, jak Python funguje, je lepší si procvičit scriptování “the hard way,” a až potom přejít k pandám. Nicméně, oba CSV soubory, Jobvite a Beamery, se pohodlně uvelebily ve Visual Studio Code, a já jsem se mohla vrhnout na scriptování. Mezitím, na druhé straně projektu, se Denča nořila do Power BI tak hluboko, že mi jednoho dne přistál na Slacku kus kódu s koncovkou .json. Ale o tom si můžete přečíst tady.

import csv
from csv import reader

Dovolte mi teď použít obraceč času a přesuňme se do stádia, kdy jsou už data vyčištěná, scripty běží, a my se můžeme dostat k výsledkům analýzy. Pokud by vás zajímal přesný postup, tak přidávám odkaz na můj GitHub

Výsledky analýzy

TL;DR Naše bádání potvrdilo domněnky Community teamu, že eventy jsou úspěšným hirovacím nástrojem. Zároveň potvrdilo tezi Lucie Chladové, že dochází ke špatnému osourcování (krásné staročeské slovo) kandidátů.

KPI 1: Přímá a nepřímá konverze

Direct conversion: 70.94 %
Indirect conversion: 29.06 %

Výše uvedená čísla znamenají, že celkem 30 % eventových kandidátů má chybně uvedený source type v Jobvite. K tomu ještě musíme připočíst ztracená čísla. V úvodu jsem psala, že:

Momentálně je v Beamery otagováno kolem 90 eventů. Jen za rok 2018 jich ale bylo přes 160.

Musíme tedy vzít v potaz, že výše uvedená přímá a nepřímá konverze se vztahuje pouze k 90 eventům za poslední 3 roky a my víme, že jen v roce 2018 bylo eventů přes 160. Otázkou zůstává, o kolik by se zvýšila nepřímá konverze, pokud bychom měli úplná data za poslední tři roky. Číslo by nepochybně narostlo, což by pro eventy znamenalo, že do hiring procesu přivádějí ještě více uchazečů.

Pokud zavedeme nový letopočet BB a AB, tedy Before Beamery a After Beamery, pak můžeme tvrdit, že v době AB budou komunitní kandidáti zatrackování s větší úspěšností a HR bude mít k dispozici přesnější data říkající odkud kandidáti přicházejí, na jaké pozice se hlásí, a jak jsou úspěšní v hiring procesu.

KPI 2: Zjištění kvality kandidátů (v %)

Fakt, že eventy přivádějí do Kiwi.com kandidáty, ještě neznamená, že jsou tito kandidáti kvalitní. Pokud obdrží recruiter v jednom měsíci na zpracování 1000 CV a pouze 10 z nich jsou kandidáti vhodní na pozici, pak se bude zbytečně probírat kvanty životopisů s jednoprocentním výsledkem. Výběrové řízení v Kiwi.com probíhá v kostce následovně: k HR se dostane životopis (různými cestami, z různých zdrojů), recruiter si vyhledá kandidáta, projde jejich CV, a pokud se hodí na danou pozici, domluví si pohovor po telefonu (phone screening). Na phone screningu se recruiter ujistí, že je kandidátovi z inzerátu vše jasné, upřesní informace ohledně nabízené pozice, položí doplňující dotazy k životopisu kandidáta, apod. Pokud projde phone screeningem, jedná se o kvalitního kandidáta. V Jobvite je každému kandidátovy přiděleno datum a čas, kdy se dostal do určité fáze výběrového řízení. Protože potřebujeme zjistit, do jakých fází se jednotliví kandidáti dostali, bude se nám hodit následující slovník, jež každému kandidátovi přiřadí název nejvyšší dosažené fáze výběrového řízení.

success_dict = {}for row in events:
mail = row[4]
source = row[5]
new = 0 if row[7] is "" else 1
screened = 0 if row[8] is "" else 1
phone_screen = 0 if row[9] is "" else 1
practical_task = 0 if row[10] is "" else 1
reference_check = 0 if row[11] is "" else 1
hiring_manager = 0 if row[12] is "" else 1
first_interview = 0 if row[13] is "" else 1
second_interview = 0 if row[14] is "" else 1
offer_sent = 0 if row[15] is "" else 1
hired = 0 if row[16] is "" else 1
stages = [hired, offer_sent, second_interview, first_interview, hiring_manager, reference_check, practical_task, phone_screen, screened, new]
for i in range(len(stages)):
if stages[i] == 1:
success_dict[mail] = len(stages) - i
break

Potom už zbývá jen kandidáty protřídit a vypočítat procentní úspěšnost kandidátů, kteří mají fázi výběrového řízení vyšší než 4, tj. prošli úspěšně phone screeningem s označením fáze 3.

def keys_by_values(some_dictionary, list_of_values):
list_of_keys = list()
list_of_items = some_dictionary.items()
for item in list_of_items:
if item[1] in list_of_values:
list_of_keys.append(item[0])
return list_of_keys
list_of_keys = keys_by_values(success_dict, [4,5,6,7,8,9,10,] )
print("Percentage of quality candidates:", round(( len(list_of_keys) / len(success_dict) * 100 )), "%" )
Percentage of quality candidates: 48 %

Z celkového počtu komunitních kandidátů je 48 % z nich hodnoceno jako kvalitní kandidáti.

KPI 3: Zjištění počtu eventů, kterých se kandidáti účastní

V Community teamu Kiwi.com převládal názor, že před hiring funnelem existuje i event funnel. Z praxe máme odpozorováno, že některé eventy přivádějí do Kiwi.com více kandidátů než ostatní. Původní domněnka byla taková, že první kontakt developera s Kiwi.com probíhá například u stánku na konferenci nebo na meetupu. Dále se věřilo, že po tomto prvním kontaktu se kandidát přihlásí na jeden z EDU víkendů či na Summer Camp.

Mean: 1.0
Max value: 4

Z dat ale vyplývá, že průměrný kandidát se před přihlášením na pozici účastní pouze jednoho eventu.

Další zjištění

Lead vs. passive

Další zajímavé číslo pro Recruitment tým představuje počet kontaktů v Beamery se statusem lead nebo passive. V Beamery existuje celá řada statusů, nicméně Community team při nahrávání kontaktů využívá primárně tyto dva. Status lead recruitera informuje o tom, kolik profilů musí projít a kontaktovat ihned. Status passive naopak říká, kolik lidí chce být recruiterem kontaktováno v budoucnu (výhledově do jednoho roku). Součet obou čísel potom informuje Recruitment tým o tom, kolik potencionálních kandidátů se nachází v daném poolu kandidátů.

Number of leads: 283
Number of passives: 446
Number of other statuses: 1241

Celkem se v datasetu Beamery nachází 729 účastníků eventů, se kterými ještě nebylo nijak pracováno.

Power BI dashboard pro HR a flow kandidáta

Jak už jsem psala v úvodu, s Denisou Košutovou jsme se každá rozhodly pro zpracování projektu použít jiné nástroje. Naše rozhodnutí se ukázalo jako velmi přínosné. V průběhu řešení projektu jsme si díky tomu mohly porovnávat čísla a řešit různé nejasnosti tak, abychom následně mohly upravit a ověřit si naše domněnky. V této sekci bych proto ráda poděkovala Denise za vytvoření dashboardů.

Níže zobrazený dashboard umožňuje filtraci dat pro daný source type. Pokud si zaklikneme source Events, uvidíme procentní úspěšnost eventů v různých fázích výběrového řízení až po fázi Hired. V našem případě je procento Hired 13,04 %, což je o 8,04 % více než ze všech ostatních zdrojů. Nejúspěšnějším zdrojem je Hiring Manager (42%), následuje Internal (18,31%), Employee Referral (17,62%), a nakonec Events. Pokud vyřadíme z výčtu Internal jakožto zdroj, který nám sice zaplní danou pozici, nicméně také uvolní předchozí pozici zaměstnance, pak jsou eventy na třetím místě v úspěšnosti nabírání nových zaměstnanců.

Tři nejúspěšnější sources of hire
HR proces pro source Events

Cesta kandidáta

Graf níže zobrazuje cestu kandidátů (flow chart) od podání přihlášky až po fázi Hired. Tenčící se linie indikuje, jak kandidáti v různých fázích výběrového řízení přecházeli do zamítajících fází (Rejected, Offer Rejected nebo Candidate Withdrew). Flow chart krásně ilustruje, jak například u job boardů dochází k velkému odpadu kandidátů ještě před Phone Screeningem.

Cesta kandidátů od přihlášení se na pozici až po hired

Závěrem

V rámci projektu se nám potvrdilo, že komunitní eventy jsou v Kiwi.com důležitým hirovacím nástrojem. Ačkoliv eventy nepřivádí takové množství kontaktů jako třeba job boardy, jsou v důsledku velmi kvalitním zdrojem kandidátů. Od zavedení CRM Beamery dochází navíc k lepšímu zpracování kandidátů z eventů a nedochází ke ztrátám zdroje (source type), jako tomu bylo v minulosti. Rovněž musíme mít na paměti, že eventy jsou důležitým nástrojem PR a employer brandingu. Pokud se developeři účastní například Global Travel Hackathonu nebo se jdou podívat na konferenci Women in Tech, pak s největší pravděpodobností budou o svém zážitku referovat na sociálních sítích a ve své komunitě.

Ráda bych tento prostor také využila k tomu, abych poděkovala v první řadě mé pracovité kolegyni Denise Košutové za dlouhé zprávy na Slacku, schůzky v kavárnách i u nás v kanceláři a za odhodlání a elán s jakým po hlavě skočila do práce na tomto projektu. Zároveň děkuji našemu mentorovi Tomáši Bončovi za trpělivost, jakou se mnou měl při vysvětlování dictionaries v Pythonu. Dále chci poděkovat Kiwi.com za souhlas ke zpracování dat a lidem v mém týmu za emoční podporu. V neposlední řadě bych chtěla poděkovat mé ženě, která se mnou prožívala poslední tři náročné měsíce Datové Akademie a byla mi velkou oporou.

--

--

Pavlína Schuster
0 Followers

Employer Branding Analyst at Kiwi.com | Potterhead ⚡ | 🏳️‍🌈 | Lifelong Learner 🎓