Jeśli kiedykolwiek przesyłałeś CV do systemu ATS i zastanawiałeś się, dlaczego nigdy nie zobaczył go człowiek, już rozumiesz problem „czarnej skrzynki” w rekrutacji opartej na AI. Większość narzędzi do oceniania CV ukrywa swoją logikę za pulpitami nawigacyjnymi SaaS i uprzejmymi e-mailami z odmową. HackerRank obrał inną drogę. Jego Hiring Agent jest oprogramowaniem open source, co oznacza, że każdy może go „rozebrać na części”, prześledzić kod i zobaczyć dokładnie, jak LLM zamienia plik PDF i link do GitHub w konkretną liczbę. Jeden programista zrobił właśnie to. To, co odkrył, nie jest dopracowanym systemem rekrutacyjnym. To lustro pokazujące, jak łatwo automatyzacja koduje osobiste opinie.

Pod maską

Cały proces jest zwodniczo prosty. PDF-owe CV kandydata jest konwertowane do formatu Markdown, a następnie parsowane do sztywnej struktury JSON z polami na historię zatrudnienia, umiejętności, wykształcenie i projekty poboczne. Skrypty Python przesyłają dane z jednego etapu do drugiego, ale właściwe „myślenie” odbywa się wewnątrz łańcucha promptów. Każda sekcja otrzymuje własny prompt. LLM odczytuje ustrukturyzowane dane, stosuje reguły oceniania napisane w prostym języku angielskim i zwraca ocenę.

Ta architektura ma znaczenie. Najtrudniejsza praca nie odbywa się w ramach sprytnych algorytmów czy pętli trenowania. Odbywa się ona w doborze słów w promptach. Zmień kilka przymiotników w zestawie instrukcji, a ten sam inżynier przejdzie z kategorii „świetny kandydat” do „słaby kandydat”. To sprawia, że narzędzie jest kruche. To sprawia również, że jest ono szczere. Większość dostawców rozwiązań AI do rekrutacji nigdy nie pozwoliłaby Ci zobaczyć promptów. Prototyp HackerRank ujawnia prawdę: ocenianie CV zawsze opierało się na rubrykach, a nie na kodzie.

Tyrania 35 procent

Najbardziej uderzające uprzedzenie kryje się w rubryce oceniania. Wkład w projekty open source stanowi 35 procent całkowitej oceny. To ogromna waga. Aby to zobrazować: cała historia zatrudnienia, wykształcenie i zestaw umiejętności kandydata muszą rywalizować o pozostałe 65 procent z jednym elementem jego pozazawodowego życia programistycznego.

Zasady są nawet surowsze, niż sugeruje to waga punktowa. Własne repozytoria na GitHubie się nie liczą. Prowadzenie własnej biblioteki, bez względu na to, jak użyteczna, daje zero punktów. Narzędzie nagradza jedynie wkład w projekty innych osób. Aby zdobyć te punkty, kandydat musi być committerem w cudzym kodzie źródłowym.

Ta preferencja niesie ze sobą realny ciężar demograficzny. Inżynierowie, którzy utrzymują własne narzędzia, często robią to dlatego, że rozwiązali problem, z którym nikt inny się nie mierzył. Mogą też pracować na stanowiskach zabraniających zewnętrznego wkładu, pracować w regionach z mniejszą liczbą dużych społeczności open source lub po prostu mieć obowiązki rodzinne, które uniemożliwiają bezpłatne programowanie po godzinach. Pisząc prompt w ten sposób, narzędzie nie mierzy czystych zdolności inżynierskich. Mierzy uczestnictwo w konkretnej kulturze kodowania, a następnie nazywa to obiektywizmem.

Gdy instrukcje nie trafiają w cel

Rubryka próbuje również nagradzać doświadczenie w startupach. Prompt wprost sugeruje przyznawanie dodatkowych punktów założycielom i inżynierom pracującym na wczesnym etapie rozwoju firmy. Teoretycznie brzmi to rozsądnie. Weterani startupów często pełnią wiele ról i dowożą projekty pod presją. Tester przeprowadził więc eksperyment. Wziął jedno CV i nie zmienił w nim nic poza ostatnim stanowiskiem, przepuszczając je przez agenta trzy razy z trzema różnymi etykietami: Senior Java Engineer, Founding Engineer oraz Co-founder / CTO.

Wyniki niemal się nie zmieniły. LLM w zasadzie zignorował instrukcję.

To jedno z najważniejszych odkryć całego audytu. Dowodzi ono, że reguła zawarta w prompcie jest jedynie sugestią. Duże modele językowe są trenowane na ogromnych korpusach tekstów, które zawierają własne, uporczywe uprzedzenia dotyczące tego, co świadczy o jakości. Jeśli dane treningowe modelu łączą prestiż z określonymi tytułami, nazwami firm lub słowami kluczowymi, a nie z frazą „founding engineer”, twoja starannie napisana instrukcja może po prostu zostać odrzucona. Prompt mówi modelowi, aby zwracał uwagę na tytuły w startupach, ale model ma własne zdanie i to ono wygrywa. Ta luka między intencją człowieka a zachowaniem maszyny jest niebezpieczna, gdy wynikiem jest ocena rekrutacyjna.

Punkty bez celu

Poza głównymi wagami, rubryka jest pełna dziwnie specyficznych mikro-reguł, które sprawiają wrażenie mniej decyzji opartych na danych, a bardziej czyjejś nocnej sesji burzy mózgów.

Profil na LinkedIn jest wart dokładnie jeden punkt. Nie jakość profilu. Nie liczba rekomendacji ani głębia historii zatrudnienia. Samo posiadanie adresu URL w CV dodaje jeden punkt do sumy. Tymczasem udział w Google Summer of Code jest wart pięć punktów. A jeśli kandydat ma na GitHubie forki repozytoriów, agent ignoruje każdy fork, który sam nie posiada co najmniej pięciu forków.

Każda z tych zasad stanowi głośną ocenę wartości, ukrytą pod postacią cichego współczynnika. Dlaczego obecność na LinkedIn w ogóle jest warta punktu? Sygnalizuje to, że kandydat potrafi uzupełnić profil w sieci społecznościowej, a nie to, że potrafi zaprojektować system rozproszony. Dlaczego GSoC jest warte pięć razy więcej niż link do LinkedIn? Być może dlatego, że autor promptu szanuje ten program. Ten szacunek stał się teraz polityką rekrutacyjną. I dlaczego postawiono granicę na pięciu forkach? Narzędzie z dziesięcioma użytkownikami może rozwiązywać krytyczny problem niszowy. W tym systemie może ono po prostu nie istnieć.

Te liczby nie wynikają z analizy regresji. Zostały wybrane przez konkretne osoby. Jedna osoba uznała, że udział w projektach open source stanowi ponad jedną trzecią wartości inżyniera. Inna osoba uznała, że profil na LinkedIn jest wart 1 punkt. Kiedy automatyzujesz te przypuszczenia, nadajesz im autorytet oprogramowania.

Każdy prompt to uprzedzenie

Najtrudniejszą częścią budowy agenta do oceniania CV nie jest parsowanie plików PDF ani wywoływanie API. Jest nią decyzja o tym, co ma znaczenie. Każde słowo w prompcie oceniającym jest oceną wartości dotyczącą tego, co czyni inżyniera dobrym. Czy projekty poboczne powinny przeważać nad pracą etatową? Czy publiczny kod powinien mieć większe znaczenie niż praca w prywatnym przedsiębiorstwie? Czy profil w mediach społecznościowych powinien mieć jakiekolwiek znaczenie? Na te pytania nie ma matematycznie poprawnych odpowiedzi. Istnieją jedynie preferencje kulturowe.

Kiedy zespół rekrutacyjny robi to ręcznie, uprzedzenia są przynajmniej rozproszone wśród wielu recenzentów, którzy mogą się nie zgadzać, kalibrować swoje oceny i uczyć się na błędach. Kiedy robi to LLM, uprzedzenia jednego inżyniera promptów utwardzają się w powtarzalną funkcję, która działa na dużą skalę. Narzędzie nie eliminuje subiektywizmu. Ono go archiwizuje.

Traktuj to jak lustro, a nie filtr

Hiring Agent od HackerRank najlepiej rozumieć jako prototyp. Przypomina pierwszy szkic, którym w rzeczywistości jest. Oferuje fascynujący, wczesny wgląd w to, jak konstruowane są narzędzia AI do rekrutacji, ale brakuje mu kalibracji, testów i różnorodnych opinii prawdziwej organizacji rekrutacyjnej.

Jeśli budujesz technologię rekrutacyjną, przestudiuj ją uważnie. Pokazuje ona, jak szybko arbitralne zasady zmieniają się w zautomatyzowane gatekeeping. Jeśli jesteś kandydatem, pamiętaj, że te systemy nie są wyroczniami. To arkusze kalkulacyjne ubrane w język naturalny, które niosą ze sobą założenia każdego, kto napisał prompty.

Dopóki te narzędzia nie będą testowane pod kątem uprzedzeń tak rygorystycznie, jak inżynierowie, których oceniają, powinny one wspierać rozmowę międzyludzką, a nie ją zastępować.