Värbamine ilma vaistule lootmata: tööriist, mille ehitasime oma vestluste jaoks

Ettevõtte kaart, kandidaadi kaart, struktureeritud vestlus ja kaalutud edetabel ühes väikeses rakenduses

Avaldatud: 6 min read

Vaata lähtekoodi ↗

Värbamine tähendab inimeste võrdlemist, keda kohtad mõnepäevaste vahedega, tuginedes lennult tehtud märkmetele ja muljele, mis kiiresti tuhmub. Vestluste seeria lõpuks on mälestus esimesest kandidaadist juba ähmane, märkmed laiali märkmiku ja faili vahel, ning otsus kaldub lõpuks viimasena kohatu või kõige sümpaatsema poole. Just seda probleemi tahtsime vältida, kui värbasime oma juuniorarendaja Tallinnas.

Selle asemel et pidada märkmeid arvutustabelis, ehitasime protsessi juhtimiseks väikese veebirakenduse. See koondab ühte kohta selle, mis varem oli laiali: ametikoha kaardi, kandidaadi kaardi, vestluse ajal tehtavad märkmed, arvulise hindamise ja lõpuks kaalutud edetabeli, mis muudab võrdluse selgesõnaliseks. See artikkel kirjeldab, mida rakendus teeb ja kuidas see on mõeldud. See on tööriist, mille ehitasime oma tarbeks, ja me avame selle koodi GitHubis. Miski ei takista teil seda endale käivitada.

Kontekst alati silme ees

Rakendus järgib värbamise tegelikku hierarhiat: üks ettevõte, mitu ametikohta ning iga ametikoha jaoks kandidaadid. See kaskaad jääb külgribal nähtavale, nii et alati on teada, kus parajasti ollakse, ilma et peaks meenutama, kust läbi käidi.

Ettevõtte kaart määratakse vaid korra ja see kehtib kõigi ametikohtade kohta. Kleebid veebiaadressi või teksti ning rakendus tuletab sellest puhta tutvustuse, mida saab seejärel kohendada. Iga ametikoht töötab samamoodi: ametikirjeldus, mis on imporditud kuulutusest või käsitsi kirjutatud, ja eelkõige ametikohale omased valikukriteeriumid. Just need annavad hiljem hinnetele nende mõtte.

Kandidaadi kaart koondab isikuandmed (perekonnanimi, eesnimi, sünnikuupäev, millest arvutatakse vanus, kontakt, staatus), PDF-vormingus üleslaaditud CV-d ja profiili kokkuvõtte. Miski sellest pole vestluse hetkel juhuse hooleks jäetud: enne kui midagi hinnata, on silme ees, keda vastu võetakse ja millisele ametikohale.

Vestlus: panna kirja see, mis loeb, samal ajal kui seda kuuldakse

Vestlusleht on tööriista süda. See asetab värbamise konteksti (ettevõte, ametikoht, kriteeriumid, kandidaadi isikuandmed) otse hindamistabeli kõrvale, et kunagi ei peaks keset vastust ekraani vahetama.

Hindamine tugineb neljale põhikriteeriumile, mida hinnatakse skaalal 0 kuni 10: keeleline sujuvus, professionaalsus, tehnilised oskused ja võõrkeeled. Iga hinde juurde käib vaba tekstiväli, sest pelk number ei ütle, miks see anti. Sellele lisanduvad vabas arvus kohandatud hinnangud: pealkiri, hinne kümnest, märkus. Sinna mahub see, mis on konkreetsele ametikohale omane ega sobitu nelja standardlahtrisse.

Lehte täiendavad kaks vaba tekstivälja: kandidaadi ootused ja tema eripärad. Mõte pole taandada kõike numbritele, vaid säilitada vestlusest tõene jälg sel ajal, kui see toimub, kasvõi selleks, et hiljem rahulikult üle lugeda.

Tehisintellekt aitab, ta ei otsusta

Rakendus toetub keelemudelile mitmes kohas, alati abivahendina ja mitte kunagi värbaja asemel.

Ta loeb CV-sid (sealhulgas PDF-faile mudeli abil, mis suudab lehte “näha”) ja pakub isikuandmeid: perekonnanimi, eesnimi, sünnikuupäev. Oluline sõna on “pakub”: need väljad esitatakse kinnitamiseks, neid ei kirjutata kunagi olemasoleva sisestuse peale. Ta koostab CV-de põhjal ka profiili kokkuvõtte, mida saab parandada või uuesti genereerida. Ja lõpuks loob ta vestluse kokkuvõtte, mis võtab kokku konteksti, kõrvutab kandidaadi valikukriteeriumidega ja sõnastab soovituse.

Seda abi juhib kaks põhimõtet. Esiteks, kõik jääb muudetavaks: ükski loodud tekst pole kivisse raiutud. Teiseks, kõik on läbipaistev: eraldi aken võimaldab lugeda täpset päringut, mis mudelile saadetakse, enne kui genereerimise uuesti käivitad. Näed, mis on masina ees, ja hoiad kontrolli selle üle, mida ta sellega teeb.

Kasutajaliides on saadaval viies keeles: eesti, inglise, prantsuse, saksa ja hollandi keeles. Tehisintellekt järgib seda valikut ja koostab oma kokkuvõtted kuvakeeles. Värbaja, kes viib vestluse läbi eesti keeles, saab kokkuvõtte eesti keeles; kolleeg, kes lülitab liidese prantsuse keelele, loeb selle samade märkmete põhjal prantsuse keeles üle.

Taristu poolelt suhtleb rakendus iga OpenAI-ühilduva lõpp-punktiga. URL, võti ja mudel valitakse seadistuses, olgu tegu majutatud teenuse või mudeliga, mida ise käitatakse.

Edetabel ja kaalud

Just siin osutub tööriist otsustamise hetkel kasulikuks. Ametikoha töölaud järjestab kandidaadid kahaneva üldhinde alusel, kummalgi oma hindemärgis ja väikesed tulbad kriteeriumide kaupa, et näha ühe pilguga, kus peituvad tema tugevused.

Ametikoha töölaud: kandidaadid järjestatud kahaneva üldhinde alusel, igaühel oma hindemärgis ja väikesed tulbad kriteeriumide kaupa

Üldhinne pole pime keskmine. Iga kriteerium saab ametikohale omase, liuguriga reguleeritava kaalu 0 kuni 3. Hinne arvutatakse reaalajas ümber, kui liugurit liigutada, mis võimaldab vastata konkreetsetele küsimustele: mis siis, kui tehnilised oskused loeksid kahekordselt? Mis siis, kui keeleline sujuvus kaaluks selle ametikoha puhul vähem? Hindamata kriteeriumid lihtsalt eiratakse, ilma et kandidaat selle eest kannataks.

Reede, vestluste seeria lõpp. Kolm kandidaati on teineteisest poole punkti kaugusel. Tõstame tehniliste oskuste kaalu ja edetabel korrastub ümber: see, kes rääkis kõige paremini, langeb selle taha, kes kõige paremini koodi kirjutas. Otsus ei muutnud meeleolu, vaid kriteeriumi, ja seda saab seletada.

Tööriist võimaldab ka kahte kandidaati kõrvuti võrrelda: radardiagramm asetab nende profiilid kohakuti, tulpdiagramm näitab erinevust kriteeriumi kaupa ning nende vestluste kokkuvõtted kuvatakse teineteise kõrval. Võrdlus lakkab olemast mälupingutus ja muutub lugemiseks.

Kahe kandidaadi kõrvutav võrdlus: radardiagramm asetab nende profiilid kohakuti ja tulpdiagramm näitab erinevust kriteeriumi kaupa

Kerge ja kohalik seal, kus tavalised tööriistad on rasked

Enamik värbamistarkvarasid on veebiplatvormid, mille eest makstakse kuutasu ja kus teie kandidaatide andmed lähevad elama kolmanda osapoole serveritesse. Aeg-ajalt täidetava ametikoha jaoks on see palju tellimuskulu, palju funktsioone, mida kunagi ei kasutata, ja tegelike inimeste CV-d, mis usaldatakse välisele teenusele.

Meie läksime vastupidist teed. Tööriist mahub ühte konteinerisse, mille saab endale käivitada; andmed jäävad kohalikuks, failipõhisesse andmebaasi, mis teie masinast ei lahku. Ei mingit tellimust, ei mingit konto loomist, ei mingit CV-d, mis platvormile rändaks. Ainsad väljapoole suunatud päringud on need, mille te ise otsustate, valitud tehisintellekti teenuse poole, ja isegi see võib olla mudel, mida te ise majutate. Sama veendumus juhib meie automatiseerimise lähenemist: töödelda andmeid võimalikult lähedal ja viia välja vaid see, mis tõesti peab.

Loodud kohanduma

Kuna värbasime Eestis, oskab tööriist hallata isikukoodi koos omaette valideerimisega. See pole tühine pisiasi: see on tõestus, et tööriist vormub konteksti järgi, selle asemel et oma oma peale suruda. Eesti lugejale on isikukood loomulik osa igapäevast, ja just see ongi mõte: kus üldtarkvara sunnib teid oma erijuhud tema lahtritesse mahutama, seal painutab teie enda käes olev tööriist end teie vajaduste järgi. Teie kriteeriumid, teie kaalud, teie väljad: kõik on vormitav, sest kood kuulub teile.

Mootori all

Rakendus mahub ühte konteinerisse. Server on kirjutatud Pythonis FastAPI abil, andmed elavad SQLite andmebaasis (WAL-režiimis, et püsida usaldusväärsena ühe protsessiga), ja kasutajaliides on React-rakendus, mida serveerib seesama server. Kõik käivitub Dockeri ja püsivuse jaoks mõeldud köitega.

Need on samad ehituskivid, mida kasutame oma toodangus olevates projektides, ja just sellist tehnoloogiapakki tahtsime juuniorile tutvustada. Tööriist, mille ehitasime tema värbamiseks, on omamoodi juba näide sellest, mille kallal ta tööle hakkab.

Miks me seda jagame

See on tööriist, mille ehitasime esmalt iseendale, ja me avame selle koodi GitHubis: te võite seda lugeda, oma vestluste jaoks kohapeal käivitada ja oma protsessile kohandada. See on hea näide meie tööviisist, samast, mida rakendame äriprotsesside automatiseerimisel või klaaskehasiseste süstide registris: sihipärane, tagasihoidlik tööriist, mis muudab otsuse selgemaks, seda käest võtmata.

Kui soovite sellist tööriista, mis on vormitud teie enda protsessi ümber, broneerige allpool vestlus ettevõttega transtorm.ai .

Broneeri kõne

Korduma kippuvad küsimused

Kas kood on saadaval?

Jah. See on sisemine tööriist, mille ehitasime oma värbamiseks, ja selle kood on GitHubis avatud. Te võite seda lugeda, kohapeal käivitada ja oma vajadustele kohandada.

Kas tehisintellekt otsustab teie eest, keda värvata?

Ei. Tehisintellekt loeb CV-sid, pakub kinnitamiseks isikuandmeid ja koostab kokkuvõtteid. Midagi ei salvestata kunagi ilma ülevaatamiseta ning kogu loodud tekst jääb muudetavaks. Lõplik edetabel tugineb teie hinnetele ja kaaludele, mitte masina arvamusele.

Mis keeltes tööriist töötab?

Kasutajaliides on saadaval viies keeles: eesti, inglise, prantsuse, saksa ja hollandi keeles. Tehisintellekti loodud kokkuvõtted järgivad valitud kuvakeelt, nii et igaüks loeb hinnangut samade märkmete põhjal omas keeles.

Kas selle käitamiseks on vaja tasulist tehisintellekti teenust?

Rakendus suhtleb iga OpenAI-ühilduva lõpp-punktiga: majutatud teenusega nagu OpenRouter või mudeliga, mida te ise majutate. Te valite URL-i, võtme ja mudeli seadistusfailis.

Kuidas edetabel toimib?

Iga kriteeriumi hinnatakse skaalal 0 kuni 10. Te määrate igale kriteeriumile ja ametikohale kaalu 0 kuni 3 ning üldhinne arvutatakse reaalajas ümber. Hindamata kriteeriumid ei karista kedagi.