System ciągłego pozyskiwania leadów dla B2B SaaS
Codzienna multi-source enrichment 40 000+ kont, sygnały intencji, mapowanie decydentów. Bez ręki na sterze od Q2 2024.
Sub-15-minutowa freshness na 2M+ punktach cenowych. 32 dostawcy, 14 regionów, 9 walut. Browser automation klasy production.
OTA średniej skali (€30M+ GMV, marża 11-14%) tracił udział rynkowy na rzecz dwóch większych konkurentów z silniejszą price intelligence. W ich modelu, własne ceny były aktualizowane raz na 6 godzin batchem; konkurenci dostosowywali w ciągu minut. Skutek: w okresach wysokiej zmienności (weekendy długie, święta, eventy) sprzedawali tańsze pokoje niż mogli, lub drogie pokoje których nikt nie chciał kupić.
Wewnętrzna próba własnego systemu w 2024 padła. Klasyczne API integration z 32 dostawcami nie istniało — większość ma tylko web frontend albo restricted partner API z opóźnieniem 3-12h. Ich pierwsza implementacja scrape'u rozpadła się po dwóch miesiącach: success rate poniżej 50%, niespójne walidacje, brak handling'u currency conversion intra-day.
Zaprojektowaliśmy system 4-warstwowy: discovery layer (Playwright pool wykrywający availability per supplier per region), pricing layer (deep-fetch price points z dynamic loading, JS-rendered carousels, multi-step booking flows), validation layer (Zod schema enforcement + currency normalization z live FX rates), aggregation layer (sub-minute aggregations do read API klienta).
Critical decisions: residential proxy z geo-matching (cena hotelu w Berlinie różni się gdy patrzysz z polskiego vs niemieckiego IP — wymóg pricing accuracy). Per-supplier parser z version tracking — kiedy supplier zmienia layout, automatic fallback do v(n-1) parser plus alert do zespołu. Idempotent persist z content hashing — re-runy nie generują false price-change signals.
Architektonicznie: Temporal jako orchestrator (4000+ parallel workflows w peak), Playwright z custom fingerprint per region, Redis dla sub-second cache lookups, ClickHouse dla time-series price data, PostgreSQL dla canonical hotel/room/policy entities. Currency layer integruje z ECB plus dedicated FX provider dla minor pairs.
Pricing freshness spadł z 6h do 12-14 minut median, 22 minut P99. To wystarczyło żeby dorównać konkurentom, w niektórych kategoriach prześcignąć (bo nasz reach w supplier coverage jest szerszy).
Margin recovery (zmierzone przez A/B test z control group regionów na 3 miesiące): +€2.3M annualised, czyli +0.65pp margin point. Klient ma metodologię wewnętrzną którą można powtórzyć w przyszłych okresach.
System obsługuje 2.1M price points dziennie, 32 supplierów, 14 regionów. SLA 99.6% przez 14 miesięcy. Trzy migracje supplier layout w tym okresie — wszystkie obsłużone przez parser versioning bez downtime.
Codzienna multi-source enrichment 40 000+ kont, sygnały intencji, mapowanie decydentów. Bez ręki na sterze od Q2 2024.
Odporny scraping z anti-bot routingiem, normalizacja SKU i webhooki o zmianie ceny w 5 minut, wpięte w silnik repricingu klienta.
Agent celowany na zadanie, który przeszukuje raporty, prasę, social i źródła wewnętrzne — produkuje ustrukturyzowane briefingi codziennie przed 7 rano czasu wschodniego.
Jeśli rozpoznajesz fragmenty tego case study u siebie — napisz. Zwykle widzimy w pierwszym callu, czy to skala godzin tygodniowo, czy infrastruktura na miesiące.