Każdego dnia na Indeed, LinkedIn Jobs i Glassdoor pojawiają się dziesiątki tysięcy nowych ofert pracy. Dla zespołów HR-tech i analityków rynku pracy te dane to złoto — ale pozyskiwanie ich w skali jest wyzwaniem operacyjnym, prawnym i inżynieryjnym. Ten artykuł pomoże Ci zaplanować scraping ofert pracy jako powtarzalny, legalny i opłacalny proces.
Dlaczego dane z portali pracy mają strategiczne znaczenie
Informacja o tym, kogo zatrudnia konkurencja, gdzie otwiera biura i jakie kompetencje są poszukiwane, to jeden z najwcześniejszych sygnałów rynkowych. Raporty finansowe pokazują przeszłość. Oferty pracy pokazują przyszłość.
Dla zespołów labor market data te sygnały przekładają się na konkretne decyzje biznesowe: gdzie otworzyć nowe stanowiska, jak kształtować budżety wynagrodzeń, które technologie zyskują na popularności. Bez systematycznego pozyskiwania danych z portali pracy pozostajesz w ciemności — polegasz na anegdotach zamiast na dowodach.
Źródła danych: które portale scrapować i dlaczego
Wybór źródeł zależy od rynku geograficznego i celu biznesowego. Poniżej mapa najważniejszych portali z podziałem na trudność scrapingu i objętość danych.
| Portal | Rynek | Objętość ofert | Ochrona anti-bot | Rekomendowany typ proxy |
|---|---|---|---|---|
| Indeed | Globalny | Bardzo wysoka | Wysoka | Residential + rotacja |
| LinkedIn Jobs | Globalny | Wysoka | Bardzo wysoka | Residential + sticky sessions |
| Glassdoor | US, EU | Średnia | Średnia | Residential |
| Monster | US, EU | Średnia | Niska | Datacenter |
| ZipRecruiter | US | Średnia | Średnia | Residential |
| Xing Jobs | DACH | Średnia | Średnia | Residential |
| Naukri | Indie | Bardzo wysoka | Średnia | Residential |
Strategia wyboru źródeł
Nie musisz — i nie powinieneś — scrapować wszystkiego od pierwszego dnia. Zacznij od 2-3 portali najważniejszych dla Twojego rynku, a potem dodawaj kolejne. Priorytetyzuj na podstawie:
- Pokrycia rynku — Indeed i LinkedIn razem pokrywają 60-80% ofert na większości rynków.
- Unikalności danych — Glassdoor dodaje informacje o wynagrodzeniach i opiniach, których brakuje na Indeed.
- Konkurencyjności — jeśli Twoja konkurencja rekrutuje głównie na Naukri, nie ignoruj tego portalu.
Jakie dane są dostępne w ofertach pracy
Struktura danych różni się między portalami, ale większość ofert zawiera te pola:
- Tytuł stanowiska — kluczowe, ale uwaga: formaty różnią się drastycznie ("Senior Software Engineer" vs "SDE III" vs "Inżynier Oprogramowania Senior").
- Nazwa firmy — często zniekształcona ("Amazon Web Services, Inc." vs "AWS" vs "Amazon").
- Lokalizacja — miasto, region, kraj; czasem "remote" lub "hybrid".
- Opis stanowiska — najcenniejsze pole, ale najtrudniejsze do normalizacji.
- Wynagrodzenie — dostępne ułamkowo (20-40% ofert), głównie na US i IN.
- Data publikacji — nie wszystkie portale podają dokładną datę.
- Poziom seniority — często ukryty w tytule, rzadko jako osobne pole.
- Status remote — rosnące znaczenie po 2020, ale brak standaryzacji.
Kluczowa zasada: scrapujesz oferty pracy, NIE profile kandydatów. To fundamentalna różnica prawna i etyczna. Oferty są publicznie dostępne; profile kandydatów na LinkedIn czy Xing — nie.
Wybór proxy do scrapingu portali pracy
Wybór typu proxy to decyzja infrastrukturalna, która bezpośrednio wpływa na koszty i niezawodność. Job board scraping proxies muszą być dopasowane do agresywności anti-bot każdego portalu.
Kiedy residential, kiedy datacenter
Residential proxy są niezbędne dla LinkedIn Jobs i Indeed — oba portale aktywnie blokują ruch z IP datacenter. LinkedIn dodatkowo wymusza logowanie po kilku requestach, co oznacza, że musisz zarządzać sesjami i rotować IP w sposób zbliżony do zachowania prawdziwego użytkownika.
Datacenter proxy wystarczą dla portali o niższej ochronie — Monster, część portali regionalnych. Kosztują 3-5× mniej, ale nie próbuj ich na LinkedIn — stracisz czas i IP.
Mobile proxy są najlepsze dla LinkedIn — ruch z sieci komórkowych jest dla LinkedIn najbardziej zaufany, co znacząco zmniejsza ryzyko blokad i CAPTCHA.
Konfiguracja ProxyHat dla scrapingu ofert
Oto przykład zapytania przez residential proxy z geo-targetingiem na Niemcy — przydatne przy scrapingu Xing Jobs:
curl -x http://user-country-DE:PASSWORD@gate.proxyhat.com:8080 \
"https://www.xing.com/jobs/search?keywords=software+engineer&location=berlin"
Dla LinkedIn, gdzie potrzebujesz sticky session, aby utrzymać sesję logowania:
curl -x http://user-country-US-session-li12345:PASSWORD@gate.proxyhat.com:8080 \
"https://www.linkedin.com/jobs/search?keywords=data+engineer&location=new+york"
Sticky session trzyma Cię na tym samym IP przez dłuższy czas, co jest krytyczne dla portali, które śledzą spójność sesji.
Architektura systemu do scrapingu ofert pracy
Skalowy scraping ofert pracy wymaga architektury, która radzi sobie z różnicami między portalami i normalizuje dane do jednego schematu. Oto rekomendowany model.
Jeden scraper na źródło
Każdy portal ma inną strukturę DOM, inny flow paginacji, inne rate-limity i inne mechanizmy anti-bot. Jeden uniwersalny scraper to mit — szybko stanie się potworem, który niczego dobrze nie obsługuje.
Zamiast tego:
- Scraper Indeed — obsługuje paginację Indeed, wyciąga salary-snippet, radzi sobie z CAPTCHA.
- Scraper LinkedIn — zarządza sesją logowania, rotuje IP residential, parsuje karty ofert.
- Scraper Naukri — obsługuje specyficzne endpointy API, wyciąga tagi skills.
Każdy scraper wysyła dane w surowym formacie do wspólnej warstwy normalizacji.
Warstwa normalizacji
To serce systemu. Odpowiada za:
- Mapowanie pól — "job_title" z Indeed, "title" z LinkedIn, "position" z Naukri → jedno pole
title_normalized. - Standaryzacja lokalizacji — "NYC", "New York, NY", "Nowy Jork" → jeden klucz geograficzny.
- Normalizacja nazw firm — deduplikacja z użyciem Levenshtein distance lub bazy legal entity.
- Ekstrakcja seniority — z tytułu i opisu (regex + NLP).
- Flagowanie remote — detekcja słów-kluczy w tytule i opisie.
Deduplikacja między źródłami
Ta sama oferta często pojawia się na Indeed, LinkedIn i stronie pracodawcy. Bez deduplikacji zawyżysz wolumeny i zafałszujesz statystyki. Rekomendowana strategia:
- Pierwszy poziom — dokładne dopasowanie (firma + tytuł + lokalizacja + data).
- Drugi poziom — fuzzy matching na opisie oferty (hash MinHash / Jaccard similarity > 0.85).
- Trzeci poziom — URL do aplikacji (wiele portali linkuje do tej samej strony kariery).
Zarządzanie anti-bot per źródło
Każdy scraper musi mieć własną konfigurację obrony:
| Portal | Rate limit | Rotacja IP | CAPTCHA | Uwagi |
|---|---|---|---|---|
| Indeed | 1-2 req/s | Per-request | hCaptcha | Monitoruj 429 i 403 |
| 0.5-1 req/s | Sticky session (10-30 min) | ReCAPTCHA | Wymaga konta; ryzyko bana | |
| Glassdoor | 2-3 req/s | Per-request | Rzadko | Zmiany layoutu częste |
| Monster | 3-5 req/s | Co 50 req | Brak | Najbardziej przyjazny |
Przypadki użycia i ROI
1. Labor market intelligence
Śledzenie trendów popytu na kompetencje w czasie rzeczywistym. Zamiast czekać na raporty rządowe z 6-miesięcznym opóźnieniem, widzisz, że popyt na inżynierów ML wzrósł o 34% kwartał do kwartału — dzisiaj.
2. Sygnały rekrutacyjne konkurencji
Kiedy konkurent zaczyna masowo rekrutować na stanowiska związane z blockchain, wiesz o tym zanim ogłosi nowy produkt. To strategiczna przewaga informacyjna.
3. Salary benchmarking
Agregacja danych o wynagrodzeniach z ofert pracy pozwala budować modele kompensacyjne bardziej aktualne niż tradycyjne surveys (Mercer, Korn Ferry). Wada: coverage jest niepełna — tylko 20-40% ofert zawiera widełki.
4. Agregator ofert pracy
Budowa własnego agregatora (jak Ladders czy Jooble) wymaga scrapingu dziesiątek źródeł. Tu kluczowa jest skala i niezawodność — potrafisz pozyskać 500K+ ofert dziennie.
Konkretny przykład z liczbami
Zespół workforce-analytics w firmie SaaS z sektora HR (50 pracowników) wdrożył system scrapingu 3 portali (Indeed, LinkedIn, Glassdoor) na rynku US. Wyniki po 6 miesiącach:
- Wolumen: 1.2M ofert/miesięcznie po deduplikacji (z 2.1M surowych).
- Koszt infrastruktury proxy: ~$2,200/miesiąc (residential + datacenter mix).
- Koszt budowy: ~$45,000 (3 scrapery + normalizacja + dashboard).
- Wartość wygenerowana: produkt salary-benchmarking z subskrypcją $499/miesiąc, 40 klientów po 6 miesiącach = ~$20K MRR.
- ROI: zwrot z inwestycji w 4. miesiąc od premiery produktu.
Bez odpowiednich proxy do scrapingu portali pracy, ten system by nie istniał — Indeed i LinkedIn zablokowałyby ruch w ciągu godzin.
Aspekty prawne: TOS, GDPR i etyka
Scraping ofert pracy znajduje się w szarej strefie prawnej. Oto ramy, którymi warto się kierować.
Regulaminy serwisów (TOS)
Większość portali zabrania scrapingu w regulaminie. To jednak nie oznacza automatycznej nielegalności — w wielu jurysdykcjach (szczególnie US, po orzeczeniu hiQ Labs v. LinkedIn) scraping publicznie dostępnych danych jest chroniony. Ale:
- Omijanie mechanizmów autoryzacji (np. logowanie LinkedIn fałszywym kontem) może stanowić naruszenie CFAA w US.
- Scraping po zalogowaniu (behind login) jest ryzykowniejszy niż scraping publicznych stron.
- W Europie — sytuacja jest mniej jasna; rozważ konsultację prawną.
GDPR a dane z ofert pracy
Kluczowe rozróżnienie: oferty pracy to dane o stanowiskach, nie o osobach. GDPR chroni dane osobowe — imiona rekruterów w ofertach mogą być danymi osobowymi, ale tytuł stanowiska, lokalizacja i widełki wynagrodzeń — nie.
Praktyczne zasady:
- Nie scrapuj profili kandydatów — to ewidentne dane osobowe.
- Jeśli w ofercie pojawia się imię rekrutera, rozważ jego usunięcie lub anonimizację.
- Prowadź DPIA (Data Protection Impact Assessment) jeśli przetwarzasz dane na dużą skalę.
- Udokumentuj podstawę prawną — legitimate interest jest najczęstszą podstawą.
Etyczne zasady działania
- Szanuj
robots.txt— przynajmniej jako sygnał intencji serwisu. - Ogranicz rate — nie DDOSuj portalu swoimi zapytaniami.
- Nie publikuj surowych danych — agreguj i analizuj.
- Używaj danych do tworzenia wartości (insights), nie do bezpośredniej kopii treści.
Build vs. Buy: czy budować scraper samemu
To kluczowa decyzja strategiczna. Oto ramy decyzyjne:
| Kryterium | Build | Buy (API / dataset provider) |
|---|---|---|
| Czas do MVP | 3-6 miesięcy | 1-2 tygodnie |
| Koszt początkowy | $30-60K (dev + infra) | $500-5K/miesiąc |
| Kontrola nad danymi | Pełna | Ograniczona |
| Utrzymanie | Wysokie (zmiany DOM, anti-bot) | Wliczone |
| Unikalność danych | Wysoka (własny schemat) | Niska (konkurencja ma te same) |
| Skalowalność | Pełna kontrola | Zależna od providera |
Rekomendacja: jeśli dane z portali pracy są Twoim głównym produktem — buduj. Jeśli są komponentem w większym produkcie — rozważ buy, przynajmniej na start, a potem migruj do własnego rozwiązania gdy ROI się udowodni.
Niezależnie od ścieżki, infrastruktura proxy jest niezbędna. ProxyHat oferuje residential, mobile i datacenter proxy z geo-targetingiem w 190+ lokalizacjach — sprawdzoną warstwę dla każdego podejścia. Zobacz plany cenowe ProxyHat i dostępne lokalizacje.
Kluczowe wnioski
- Startuj z 2-3 portalami, które mają największe pokrycie na Twoim rynku — Indeed + LinkedIn to minimum dla większości rynków.
- Residential proxy są niezbędne dla LinkedIn i Indeed; datacenter wystarczą dla mniej chronionych portali. Używaj mixu, aby zoptymalizować koszty.
- Jeden scraper na źródło + wspólna warstwa normalizacji to architektura, która się skaluje bez chaosu.
- Deduplikacja jest krytyczna — bez niej Twoje dane są zawyżone o 30-50%.
- Scrapuj oferty, nie profile — to chroni Cię przed poważnymi problemami z GDPR i TOS.
- Liczymy ROI — przykładowy projekt zwraca się w 4 miesiące przy właściwej skali i monetyzacji.
Gotowy, by zacząć pozyskiwać dane rynku pracy w skali? Skonfiguruj ProxyHat z residential proxy i geo-targetingiem, i zacznij od jednego portalu. Więcej o zastosowaniach scrapingu znajdziesz w naszym przeglądzie use-case'ów web scrapingu oraz śledzeniu SERP.






