Lead-hunt
Publiczny rejestr agencji pracy zamieniony w ocenioną listę leadów.
Problem
Rejestr KRAZ jest jawny i bezużyteczny: kilkaset pozycji bez telefonu, bez strony, bez informacji, czy firma w ogóle robi to, czego szukasz.
Rozwiązanie
Siedmioetapowy potok, który z listy nazw robi kolejkę do dzwonienia. Najpierw kontakt i oceny z map. Potem model językowy czyta stronę każdej firmy i odpowiada na pytania, których w rejestrze nie ma: czy kwateruje, w jakiej skali pracuje, w jakich branżach. Druga tura wyrzuca to, co agencją nie jest, a punktacja od zera do stu układa kolejność. Wynik czeka w bazie, aż agent poda go na Discordzie.
Co robi
- Zaciąga publiczny rejestr agencji pracy, kilkaset nazw naraz
- Dokłada telefon, stronę, ocenę i liczbę opinii z map
- Model językowy czyta stronę firmy i wypełnia pola o zakwaterowaniu, skali i branżach
- Druga tura odsiewa firmy, które agencją nie są
- Punktacja 0-100: zakwaterowanie 30, skala 25, zasięg 15, wiarygodność 15, kontakt 15
- Wynik ląduje w bazie, agent czyta go poleceniem na Discordzie
Na czym zbudowane
- Siedem skryptów Pythona uruchamianych po kolei, każdy zapisuje własny CSV
- Etap 2 wznawialny z pliku postępu, więc przerwanie nie kosztuje całego przebiegu
- Trafilatura wyciąga treść strony firmy, Gemini czyta ją wielowątkowo
- Osobna tura klasyfikacji odpowiada tylko na pytanie, czy to w ogóle agencja
- Punktacja w czystym pandas, z sufitem dla firm z markerem dyskwalifikującym
- Wynik do Firestore, kolekcja leads_demo, czytana przez skill agenta
Co to zmieniło
- 481 nazw z publicznego rejestru zamienionych w 214 leadów z telefonem, stroną i oceną — 266 odpadło, zanim ktokolwiek do nich zadzwonił
- 480 firm ocenionych w jednym przebiegu; ręcznie oznaczało to otwarcie strony każdej z nich po kolei
- Ten przebieg trwał około miesiąca — to nie jest narzędzie na jeden wieczór, tylko jednorazowe zbudowanie kolejki do dzwonienia
- 209 potwierdzonych jako realna agencja przez osobną klasyfikację
- Średni wynik 34,3 na 100; najwyższy 100 (ATLAS WORK, Marki) — kolejka do dzwonienia ustawia się sama
- Ilu z tych 214 odebrało telefon, ten wpis nie podaje: nie było takiego pomiaru
Stack
- Python
- pandas
- Gemini
- trafilatura
- Firestore
- Google Sheets
Historia
Punktacja ma sufit bezpieczeństwa: jeśli notatka modelu zawiera marker dyskwalifikujący, wynik nie przekroczy dwudziestu pięciu punktów niezależnie od reszty. Bez tego jedna dobrze napisana strona wypychała na górę firmę, która nie robi tego, czego szukamy.