Automatyczne dopasowanie projektów dla niezależnego konsultanta
Lokalna wielojęzyczna AI, konfigurowalne filtry i automatyczne zestawienia ofert
- Branża
- Niezależne doradztwo technologiczne
- Zakres
- Lokalna AI · Dopasowanie semantyczne · Automatyzacja · Własny hosting
Niezależny konsultant technologiczny potrzebował sprawniejszego wyszukiwania projektów na rynkach niemieckich i międzynarodowych. Opracowano agenta monitorującego nowe oferty, porównującego je z kilkoma CV i wysyłającego odpowiednie możliwości e-mailem. Aplikacja na własnym serwerze łączy lokalne dopasowanie AI, konfigurowalne kryteria i automatyczne powiadomienia.
Wyzwanie
Regularne sprawdzanie platformy i ręczna ocena opisów wymagały pracy. Wyszukiwanie słów kluczowych miało ograniczoną precyzję, gdy równoważne umiejętności opisywano inaczej po niemiecku i angielsku. Kilka CV podkreślających różne specjalizacje zwiększało nakład pracy. Wymagania obejmowały wiele profili, oba języki, lokalizację, pracę zdalną, typ umowy, brak powtarzających się alertów i niewysyłanie CV do zewnętrznych usług AI.
Nasz wkład
Zbudowano agenta w Pythonie sprawdzającego publiczne oferty według konfigurowalnego harmonogramu, domyślnie co 30 minut.
- Ekstrakcja tekstu z CV w PDF i DOCX oraz podział na mniejsze fragmenty. Lokalny wielojęzyczny model embeddingowy porównuje semantycznie opisy projektów z treścią CV.
- Nadanie oceny trafności i wskazanie najlepiej dopasowanego CV dla każdego projektu. Wspólne terminy i umiejętności stanowią dodatkowe uzasadnienie w powiadomieniu.
- Twarde filtry przed dopasowaniem semantycznym: kraj, minimalny udział pracy zdalnej, typ umowy, wymagane/wykluczone słowa, wykluczone firmy i projekty od klientów końcowych. Regulowany próg określa szerokość selekcji.
- Grupowanie odpowiednich ofert w zestawienia SMTP z linkami, ocenami, najlepiej dopasowanym CV i wspólnymi terminami, w HTML i zwykłym tekście.
- SQLite zapisuje przetworzone projekty i status powiadomień. Po błędzie dostarczenia pasujące projekty pozostają oczekujące na kolejną próbę.
- Pakiet Docker Compose do wdrożenia na stale działającym serwerze. Przetwarzanie CV i obliczanie embeddingów odbywa się lokalnie; trwałe wolumeny przechowują stan bazy i pobrany model.
Podejście techniczne
Po pobraniu publicznych stron następuje filtrowanie i lokalna ocena semantyczna względem fragmentów CV. SQLite śledzi przetwarzanie i powiadomienia, a SMTP dostarcza zbiorcze wiadomości. Konsultant odpowiada za ocenę ofert i decyzję o aplikowaniu.
Realizacja techniczna
| Obszar | Implementacja |
|---|---|
| Aplikacja | Python |
| Pozyskiwanie danych | Żądania HTTP i parsowanie publicznych stron |
| Przetwarzanie CV | Ekstrakcja tekstu PDF i DOCX |
| Dopasowanie | Lokalne wielojęzyczne embeddingi zdań i wspólne słowa kluczowe |
| Dane trwałe | SQLite |
| Powiadomienia | SMTP z HTML i zwykłym tekstem |
| Wdrożenie | Docker Compose |
| Diagnostyka | Walidacja konfiguracji, próbna ocena i logi aplikacji |
Weryfikacja i ustalenia
Implementację sprawdzono za pomocą 15 testów automatycznych, parsowania na żywo dla obu regionów platformy i udanego uruchomienia modelu wielojęzycznego. Zweryfikowano też tworzenie pakietu Python.
Testy na żywo wykryły niepełne pobieranie metadanych i różnice w oznaczeniach umów, których nie ujawniły uproszczone dane testowe. Parser dostosowano do ustrukturyzowanych danych projektowych osadzonych w publicznych stronach.
Późniejsza kontrola operacyjna pokazała, że brak konfiguracji, plików CV lub działającego kontenera uniemożliwia powiadomienia niezależnie od jakości dopasowania. Udokumentowano bezpośredni test SMTP, aby odróżniać problemy dostarczenia od dopasowania i harmonogramu.
Rezultat
Projekt dostarczył działającą podstawę automatycznego odkrywania ofert: kilka CV można oceniać konsekwentnie, projekty porządkować i wysyłać jednym zbiorczym e-mailem. Oszczędność czasu, precyzja dopasowania i wyniki komercyjne nie zostały jeszcze zmierzone. Oczekiwaną korzyścią jest ograniczenie ręcznej selekcji; konsultant nadal odpowiada za ocenę ofert i decyzję o aplikowaniu.
Ograniczenia i wnioski
- Pobieranie publicznych stron wymaga utrzymania: struktura i metadane platformy mogą się zmieniać.
- Progi wymagają kalibracji: podobieństwo semantyczne sygnalizuje trafność, lecz nie gwarantuje odpowiedniości.
- Pokrycie zależy od częstotliwości: sprawdzana jest tylko najnowsza strona ofert w każdym rynku. Duży wolumen publikacji lub długi przestój mogą powodować pominięcia.
- Testy operacyjne są ważne: walidacja konfiguracji, test SMTP i próbna ocena pozwalają diagnozować problemy oddzielnie.
- Lokalna AI wspiera kontrolę danych: treść CV nie trafia do chmurowego dostawcy AI podczas dopasowania semantycznego.
Pominięto informacje identyfikujące klienta, treść CV, szczegóły infrastruktury i adresy e-mail.
Wykazane kompetencje
Python · SQLite · SMTP · Docker Compose · PDF · DOCX
Lokalna AI · Wielojęzyczne dopasowanie semantyczne · Przetwarzanie dokumentów · Automatyzacja · Własny hosting · Dostarczanie e-mail · Diagnostyka operacyjna
