Resume Parser Playground
This playground showcases the LinkResume parser and its ability to parse information from a resume PDF. Upload a PDF below to test how well ATS systems can read your resume.
Browse a PDF file or drop it here
File data is used locally and never leaves your browser
Resume Parser Algorithm Deep Dive
For the technically curious — this section walks through the 4 steps of the parser algorithm. Designed for single-column, English-language resumes.
Step 1. Read the text items from a PDF file
The parser uses Mozilla's open-source pdf.js library to extract all text items from the PDF. Each item includes its text content plus metadata: x/y position (relative to bottom-left origin), font boldness, width, and whether it starts a new line.
Step 2. Group text items into lines
Adjacent items on the same line are merged when the gap between them is smaller than the average character width. All items are then grouped into lines ordered by y-position (top to bottom of the page).
Step 3. Group lines into sections
A line is a section title if it is the only item on the line, is bolded, and is fully uppercase — this is the main heuristic. A fallback uses keyword matching against common resume section names like EDUCATION, SKILLS, EXPERIENCE.
Step 4. Extract resume attributes from sections
A feature scoring system assigns scores to text items for each attribute (name, email, phone, etc.) using custom regex and heuristics. The highest-scored item per attribute wins. Sections with multiple entries (Work Experience, Education) are first split into subsections by detecting larger-than-average vertical gaps between lines.