Poszukiwanie ofert pracy – scraping i klasyfikacja AI (pracuj.pl)

  1. Zdefiniowałem stanowiska, których szukam – Kraków, umowa o pracę. Otrzymałem adres URL z filtrem (https://www.pracuj.pl/praca/krakow;wp?rd=0&tc=0&iwhpl=false)
  2. Stworzyłem skrypt w Pythonie, który
    • Z każdej strony pobiera linki do ofert oraz nazwy stanowisk.
    • Następnie odwiedza każdą ofertę, wyciągając pełny opis obowiązków i wymagań.
    • Wszystkie informacje zapisuje w pliku CSV, co pozwala na łatwą analizę w Excelu lub Pythonie.
    • Regularnie wykonuje zapisy cząstkowe („w trakcie”), aby zapobiec utracie danych w przypadku błędu.
    • Jeśli istnieją wcześniejsze pliki, skrypt potrafi wznowić działanie od momentu, w którym skończył.
    • Skrypt działa w sposób dyskretny (randomizowane przerwy, przewijanie strony, dłuższe pauzy), aby zminimalizować ryzyko blokady. Jest to kluczowe, ponieważ portale z ofertami pracy posiadają silne zabezpieczenia antiscrapingowe.
    • Podział pracy na dwa etapy (najpierw zbieranie listy ofert, potem pobieranie opisów) zapewnia lepszą kontrolę nad procesem.
    • Logi na bieżąco informują o postępie oraz szacowanym czasie zakończenia (ETA).
    • Gotowa baza danych idealna do filtrowania, analizy rynku oraz precyzyjnego dopasowania CV.

Python script : https://colab.research.google.com/drive/1y3ms-JtAIL1WNuW-g9OrrdD8ukcTs_mR?usp=sharing

Przygotowałem prompt, który pobiera ofertę (nazwę stanowiska oraz opis) i klasyfikuje ją w skali od 0 do 5 (gdzie 5 oznacza najwyższe dopasowanie) na podstawie moich wymagań. Oto treść promptu:

Rola: Działasz jako ekspert ds. rekrutacji technicznej i doradca zawodowy. Twoim zadaniem jest analiza oferty pracy (Tytuł i Opis) oraz określenie jej trafności względem mojego profilu w skali od 0 do 5.

Przydziel ocenę (0-5):

5: Perfect Match (Wszystko pasuje: tech stack, in-house, UoP, Kraków, brak zarządzania).

4: High Relevance (Pasuje tech stack i domena lub jest to 90% dopasowania).

3: Good Match (Ciekawa rola techniczna lub jest to graniczny stack).

2: Partial Match (Rola SEO bez aspektów technicznych lub rola techniczna w innej branży).

1: Low Relevance (Tylko jeden wspólny punkt, np. tylko lokalizacja lub tylko język).

0: No-Go pozicija jest całkowicie nieistotna.

Jeśli stanowisko wymaga zaawansowanego stosu technologicznego (Python, SQL), ale domenowo dotyczy infrastruktury sieciowej, cyberbezpieczeństwa (DevSecOps) lub niskopoziomowego sprzętu (Telco), obniż wynik o 1 punkt. Preferuj role, w których technologie są wykorzystywane do danych biznesowych, stron internetowych, SEO lub automatyzacji marketingu.

Strict Domain Filter (Penalizacja): Jeśli rola jest silna technicznie (Python/SQL), ale domenowo należy do: Cyberbezpieczeństwo, Infrastruktura bankowa, Telekomunikacja (5G/RAN), Audyt finansowy lub czysty SysAdmin, maksymalny możliwy wynik to 2, nawet jeśli stack pasuje w 100%. Te obszary są dla mnie nieinteresujące.

Archetyp Idealnej Pozycji (Priorytetyzacja):
Wyniki 4 i 5 rezerwuj dla stanowisk, które łączą technologię ze wzrostem biznesowym, np.: Technical SEO, Marketing Automation, Product-oriented Web Dev (PHP/Python), Data Analytics dla E-commerce/Product.

Obowiązkowa weryfikacja rodzaju umowy (UoP):
Jeśli w tekście wyraźnie wskazano „B2B” bez wzmianki o „Umowie o pracę” (UoP), obniż wynik o 1 punkt (chyba że jest to wyjątkowo idealna rola).

Hard Skills (Stack technologiczny)
Programowanie i automatyzacja:
Python: Zaawansowana automatyzacja zadań, tworzenie skryptów do scrapingu (Selenium, Playwright), przetwarzanie danych (Pandas, NumPy).
Web Development: Tworzenie wewnętrznych narzędzi we Flasku, rozwój wtyczek WordPress (czyste PHP), edycja frontendu (HTML, CSS, podstawy JavaScriptu).
Low-code/No-code: Automatyzacja w Google Workspace poprzez Apps Script (JavaScript) oraz zaawansowana logika w feedach XML (Mergado).
Analityka danych:
SQL (MySQL): Odpytywanie baz danych, łączenie zestawów danych (JOINy), ekstrakcja i oczyszczanie surowych danych.
Wizualizacja: Zaawansowana praca w Looker Studio (łączenie z SQL/źródłami marketingowymi), poziom ekspercki w Excel i Google Sheets (złożone formuły, skrypty).
Analityka internetowa: Implementacja pomiarów w GA4, praca z Google Tag Managerem (GTM).
Integracja AI i LLM:
Wykorzystywanie LLMs przez API do masowego przetwarzania danych, klasyfikacji podmiotów oraz prompt engineering w celu usprawnienia workflowu.

Eksperckość domenowa (SEO i Marketing)
Technical SEO (Senior): Dogłębne audyty, architektura stron, optymalizacja indeksacji i infrastruktury dla milionów adresów URL.
Migracje SEO: Kompleksowe zarządzanie przenoszeniem serwisów (mapowanie URL, plany przekierowań, integralność danych).
Strategiczne SEO: Planowanie KPI, celów biznesowych i powiązanie SEO z realnymi przychodami firmy.
Narzędzia SEO: Ekspert w Ahrefs i Screaming Frog (w tym pisanie niestandardowych ekstrakcji).

Zarządzanie projektami i Ownership
Technical Project Management: Przekładanie wymagań biznesowych na język techniczny dla programistów, tworzenie specyfikacji technicznych, zarządzanie zadaniami (Asana, ClickUp).
Client Management: Umiejętność przystępnej prezentacji złożonych danych technicznych i konsultowanie strategii na poziomie zarządu.
Ownership: Pełna odpowiedzialność za powierzony projekt. Jeśli napotkam nieznany problem, rozwiążę go samodzielnie (samodzielność w poszukiwaniu rozwiązań poprzez AI/dokumentację).

Cechy i mindset pracy
Praktyczny twórca (Doer): Preferuję realne efekty i tworzenie nad pustym teoretyzowaniem.
Szybka adaptacja: Ekstremalnie szeroki zakres wiedzy pozwala mi wejść w dowolny projekt i szybko nauczyć się nowych technologii.
Ciekawość: Naturalna potrzeba uczenia się nowych rzeczy również w czasie wolnym, jeśli temat mnie zainteresuje.
Mentor, nie Menedżer: Chętnie przyuczę kolegów i podzielę się know-how, ale odmawiam administracyjnego zarządzania ludźmi (rola Individual Contributor).

Znajomość języków
Słowacki: Język ojczysty.
Polski: Płynna komunikacja (odpowiedni dla polskich firm i korporacji).
Angielski: Poziom C2 (zdolność do pracy w środowisku w 100% anglojęzycznym).