Strona główna · Poradniki · ATS i AI w rekrutacji

Parsowanie CV — jak system czyta Twój dokument

Aktualizacja: sierpień 2026·7 min czytania·Zespół ŁatweCV

Ten tekst jest częścią przewodnika Czym jest system ATS i jak napisać CV, które przez niego przejdzie.

W skrócie
Parser nie ocenia CV — wypełnia nim formularz. Najpierw wyciąga z pliku warstwę tekstową, potem zgaduje kolejność czytania (bo PDF jej nie przechowuje), a na końcu mapuje fragmenty na pola profilu. Dlatego układ dokumentu psuje odczyt mocniej niż grafika, a skan bez OCR daje pusty rekord.
2,5 MBPowyżej tego rozmiaru Greenhouse w ogóle nie parsuje CV, choć sam upload przyjmuje pliki do 100 MB. Plik trafia do systemu, ale pola profilu zostają puste.

Parsowanie CV to moment, w którym Twój plik przestaje być dokumentem i staje się rekordem w bazie danych pracodawcy. System nie czyta CV tak jak człowiek: najpierw wyciąga z pliku surowy ciąg znaków, potem próbuje odtworzyć kolejność, w jakiej te znaki mają iść, a dopiero na końcu przypisuje fragmenty do pól — imię, nazwisko, e-mail, telefon, stanowisko, firma, daty od-do. Poniżej masz ten mechanizm rozłożony na części i powód, dla którego dokument bez zarzutu na ekranie potrafi rozsypać się po drodze.

Co to jest parsowanie CV i czym różni się od „skanowania CV” przez ATS

Parsowanie CV to automatyczna konwersja nieustrukturyzowanego pliku na ustrukturyzowany rekord z nazwanymi polami, a „skanowanie CV” to potoczna nazwa całego zestawu operacji, które system wykonuje na aplikacji, łącznie z filtrowaniem i punktowaniem. Różnica jest zasadnicza: parser niczego nie ocenia i nikogo nie odrzuca — on wypełnia formularz.

Technicznie proces ma trzy warstwy, które trzeba rozdzielić, żeby zrozumieć, gdzie coś idzie nie tak:

Dopiero nad gotowym rekordem nadbudowana jest warstwa selekcji: wyszukiwanie po polach, filtry i scoring. Za odsiew odpowiadają kryteria ustawione tam przez rekrutera, a nie sam odczyt pliku — ale jeśli parser wpisze stanowisko w niewłaściwe pole, wypadasz z wyników wyszukiwania, zanim ktokolwiek oceni Twoje kompetencje. Rolę całego oprogramowania rekrutacyjnego rozkłada na czynniki poradnik o tym, czym jest system ATS.

Ten sam podział przebiega w przepisach. Unijny AI Act (rozporządzenie 2024/1689) zalicza w załączniku III do systemów wysokiego ryzyka narzędzia przeznaczone do analizowania i filtrowania podań o pracę oraz oceny kandydatów, a sama ekstrakcja danych z pliku nie jest decyzją — pod ten reżim wchodzi dopiero warstwa oceny zbudowana nad parserem.

W jakiej kolejności system czyta Twoje CV — od góry do dołu czy kolumnami

Plik PDF w ogóle nie przechowuje kolejności czytania, więc parser musi ją odgadnąć. Specyfikacja ISO 32000-1 (PDF 1.7) opisuje, w którym miejscu strony postawić każdy glif, a nie w jakiej kolejności te glify tworzą tekst. Logiczny porządek definiuje dopiero Tagged PDF i standard dostępności PDF/UA (ISO 14289-1), który wymaga otagowania treści w kolejności czytania — a większość CV eksportowanych z edytorów graficznych takich tagów nie ma.

Bez tagów parser odtwarza kolejność heurystycznie, ze współrzędnych znaków na stronie. Najprostsze podejście czyta stronę wierszami przez całą szerokość i właśnie dlatego układ dwukolumnowy potrafi przepleść nazwę stanowiska z lewej kolumny z umiejętnością z prawej. Właśnie dlatego decyzja o tym, czy wybrać CV dwukolumnowe czy jednokolumnowe, ma konsekwencje techniczne, a nie tylko estetyczne.

Wąska kolumna z listą umiejętności obok opisu stanowiska — parser wpisuje do obowiązków „Excel, SQL, angielski C1”.
Jeden strumień treści na pełną szerokość — sekcja umiejętności zaczyna się dopiero po ostatnim opisie stanowiska.

Czy parser poprawnie odczyta polskie znaki ą, ę, ł, ż, ś

Polskie znaki wychodzą z pliku PDF przez mapę /ToUnicode osadzoną w foncie i to od niej zależy, czy zamiast „Wiśniewski” w bazie wyląduje ciąg krzaków. Mapa mówi programowi czytającemu, jakiemu punktowi Unicode odpowiada dany kod glifu w danym kroju.

Gdy mapy brakuje — bo krój został osadzony niekompletnie albo pochodzi z egzotycznego źródła — ekstraktor cofa się do słownika /Encoding i tablicy /Differences, potem do listy Adobe Glyph List, a w ostateczności traktuje surowy kod znaku jako punkt Unicode. Wtedy plik na ekranie wygląda poprawnie, bo rysowany jest kształt litery, ale parser czyta coś zupełnie innego. Efektem bywa nazwisko z rozsypanymi ogonkami i adres e-mail z podmienionym znakiem, którego rekruter nie odgadnie.

Co parser widzi w pliku PDF, a co w DOCX

DOCX jest dla parsera przewidywalniejszy, bo w formacie Office Open XML (ECMA-376, ISO/IEC 29500) akapity mają jawną kolejność w strukturze dokumentu — to plik XML w kontenerze ZIP, w którym nie trzeba niczego wnioskować z geometrii strony. PDF z poprawną warstwą tekstową współczesne systemy czytają jednak bez problemu i formalnie go obsługują: Greenhouse przyjmuje do parsowania rozszerzenia .doc, .docx, .pdf, .rtf i .txt. Który z tych formatów wysłać rekruterowi, rozstrzyga porównanie CV w PDF czy Word.

Prawdziwy próg to rozmiar pliku. Greenhouse nie parsuje CV większych niż 2,5 MB, choć sam upload dopuszcza pliki do 100 MB — dokument trafia do systemu, ale rekord kandydata zostaje pusty. Drugi próg to skan: zdjęcie CV albo PDF bez warstwy tekstowej nie zawiera żadnych znaków, tylko piksele. Bez OCR (Tesseract, ABBYY FineReader) parser wyciąga z takiego pliku pusty ciąg, a OCR nie jest standardowym elementem toru parsowania w każdym systemie rekrutacyjnym.

Co dzieje się z tabelą, stopką i polem tekstowym w trakcie parsowania

Tabela, nagłówek, stopka i pole tekstowe trafiają do parsera jako osobne kawałki treści, oderwane od głównego strumienia tekstu, i dlatego to one najczęściej gubią dane. Oficjalna dokumentacja Greenhouse wymienia wprost przyczyny nieudanego parsowania: plik wgrany jako obraz, grafiki, zdjęcia i WordArt, tabele, nagłówki i stopki dokumentu, pola tekstowe, układy kolumnowe, brak wyraźnych sekcji, spacje wstawione między pojedyncze litery, skrócone stanowiska w rodzaju „Sr. Account Exec” oraz nazwy firm pozbawione formy prawnej — w polskim CV odpowiada temu urwane Sp. z o.o. albo S.A.

Tabela rozbija ciągłe zdanie na osobne komórki, więc data zatrudnienia przestaje sąsiadować z nazwą firmy. Nagłówek i stopka to w strukturze pliku osobne strumienie, czytane poza kolejnością albo powtarzane na każdej stronie, a pole tekstowe jest ramką pływającą nad treścią, którą parser potrafi dokleić na samym końcu — numer telefonu ze stopki nie trafia więc do pola telefonu, mimo że widać go na wydruku. Które z tych elementów system pomija w całości, a które tylko przestawia, rozkłada na części tekst o tym, czy system rekrutacyjny czyta tabele, ramki i pola tekstowe, a gotowe układy bez tych pułapek opisuje poradnik o tym, po czym poznać szablon CV przyjazny ATS.

Co parser robi z nazwą stanowiska i listą umiejętności

Odczytane stanowiska i umiejętności są normalizowane do taksonomii, czyli sprowadzane do wspólnego słownika, zamiast być zapamiętywane jako surowe słowa kluczowe. Europejska klasyfikacja ESCO w wersji 1.2 opisuje 3 039 zawodów i 13 939 umiejętności powiązanych z tymi zawodami, w 28 językach, z mapowaniem zawodów na międzynarodową klasyfikację ISCO. Dostawcy parserów budują na tym własne słowniki — Textkernel, który w 2021 roku przejął amerykańskiego Sovrena, deklaruje normalizację nazw stanowisk z mapowaniem na O*NET i ISCO.

Parser nie „szuka słów kluczowych” w naiwnym sensie — próbuje przypisać Twoje zapisy do pozycji w słowniku. Standardowa, pełna nazwa stanowiska ma większą szansę trafić w konkretny wpis taksonomii niż wewnętrzny tytuł z poprzedniej firmy albo skrót. Normalizacja kończy się jednak na rekordzie: czy ktoś ocenia jego treść i czym to robi, to osobna warstwa procesu, opisana w tekście o tym, czy rekruterzy używają ChatGPT do oceny CV.

Które pola parser wypełnia i kto o tym decyduje

Zestaw pól ustawia pracodawca w konfiguracji swojego systemu, a wynik parsowania jest tylko podpowiedzią do formularza, którą można nadpisać ręcznie. Dokumentacja tomHRM wprost zaznacza, że stopień uzupełnienia formularza zależy od tego, jak kandydat przygotował CV, a rozpoznawanie pól opiera się tam na słowach kluczowych konfigurowanych po stronie pracodawcy w ustawieniach odczytu CV. eRecruiter przy masowym wgrywaniu dokumentów dopasowuje automatycznie tylko dane podstawowe: imię, nazwisko i adres e-mail, a rekruter weryfikuje odczyt na podglądzie dokumentu i ręcznie dopisuje brakujące pola, na przykład telefon. Rozjazd między rekordem a treścią pliku widzi więc człowiek, dlatego liczy się spójność formularza aplikacyjnego z CV.

Zakres pól ma też granicę prawną. Art. 22(1) § 1 Kodeksu pracy wyznacza katalog danych, których pracodawca może żądać od kandydata: imię (imiona) i nazwisko, datę urodzenia, dane kontaktowe wskazane przez kandydata oraz — gdy jest to niezbędne do wykonywania pracy określonego rodzaju — wykształcenie, kwalifikacje zawodowe i przebieg dotychczasowego zatrudnienia. Nowelizacją obowiązującą od 4 maja 2019 roku usunięto z tego katalogu imiona rodziców i adres zamieszkania, więc pola na te dane nie mają dziś podstawy w przepisie. To nie jest porada prawna — w razie wątpliwości sprawdź aktualne brzmienie przepisu w Dzienniku Ustaw.

Tak wygląda rekord po sparsowaniu

„imię: Anna | nazwisko: Kowalska | e-mail: anna.kowalska@example.com | telefon: +48 600 000 000 | miasto: Wrocław | stanowisko: Specjalistka ds. kadr i płac | firma: Acme Sp. z o.o. | od: 2021-03 | do: (puste, zatrudnienie trwa) | umiejętności: Płatnik, Symfonia Kadry i Płace, Excel”

Jak zobaczyć ten sam tekst, który dostaje parser

Najszybszy sprawdzian to skopiowanie całej treści pliku i wklejenie jej do zwykłego notatnika — zobaczysz wtedy dokładnie ten ciąg znaków, który dostaje parser, razem z jego kolejnością. Jeśli tekst się nie zaznacza, masz obraz bez warstwy tekstowej. Jeśli zaznacza się, ale daty odkleiły się od firm, a umiejętności wpadły w środek obowiązków, kolejność czytania została odtworzona źle.

Drugie źródło to sam formularz aplikacyjny: po wgraniu pliku część systemów pokazuje uzupełnione pola profilu, zanim wyślesz zgłoszenie, a to już podgląd rekordu, który zobaczy rekruter. Pełną procedurę testu, krok po kroku, znajdziesz w tekście o tym, jak sprawdzić CV pod ATS, a jeśli wolisz zacząć od pliku, który takiego testu nie potrzebuje, kreator ŁatweCV generuje PDF z warstwą tekstową i jednym strumieniem treści.

PDF, który parser odczyta bez zgadywania
Kreator ŁatweCV eksportuje CV do PDF z warstwą tekstową i jednym strumieniem treści, więc parser nie musi zgadywać kolejności czytania.
Zacznij za darmo

Checklista

☐ Otwórz swoje CV w czytniku PDF, zaznacz całą treść i wklej ją do notatnika☐ Sprawdź we wklejonym tekście, czy polskie znaki ą, ę, ł, ż, ś wyglądają poprawnie☐ Zobacz, czy daty i nazwy firm nie odkleiły się od nazw stanowisk☐ Upewnij się, że plik ma warstwę tekstową, a nie jest zdjęciem albo skanem☐ Sprawdź rozmiar pliku i trzymaj się poniżej 2,5 MB☐ Wynieś dane kontaktowe poza tabele, nagłówek i stopkę dokumentu☐ Rozwiń skróty w nazwach stanowisk i podaj pełne nazwy firm z formą prawną☐ Po wgraniu CV do formularza przejrzyj uzupełnione pola i popraw je ręcznie

Częste pytania

Czy nazwa pliku CV ma znaczenie dla systemu rekrutacyjnego?

Dla samego parsowania nie ma znaczenia — parser czyta treść z wnętrza pliku, a nazwa nie jest źródłem danych do żadnego pola profilu. Znaczenie ma dopiero po stronie człowieka: rekruter widzi w systemie listę załączników i po nazwie odróżnia Twój dokument od kilkudziesięciu innych. Jeśli plik w ogóle nie chce się wgrać przez znaki specjalne w nazwie, to problem uploadu, a nie odczytu treści.

Jaki format dat rozpoznaje parser i czy „obecnie” zamiast daty końcowej to problem?

Parsery rozpoznają najczęściej zapisy miesiąc-rok w formie 03.2021, 03/2021, marzec 2021 oraz same lata, a otwarty koniec zatrudnienia obsługują jako pustą datę końcową. Słowa „obecnie”, „nadal” czy „present” są typowym elementem CV i zwykle mapują się na flagę bieżącego stanowiska. Ryzyko rośnie, gdy data stoi w innej komórce tabeli albo w innej kolumnie niż nazwa firmy — wtedy może zostać przypisana do złego wpisu.

Czy parsowanie CV oznacza, że mój dokument ocenia sztuczna inteligencja?

Nie. Parsowanie to ekstrakcja danych i przepisanie ich do pól bazy — nie zawiera oceny, punktacji ani decyzji o odrzuceniu. Ocena, dopasowanie do oferty i scoring to osobna warstwa oprogramowania, często w ogóle nieuruchamiana w mniejszych rekrutacjach. Unijny AI Act traktuje jako systemy wysokiego ryzyka dopiero narzędzia analizujące i filtrujące podania oraz oceniające kandydatów, a nie sam odczyt pliku.

Czy zdjęcie w CV psuje parsowanie?

Samo zdjęcie osadzone w dokumencie tekstowym nie kasuje odczytu reszty treści — parser po prostu je pomija, bo nie zawiera znaków. Problem zaczyna się, gdy grafiką jest treść: dane kontaktowe wpisane w obrazek, ikony zamiast etykiet albo całe CV zapisane jako zdjęcie strony. Dokumentacja Greenhouse wymienia grafiki, zdjęcia i WordArt wśród przyczyn nieudanego parsowania, więc bezpieczniej trzymać informacje w tekście.

Jakie dane parser wyciąga z CV do profilu kandydata?

Standardowy zestaw to imię i nazwisko, adres e-mail, numer telefonu, miasto, nazwy stanowisk, nazwy firm, daty zatrudnienia, wykształcenie i umiejętności. Polski system tomHRM odczytuje imię i nazwisko, adres, miasto, e-mail, telefon oraz adresy profili LinkedIn i Facebook. eRecruiter przy masowym wgrywaniu dokumentów dopasowuje automatycznie dane podstawowe — imię, nazwisko i e-mail — a resztę pól rekruter uzupełnia ręcznie z podglądu dokumentu.

PDF, który parser odczyta bez zgadywania
Kreator ŁatweCV eksportuje CV do PDF z warstwą tekstową i jednym strumieniem treści, więc parser nie musi zgadywać kolejności czytania.
Stwórz CV za darmo
Czytaj także