Commoditech Porozmawiajmy
UsługiModele WspółpracyPortfolioBlogFAQPracaKontakt
🇵🇱 PL🇬🇧 EN🇩🇪 DE🇫🇷 FR🇪🇸 ES
Porozmawiajmy
← Powrót do Bloga

Nowoczesne narzędzia AI w rekrutacji programistów

Tradycyjne procesy rekrutacji IT – oparte na weryfikacji CV przez słowa kluczowe i wysyłaniu kandydatom prostych zadań algorytmicznych – przestają działać. W dobie powszechnego stosowania generatorów kodu i asystentów AI (takich jak Cursor, GitHub Copilot czy Claude Code), kandydaci mogą bez wysiłku generować poprawne rozwiązania testów technicznych. Z tego powodu liderzy HR Tech zmienili strategię: zamiast zakazywać używania sztucznej inteligencji, oceniają to, jak sprawnie kandydat z nią współpracuje.

1. Ocena pracy z AI w praktyce: Codility AI Posture Control & Copilot

Jednym z najciekawszych wdrożeń w obszarze weryfikacji umiejętności technicznych jest podejście firmy Codility. Zamiast blokować możliwość korzystania z asystentów kodu, Codility wprowadziło systemy, które pozwalają rekruterom elastycznie zarządzać stopniem użycia sztucznej inteligencji podczas testów.

  • AI Posture Control (Kontrola Postawy AI): Umożliwia rekruterom konfigurację zasad dotyczących asystenta AI dla każdego stanowiska indywidualnie. Możemy ustawić tryb "AI Restricted" (gdzie system agresywnie monitoruje próby kopiowania kodu lub przełączania kart) lub tryb "AI Enabled" (w którym sztuczna inteligencja jest oficjalnie dozwolona).
  • AI Copilot w środowisku testowym: W trybie "AI Enabled" kandydat otrzymuje zintegrowanego asystenta AI wewnątrz przeglądarkowego IDE. Zadanie nie polega na napisaniu kodu od zera, ale na stworzeniu zaawansowanego rozwiązania we współpracy z AI.
  • Ocena Promptowania i Krytycznego Myślenia: Narzędzie rejestruje historię zapytań (prompty) wysyłanych przez kandydata do AI oraz to, jak modyfikuje on sugerowany kod. Senior Developer oceniający test widzi dokładną ścieżkę myślową kandydata: czy bezkrytycznie wklejał błędne sugestie, czy potrafił precyzyjnie debugować odpowiedzi AI i wychwytywać luki bezpieczeństwa.

2. Autonomiczne wywiady techniczne: HackerRank Chakra AI

Kolejnym dużym przełomem jest automatyzacja pierwszego etapu rozmowy technicznej (pre-screening). Narzędzie HackerRank Chakra AI to autonomiczny asystent przeprowadzający interaktywne rozmowy głosowe i wideo z kandydatami.

W przeciwieństwie do starych jednokierunkowych nagrań wideo (gdzie kandydat nagrywał swoje odpowiedzi bez interakcji), Chakra AI działa dwukierunkowo w czasie rzeczywistym:

  1. Adaptacyjne pytania (Adaptive Interviewing): Model dynamicznie dostosowuje poziom trudności pytań na podstawie wcześniejszych odpowiedzi kandydata. Jeśli kandydat doskonale poradzi sobie z architekturą mikroserwisów, Chakra przejdzie do głębszych pytań o transakcyjność rozproszoną lub obsługę błędów w sieci.
  2. Prawdziwy dialog techniczny: Gdy kandydat przedstawi koncepcję projektową, Chakra AI potrafi zakwestionować pewne założenia (np. "Wspomniałeś o użyciu Redis jako głównej bazy danych dla transakcji finansowych. Jakie ryzyko to ze sobą niesie?") i oczekuje merytorycznej obrony decyzji architektonicznej.
  3. Automatyczny i ustrukturyzowany raport: Po zakończeniu sesji rekruter otrzymuje transkrypcję, ocenę poszczególnych kompetencji oraz nagranie ze znacznikami czasu wskazującymi na potencjalnie słabe punkty lub próby niesamodzielnej pracy.

3. Redukcja administracji o 80%: Metaview AI Notetaker

Podczas gdy HackerRank i Codility skupiają się na weryfikacji programistów, Metaview (dostępny pod adresem metaview.ai) rewolucjonizuje pracę samych rekruterów i Hiring Managerów.

Metaview to inteligentny notatnik AI, który automatycznie integruje się z kalendarzami i narzędziami takimi jak Zoom, Microsoft Teams czy Google Meet. Narzędzie automatycznie dołącza do rozmowy rekrutacyjnej w tle, transkrybuje ją, a następnie generuje structured notes (zorganizowane notatki) dostosowane do kart ocen (scorecards) w systemie ATS (np. Lever, Greenhouse).

💡 Konkretne fakty o Metaview:

Zaleta: Oszczędza średnio 15-20 minut po każdej rozmowie, eliminując potrzebę ręcznego spisywania wniosków. Rekruter może w 100% skupić się na kandydacie, zamiast na gorączkowym robieniu notatek.

4. Sourcing Niszowy vs Outbound: hireEZ vs SeekOut

Wyszukiwanie pasywnych kandydatów to najbardziej czasochłonny etap rekrutacji. AI zautomatyzowało ten proces na dwa różne sposoby, reprezentowane przez wiodące platformy sourcingowe:

Cecha / Narzędzie hireEZ (hireez.com) SeekOut (seekout.com)
Główny cel Automatyzacja outboundu i sekwencji angażujących. Wyszukiwanie niszowych i głębokich kompetencji technicznych.
Zasięg wyszukiwania Ponad 800 milionów profili (otwarta sieć web, LinkedIn, GitHub). Ponad miliard profili, w tym bazy patentów i publikacji naukowych.
Agent AI Uruchamia agenta, który automatycznie rankuje kandydatów i wysyła spersonalizowane maile. Wyszukuje specjalistów od uczenia maszynowego (ML), systemów embedded czy DevOps na bazie kodu i publikacji.

5. Zrób to sam (RODO-Safe): Lokalny Audytor Repozytoriów Kandydata

Zamiast polegać na drogich licencjach SaaS, które przesyłają kod kandydata do chmury (co może naruszać prawa autorskie lub umowy poufności NDA), można samodzielnie zbudować w pełni bezpieczne i lokalne narzędzie przy użyciu Python i Ollama.

Poniższy skrypt automatycznie analizuje kod źródłowy z lokalnego katalogu kandydata (np. sklonowanego repozytorium GitHub) i generuje 3-5 spersonalizowanych, technicznych pytań na rozmowę rekrutacyjną. Całość działa w 100% lokalnie na Twoim komputerze za pomocą modelu llama3 lub bielik.

import os
import requests

# Konfiguracja lokalnego serwera Ollama
OLLAMA_URL = "http://localhost:11434/api/generate"
MODEL_NAME = "llama3"  # Możesz zastąpić modelem "bielik" dla języka polskiego

def get_code_files(repo_path, extensions=('.py', '.js', '.ts', '.go')):
    """Zbiera zawartość plików kodowych o określonych rozszerzeniach"""
    code_bundle = ""
    for root, dirs, files in os.walk(repo_path):
        # Pomijaj katalogi zależności i konfiguracji
        if any(x in root for x in ['node_modules', '.git', 'dist', 'venv', '__pycache__']):
            continue
        for file in files:
            if file.endswith(extensions):
                file_path = os.path.join(root, file)
                try:
                    with open(file_path, 'r', encoding='utf-8') as f:
                        code_bundle += f"\n\n# Plik: {file}\n" + f.read()[:2000] # Ograniczenie rozmiaru
                except Exception:
                    pass
    return code_bundle

def generate_questions(code_content):
    """Generuje spersonalizowane pytania na podstawie kodu"""
    system_prompt = (
        "Jesteś doświadczonym architektem oprogramowania i rekruterem technicznym. "
        "Przeanalizuj przesłany kod kandydata i wygeneruj dokładnie 3 spersonalizowane, niebanalne pytania "
        "techniczne na rozmowę kwalifikacyjną. Pytania powinny dotyczyć konkretnych decyzji projektowych, "
        "bezpieczeństwa, wydajności lub potencjalnych błędów w ich kodzie. Odpowiedz w języku polskim."
    )
    
    prompt = f"Oto kod źródłowy projektu kandydata:\n\n{code_content}\n\nWygeneruj pytania:"
    
    payload = {
        "model": MODEL_NAME,
        "prompt": prompt,
        "system": system_prompt,
        "stream": False,
        "options": {
            "temperature": 0.2
        }
    }
    
    try:
        response = requests.post(OLLAMA_URL, json=payload, timeout=120)
        response.raise_for_status()
        return response.json().get("response", "").strip()
    except Exception as e:
        return f"Błąd generowania pytań: {e}"

if __name__ == "__main__":
    # Wskaż ścieżkę do sklonowanego projektu kandydata
    sciezka_do_kodu = "./sciezka_do_projektu_kandydata"
    
    if not os.path.exists(sciezka_do_kodu):
        print(f"Ścieżka {sciezka_do_kodu} nie istnieje. Ustaw poprawny katalog.")
    else:
        print("Wczytywanie kodu...")
        kod = get_code_files(sciezka_do_kodu)
        if len(kod) < 100:
            print("Nie znaleziono kodu do analizy.")
        else:
            print("Analiza lokalna przez Ollama i generowanie pytań...")
            pytania = generate_questions(kod)
            print("\n=== WYGENEROWANE PYTANIA REKRUTACYJNE ===")
            print(pytania)

💡 Przykład pytania wygenerowanego przez skrypt dla kodu React:

"W pliku `auth-context.tsx` używasz `localStorage` do przechowywania tokenów JWT i flag uwierzytelnienia. W jaki sposób zabezpieczyłeś tę implementację przed atakami typu XSS i dlaczego nie zdecydowałeś się na użycie ciasteczek typu HttpOnly?"

Podsumowanie: Nowy paradygmat rekrutacji

Sztuczna inteligencja zdejmuje z rekruterów IT ogromny ciężar powtarzalnej pracy administracyjnej (notatki z Metaview, automatyczny pre-screening z Chakra AI, wstępne filtrowanie kandydatów z hireEZ). Jednocześnie wymusza zmianę podejścia do weryfikacji merytorycznej: zamiast badać, jak dobrze kandydat potrafi zakodować algorytm z pamięci, ocenia się jego umiejętności architektoniczne, krytyczne myślenie oraz dojrzałość w korzystaniu z nowoczesnych narzędzi wspomagających programowanie.

Chcesz zintegrować narzędzia AI ze swoimi procesami HR?

W Commoditech pomagamy organizacjom w budowaniu nowoczesnych lejków rekrutacyjnych, integracji modeli językowych on-premise oraz tworzeniu bezpiecznych procedur zgodnych z RODO i AI Act.

Skonsultuj się z nami