Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
AI Recruiting CLI

Konsolowe narzędzie Python dla agencji rekrutacyjnej. Automatyzuje cały cykl przetwarzania ofert pracy: od surowego pliku tekstowego pracodawcy — do wiersza w Google Sheets.

Problem

Agencja codziennie otrzymuje od pracodawców pliki z ofertami pracy w dowolnych formatach — TXT, CSV, DOCX. Każda firma ma swój układ, język (ukraiński / polski / rosyjski) i swój sposób dzielenia ofert w pliku. Operatorzy ręcznie przenosili dane do tabeli — wolno i z błędami.

Rozwiązanie

Pipeline składający się z 6 etapów z interaktywnym potwierdzeniem operatora na każdym kluczowym kroku:

Plik wejściowy → Podział na bloki → Czyszczenie tekstu → Gemini LLM → Excel → Google Sheets

Parsowanie — rozpoznaje 6+ formatów dzielenia ofert: puste linie, tab-digest w pierwszej linii. Usuwa duplikaty w różnych językach (firmy wysyłają jedną ofertę w 3–4 językach jednocześnie).

Czyszczenie — wycina linki, telefony, e-maile i szablonowe tokeny przed wysłaniem do LLM, zmniejszając koszt zapytania.

Structured Output — Gemini wypełnia 13 pól przez schemat Pydantic i response_schema. Mapowanie odpowiedzi na obiekty — według vacancy_id z tagu XML, a nie według indeksu (ochrona przed utratą przy częściowej odpowiedzi wsadu). Trzy poziomy parsowania: response.parsed → model_validate_json() → JSON fallback.

Deduplikacja — SHA-256 dla dokładnych dopasowań + MinHash (próg 0.85) dla nieprecyzyjnych, z przechowywaniem w SQLite.

Excel — zapisuje wynik w .xlsx z timestamp, operator może edytować ręcznie przed załadowaniem.

Google Sheets — dopisywanie przez gspread (OAuth). Ładowanie tylko po wyraźnym potwierdzeniu operatora (y/n).

Technologie

LLM: google-genai — Gemini Flash
Structured Output: pydantic v2 + response_schema
Konsola/UI: rich
Google Sheets: gspread + google-auth (OAuth)
Excel: openpyxl
Deduplication: datasketch MinHash + sqlite3
Konfiguracja: pyyaml
Klucze API: keyring (Windows Credential Manager)
Logi: loguru
Retry: tenacity

Przy pierwszym uruchomieniu kreator pyta o klucz API Gemini i zapisuje go w Windows Credential Manager przez keyring — klucz nie jest przechowywany w plikach projektu.

Interesujące szczegóły

thinking_budget=1024 — w Gemini włączony jest tryb myślenia dla zwiększenia dokładności strukturalnego wyjścia.
Batching — oferty są wysyłane do LLM grupami (tagi XML vacancy id="...") , mapowanie po id chroni przed utratą oferty przy niepełnej odpowiedzi.
Śledzenie kosztów — liczy tokeny i USD za sesję, ostrzega przy przekroczeniu progu z konfiguracji.
Portable — kompilowane do .exe przez PyInstaller do przekazania operatorowi bez środowiska Python.

#python #automation #AI #LLM #Gemini #GoogleSheets #recruiting #CLI #pydantic #opensource
Szczegóły pracy
Budżet 547 PLN
Dodana 4 czerwca
17 wyświetleń
Freelancer
Anton P.
Ukraina Kijów  6  0

Gotowy do podjęcia pracy Gotowy do podjęcia pracy
Zakończono 6 Sejfów
W serwisie 3 lata