Agenci AI i Automatyzacje

Hermes Kwatery

Agent, który szuka mieszkań pod pracowników i liczy marżę.

Problem

Klient prowadzi kwaterowanie pracowników tymczasowych i codziennie ręcznie przegląda ogłoszenia. Pierwszą wersję odrzucił zdaniem: „z OLX korzystam sam codziennie, do tego AI mi nie potrzeba”. Nie kupował wyszukiwarki. Kupował zniknięcie tej czynności z dnia.

Rozwiązanie

Panel, w którym po lewej wpisuje się pytanie po polsku i przesuwa suwaki — zakład, liczba pracowników, stawka za osobę, obłożenie, maksymalny dojazd — a po prawej przelicza się gotowy zestaw mieszkań z marżą. Obok leci widoczny strumień pracy agenta: które portale, ile ofert, ile duplikatów. Raport wychodzi jako plik z klikalnymi linkami.

Co robi

  • Pytanie po polsku plus pięć suwaków: zakład, liczba osób, stawka, obłożenie, dojazd
  • Przeliczenie na żywo, bez przeładowania strony
  • Widoczny strumień pracy agenta: portale, liczba ofert, duplikaty
  • Deduplikacja międzyportalowa i weryfikacja, czy ogłoszenie wciąż żyje
  • Ranking z marżą i eksport raportu z klikalnymi linkami
  • Twarda reguła pojemności: pokoje razy trzy, nigdy z metrażu

Na czym zbudowane

  • Python 3.12 na samej bibliotece standardowej, zero pip install
  • SQLite w trybie WAL, transakcje BEGIN IMMEDIATE przy zapisie
  • Serwer HTTP i strumień zdarzeń SSE w jednym pliku demo_server.py
  • Pięć kolektorów: Otodom, Gratka, Morizon, Domiporta, nieruchomosci-online
  • Otodom czytany z bloku __NEXT_DATA__, bez przeglądarki i bez Playwrighta
  • Frontend w czystym HTML, CSS i JavaScripcie, bez frameworka i bez budowania
  • Reguły biznesowe w analytics.py, oddzielone od pobierania danych

Jak to wygląda

Co to zmieniło

  • Trzy godziny dziennie ręcznego przeglądania ogłoszeń zeszły do jednego przebiegu, który trwa 5 minut
  • Klient używa tego u siebie od dwóch tygodni (stan na 10 sierpnia 2026)
  • Pięć portali w jednym przebiegu: 97 ofert w bazie, duplikaty policzone raz, nie pięć razy
  • 97 na 97 linków żywych przy weryfikacji (stan 28 lipca 2026) — martwe ogłoszenie nie wchodzi do oferty, więc nikt nie dzwoni pod nieaktualne
  • Przebieg na prawdziwych danych: 20 pracowników w Koziegłowach, 45 ofert, zestaw na 21 miejsc, marża 9 320 zł miesięcznie — policzona przez panel, nie przez człowieka z kalkulatorem
  • 846 porównań matematyki panelu, zero różnic; 60 równoległych przeliczeń bez błędu
  • Testy wrogie 10 na 10, w tym odrzucenie próby wstrzyknięcia polecenia „usuń bazę”

Stack

  • Python 3.12
  • SQLite (WAL)
  • SSE
  • vanilla JS
  • zero zależności zewnętrznych

Historia

Cały backend stoi na samej bibliotece standardowej Pythona — żadnego pip install. Najważniejsze odkrycie przyszło późno: Otodom to aplikacja Next.js, więc komplet danych jedzie w jednym bloku JSON w źródle strony. Trzydzieści siedem ofert z jednego zapytania, bez przeglądarki. Zbieranie zeszło z minut do sekund i cała warstwa automatyzacji przeglądarki okazała się niepotrzebna.