Logo jobtime.pl

Wymagania techniczne dla systemu ATS

ESR/ATS uruchomisz na sprawdzonym stosie Linux + PHP/Laravel z MySQL/MariaDB. System wspiera upload i przetwarzanie CV (PDF/DOC/DOCX), automatyzacje w tle (cron) oraz opcjonalne wzmocnienia: skan AV, Redis i moduły AI z anonimizacją PII. Zasoby dobierzesz od małej instalacji po większą skalę. Gotowy na integracje SMTP i reCAPTCHA, gdy potrzebujesz.

System ESR/ATS jest aplikacją webową działającą na standardowym stosie serwerowym (Linux + PHP + Laravel + baza danych). Może być uruchomiony zarówno na pojedynczym serwerze (wariant startowy), jak i w architekturze rozdzielonej (aplikacja + baza + cache), gdy rośnie liczba rekrutacji, kandydatów i przetwarzanych dokumentów.

Największy wpływ na dobór zasobów ma to, jak intensywnie używane są funkcje przetwarzania plików (konwersje DOC/DOCX, ekstrakcja tekstu z PDF, skanowanie AV, OCR) oraz moduły AI. Dlatego poniżej rozdzielamy wymagania na część bazową oraz elementy opcjonalne, które w praktyce często są wdrażane od razu.


Minimalne środowisko serwerowe aplikacji

Rekomendowanym systemem operacyjnym jest Linux (np. Ubuntu Server 22.04 LTS lub 24.04 LTS). Aplikacja wymaga aktualnej wersji PHP (minimum 8.2), ponieważ taka wersja jest wymuszona przez zależności projektu. System jest oparty o Laravel 12, uruchamiany najczęściej na Apache 2.4+ z obsługą przepisywania adresów (mod_rewrite) oraz certyfikatem SSL/TLS.

Warstwę danych zapewnia MySQL 8.0+ lub MariaDB 10.6+. Zarządzanie zależnościami odbywa się przez Composer 2.x.

W praktyce oznacza to, że środowisko jest „klasyczne” i łatwe do utrzymania: nie wymaga egzotycznych komponentów, tylko stabilnych, powszechnie dostępnych technologii.


Wymagane rozszerzenia PHP

System korzysta ze standardowego zestawu rozszerzeń PHP, typowego dla nowoczesnych aplikacji Laravelowych. Obejmują one m.in. obsługę pracy z tekstem i kodowaniem, połączeń sieciowych, przetwarzania plików, grafiki, baz danych oraz mechanizmów szyfrowania. Dzięki temu nie ma tu „niespodzianek wdrożeniowych”, ale warto uwzględnić w checklistach serwera komplet wymaganych modułów (bcmath, ctype, curl, dom, fileinfo, gd, intl, json, mbstring, openssl, pdo, pdo_mysql, tokenizer, xml, zip).


Katalogi zapisu i uprawnienia

System zapisuje dane robocze i pliki w katalogach aplikacji (m.in. cache, pliki tymczasowe oraz repozytorium dokumentów kandydatów). Na etapie wdrożenia kluczowe jest zapewnienie praw zapisu dla użytkownika serwera WWW do katalogów przeznaczonych na storage i pliki robocze. To warunek sprawnego działania uploadów CV, generowania cache oraz przetwarzania dokumentów.


Przetwarzanie dokumentów (PDF/DOC/DOCX) i automatyzacje

Jeżeli rekrutacja ma obejmować pełne wsparcie pracy na dokumentach kandydatów (np. ekstrakcję tekstu z CV, konwersje formatów), serwer powinien mieć doinstalowane narzędzia systemowe:

  • komponenty do pracy z PDF (np. poppler-utils) umożliwiające wydobywanie tekstu i obrazów,
  • LibreOffice w trybie headless do konwersji dokumentów DOC/DOCX do formatów ułatwiających analizę i archiwizację,
  • Python 3 wraz z bibliotekami OpenCV i NumPy, jeśli wykorzystywane są funkcje analizy zdjęć (np. detekcja twarzy/zdjęć w dokumentach).

To elementy, które znacząco zwiększają automatyzację i jakość obsługi plików w rekrutacji, zwłaszcza gdy kandydaci przesyłają skany lub dokumenty z różnych źródeł.


Komponenty opcjonalne, które realnie podnoszą jakość działania

W wielu organizacjach sensowne jest wdrożenie dodatkowych usług już na starcie:

Skanowanie antywirusowe (ClamAV).

Jeżeli chcesz lokalnie skanować CV i załączniki, ClamAV zapewnia kontrolę bezpieczeństwa plików na serwerze. W dokumentacji uwzględniony jest limit rozmiaru pliku (np. 50 MB), który warto utrzymać jako praktyczną granicę w formularzach.

Redis (cache/queue).

System może działać bez Redisa (np. na plikowym cache), ale przy większej liczbie równoległych procesów i intensywnych zadaniach w tle Redis zauważalnie poprawia płynność działania, szczególnie w godzinach szczytu.


AI i anonimizacja danych: rekomendowana architektura „anonimizuj przed AI”

Jeżeli wykorzystujesz AI do analizy CV (AICV) zgodnie z podejściem, w którym dane osobowe są anonimizowane przed przekazaniem do dalszej analizy, wymagany jest dodatkowy mikroserwis anonimizacji PII. Działa on lokalnie (na tym samym serwerze lub w tej samej sieci) i realizuje anonimizację z użyciem technologii FastAPI + Presidio.

To rozwiązanie daje dwie korzyści naraz: po pierwsze zwiększa zgodność z zasadami ochrony danych, a po drugie porządkuje proces technicznie (AI pracuje na tekście „oczyszczonym” z PII). Serwis wymaga środowiska Python (w tym m.in. Presidio, FastAPI/Uvicorn, spaCy oraz polskiego modelu językowego pl_core_news_lg).


Integracje zewnętrzne i wymagania sieciowe

System może działać w pełni lokalnie, ale część funkcji opiera się o integracje wymagające dostępu wychodzącego HTTPS:

  • OpenAI (Responses API) – dla funkcji AI, wymagany jest token i możliwość komunikacji z API.
  • jobtime.pl – jeśli używasz publikacji ofert, synchronizacji słowników lub wybranych mechanizmów wsparcia procesu CV, potrzebna jest konfiguracja tokenów/ID firmy i dostęp do usługi.
  • Google reCAPTCHA v3 (opcjonalnie) – jeśli włączone w ustawieniach, wymaga kluczy i dostępu do usług Google.
  • SMTP (zalecane) – dla wysyłki wiadomości e-mail z systemu.

Harmonogram zadań (cron): warunek działania automatyzacji

Żeby system wykonywał zadania cykliczne (np. przetwarzanie zadań AI, operacje wsadowe na dokumentach, funkcje związane z analizą zdjęć), potrzebna jest konfiguracja harmonogramu zadań na serwerze. W praktyce oznacza to uruchamianie zadań co 1–5 minut (zależnie od obciążenia i polityki organizacji). Bez tego część automatyzacji będzie działała tylko „ręcznie”, a nie w tle.


Rekomendowane profile serwera (praktyczne, bez przesady)

Poniżej trzy rozsądne warianty, które można dobrać do skali rekrutacji i intensywności przetwarzania plików:


Mała instalacja (1–3 rekruterów, mały ruch)

To wariant startowy, dobry do uruchomienia i stabilnej pracy przy niewielkiej liczbie aplikacji.

  • 2 vCPU
  • 4–8 GB RAM
  • 80–160 GB SSD/NVMe
  • Baza danych na tym samym serwerze jest OK na start

Standard (kilka–kilkanaście rekrutacji równolegle, regularne CV)

Najbardziej uniwersalny wariant do codziennego użycia w organizacji, która prowadzi stałe procesy.

  • 4 vCPU
  • 8–16 GB RAM
  • 200–500 GB SSD/NVMe (zależnie od retencji plików)
  • Przy wzroście obciążenia warto rozdzielić bazę danych (osobna maszyna lub managed DB)

Większa skala / intensywne przetwarzanie dokumentów i AI

Wariant dla organizacji, w której dużo się dzieje: konwersje, OCR, skan AV, zadania AI w tle i sporo równoległych procesów.

  • 8 vCPU
  • 16–32 GB RAM
  • Dysk NVMe + sensowny backup plików i bazy
  • Zalecane: Redis oraz rozdzielenie bazy danych od aplikacji