, Teknik
Hvad er hybrid RAG i rekruttering?
Hybrid RAG kombinerer leksikalsk søgning (tsvector) med dense embeddings og fusionerer dem, før en cross-encoder reranker. I rekruttering betyder det, at hver score kan vise sit bevis.
Kort svar
Hybrid RAG er søgning, der bruger to ben på én gang: leksikalsk matching (tsvector/tsquery) og dense embeddings (vektorer), som fusioneres med reciprocal rank fusion og reranker med en cross-encoder. I rekruttering er det det, der gør det muligt at citere det udsagn, hver score bygger på — i stedet for at modellen gætter.
Rekrutteringsscreening har et dokumentproblem. Et CV er fragmenteret: færdigheder står i overskrifter, beviser står i beskrivelser af projekter, og senioritet står mellem linjerne. En ren nøgleordsmatch rammer overskrifterne og rammer ved siden af; en ren vektorsøgning fanger betydningen, men kan miste det præcise udsagn, der faktisk beviser noget.
Hybrid RAG tager begge ben med — og fusionerer dem, før der rerankes. Det er den tilgang, rekruto bruger, og den er værd at forklare, fordi den er grunden til, at rangeringen kan vise sit bevis.
De to ben
Leksikalsk søgning kører tsvector/tsquery i PostgreSQL. Den finder præcise match: teknologinavne, certifikater, stillingstitler. Den er billig, deterministisk og forudsigelig — og den fanger ingenting, der er formuleret anderledes end forespørgslen.
Dense embeddings gemmer tekststykkerne som vektorer (real[]-kolonner i PostgreSQL, ingen pgvector-udvidelse) og scorer dem med eksakt in-process cosine-similarity. Den fanger betydning: “ledede en migrering” matcher “tech lead på datamigrering”, selv uden fælles ord. Kandidatsættet er hærderet med en grænse (omkring 5.000 kandidater) — over grænsen degraderer det dense ben til leksikalsk i stedet for at overføre et ubegrænset vektorsæt.
Fusion og rerank
De to ben producerer to lister pr. overflade (kandidat-chunks, stillingens korpus og kompetence-ontologien giver i praksis seks leglister). Reciprocal rank fusion fletter dem til én rangering og tager det med ned til rerankens kandidatbudget (omkring 40).
En cross-encoder reranker læser de 40 par (forespørgsel + chunk) sammen og vælger de otte bedste, som sendes til scoring-modellen. Hvis rerankeren fejler, beholdes fusionsrangeringen — hvert ben kan degradere uafhængigt, uden at pipelinen stopper.
Hvorfor det betyder noget for rekruttering
Scoring-modellen ser de otte bedste chunks i en dataværningsblok og returnerer struktureret bevis: et ordret citat (maks. 400 tegn), en kilde-reference, en sikkerhed (0-1) og relevans til kriteriet. Validatoren matcher hvert citat fuzzy mod dets chunk — et citat, der ikke findes i dokumentet, afvises som hallucineret bevis, og kriteriets dækning falder i stedet for, at scoren hviler på en opfundet begrundelse.
Det er forskellen på en sort boks og en, man kan åbne. Når en rekrutterer spørger “hvorfor 88 på teknisk dybde?”, er svaret et citat fra kandidatens CV eller svar — ikke en modelintuition.
Kilder
- rekruto.io/docs/06-ai-assessment-rag.md — retrieval, scoring-skema og run-artefakter
- rekruto.io/docs/13-explainability-audit.md — de tre lag af “hvorfor”
Skrevet af rekruto.