AI-drodling: SKILLS

Jeg ønsker å lage en applikasjon hvor jeg kan søke etter spesifikk kompetanse og få match i en kandidatbase! 🎉

Kandidatene registreres med lavt detaljnivå i kandidatbasen, men søkefunksjonen skal likevel takle et bredt spekter av søkeord og kunne matche kandidater på en god måte. 🥷

Kandidater skal presenteres med beskrivelse og hvorfor de er en god match på kompetansen jeg etterspør. 😎

👴 Hvordan løste jeg det?

Den overordna flyten ser slik ut:

  1. Bruker utfører et søk etter kompetanse i applikasjonen f.eks. «Prosjektledelse»
  2. Søketeksten konverteres til vektor via OpenAI
  3. Databasen som inneholder kandidater har en funksjon som lar meg utføre likhetssøk basert på vektorer – her benyttes vektor som kom fra søketeksten
  4. Kandidatbasen er fyllt med fiktive kandidater med tilhørende vektor (som også er generert av OpenAI)
  5. Likhetssøket returnerer x antall rader (kandidater) sortert på prosentvis likhet (vektor fra søketeksten)

Resultatet fra punkt 5 sendes så til OpenAI med en systemprompt som instruerer den til å være en kompetanserådgiver som skal anbefale kandidater basert på forespurt kompetanse. 🥸

Her er de eneste dataene jeg har om kandidatbasen sammen med de genererte vektorene:

Ingrid Olsen, 1985, prosjektleder, kompetanse: prosjektstyring, teamledelse, risikohåndtering, sertifiseringer: PRINCE2, Scrum Master

Andreas Berg, 1990, frontend-utvikler, kompetanse: HTML, CSS, JavaScript, React, sertifiseringer: Responsive Web Design

Maria Johansen, 1982, HR-konsulent, kompetanse: rekruttering, konflikthåndtering, personaladministrasjon, sertifiseringer: personalledelse

Jonas Larsen, 1988, dataanalytiker, kompetanse: Python, SQL, maskinlæring, sertifiseringer: Data Science, Google Analytics

Sara Pettersen, 1993, markedsfører, kompetanse: digital markedsføring, sosiale medier, kampanjeplanlegging, sertifiseringer: Google Ads

Hanne Kristiansen, 1989, UX-designer, kompetanse: brukeropplevelse, prototyping, interaksjonsdesign, sertifiseringer: Adobe XD

Erik Hansen, 1980, IT-prosjektleder, kompetanse: systemimplementering, teamledelse, teknisk prosjektstyring, sertifiseringer: PMP, ITIL

Hanna Karlsen, 1988, sikkerhetsrådgiver, kompetanse: informasjonssikkerhet, datasikkerhet, risikoer, sikkerhetsanalyse, sertifiseringer: CISSP, CISM, SC-300

Jonas Haugen, 1965, fullstack-utvikler, kompetanse: React, C#, .net, SQL, HTML, CSS, Java, Python, REST, GIT, API, Node, sertifiseringer: AZ-204

La oss teste og se om dette fungerer noe særlig bra 🤔😅

Jeg forsøker meg først på noe helt konkret som finnes i kandidatbasen, som. f.eks. maskinlæring:

Ingen problemer å finne kandidaten 😁 Jonas Larsen finnes i kandidatbasen med kompetanse i maskinlæring. Men dette hadde jo et tradisjonelt databasesøk også klart… 🥱

Hva om vi søker etter kompetanse som ikke står ordrett i kandidatbasen? F.eks. trusselhåndtering? 🤔

Traff ganske bra – samt med en god begrunnelse for hvorfor Hanna kan være en god kandidat for trusselhåndtering 🥳

Selv om Hanna ikke har trusselhåndtering nevnt som sin kompetanse så klarer applikasjonen likevel å knytte det til Hanna sine tilsvarende kompetanser – dette pga likhetssøket med vektorverdiene nevnt tidligere 😎

Hva om jeg søker etter flere kompetanser i samme søk? Vi prøver azure, vuejs, kakebaking

Azure: Jonas Haugen blir foreslått pga en sertifisering i Azure (AZ-204). 👍

VueJS: Andreas Berg og Jonas Haugen blir foreslått fordi de begge er utviklere – og dermed kan være en gode kandidater for utvikling i Vue.JS også. 🥸

Kakebaking: Ingen kandidater kunne knyttes opp til den fantastiske ferdigheten kakebaking… 😭😅

Hva om jeg prøver å skrive et scenario, som f.eks. Vi skal utvikle en webportal for kundene våre 🚀

Dream team 😎 Her satte den sammen de rollene som var tilgjengelig i kandidatbasen for å utvikle en webportal (frontend, backend, ux-designer).

Burde den kanskje tatt med IT-prosjektleder også? Vi har jo det i kandidatabasen vår 🤔

Jeg omformulerer spørsmålet for å se om det kommer med: Vi skal etablere et prosjekt for å utvikle en webportal for kundene våre

Da kom IT-prosjektlederen også på plass! 😎

🤔 Konklusjon!

Likhetssøk ved hjelp av vektorer sammen med OpenAI gjorde at resultatet ble ganske ok for denne testapplikasjonen. Med relativt lite kode får man ganske kraftig søkefunksjonalitet 😎

Hadde man investert noen uker med utvikling, samt utarbeide en litt mer detaljert kandidatbase så hadde det nok blitt en meget nyttig applikasjon 🚀

Neste innlegg om AI-drodling har jeg ikke planlagt enda.. Vi får se hva som dukker opp 😅🤩


Publisert

i

av

Stikkord: