Introduction to Resume Parser
Purpose
This document provides an overview of the Eightfold Resume Parser, including its features and capabilities.
Overview
The Resume Parser is a tool designed to extract and analyze data from resumes. It aims to provide a comprehensive summary of a candidate's qualifications by identifying and categorizing various aspects of their resume, such as experience, education, skills, and contact information. The parser is a key enabler of a world-class experience in talent management and acquisition.
Why is it needed
Resume parsing is important for efficiently managing and processing large volumes of resumes. It automates the extraction of key information, reducing manual effort and improving the accuracy of data entry.
Eightfold’s Resume Parser
The Eightfold Resume Parser is powered by top LLMs that have been rigorously tested and selected. This system supports seamless upgrades and self-hosted solutions. Key aspects of the parser include:
- Ensuring high accuracy and efficiency
- Providing ultra-low latency without compromising quality
- Enhanced by parsing millions of resumes
- Support for optimized performance across multiple languages
Key features
-
Invalid resume detection: Automatically detects and excludes invalid resumes from parsing
-
Basic resume validation:
- Language support - whether the detected language is supported by the header classifier
- Content structure - whether the resume has multiple sections or sufficient font information
- Text extraction - whether meaningful text data can be extracted
-
LLM-based resume validation:
- Length thresholds - very short resumes (≤five words) are rejected immediately
- Gibberish detection - checks if the text contains meaningful content
- LLM content validation - uses language models to assess resume quality and authenticity
- Cache checking - avoids re-validating previously processed resumes
-
Additional validation:
- Language allowlist - checking if the resume language is supported
- Resume length - minimum length requirements (100 characters)
- Page count - rejecting documents with too many pages (>six pages with images)
- File format - ensuring the document is a valid PDF/resume format
-
Basic resume validation:
-
Cover letter detection: Identifies and excludes cover letters from the parsing process.
- The system uses a pattern-based approach with language-specific vocabularies for detecting opening and closing phrases of a cover letter.
- These phrases are compiled into regex patterns that look for specific opening and closing phrases at the beginning of text lines.
- The system analyzes documents page by page:
- Opening phrases are searched in the first 15 text font information (TFI) objects of each page
- Closing phrases are searched in the last 10 TFI objects of each page
- The thresholds (15 for opening, 10 for closing) are specifically tuned based on real-world data analysis
- When a cover letter is detected, the system removes pages with the cover letter (including the case where all pages are cover letter)
- The system handles cover letters that span multiple pages:
- If one page has opening phrases and the next page has closing phrases, both pages are removed
- This handles scenarios where cover letters are split across pages
-
Standardization of education background: Utilizes a proprietary system to standardize global education data.
- The system maps degrees to standardized education levels:
- Doctorate
- Masters
- Bachelors
- Associates and other levels
- Extracts the school / university name from the resume
- Extracts the specialization from the resume
- Extracts the start date and the end date from the resume and stores in a uniform format
- Example:
- The system maps degrees to standardized education levels:
{
'school': 'Stanford University', # Canonical school name
'degree': 'Master of Science', # Standardized degree name
'major': 'Computer Science', # Extracted specialization
'start_date': '2018-09', # Uniform date format
'end_date': '2020-06', # Uniform date format
'time': ['2018-09', '2020-06'] # Array format for compatibility
}
Smart PDF text extraction: Applies multiple extractors and OCR technology for accurate text extraction.
Smart contacts handling: Includes heuristics to detect and handle reference contact details.
-
Handling special characters: Custom logic to fix issues with special characters in PDFs.
- Ligature handling: The system handles typographic ligatures that can be incorrectly extracted from PDFs. Ligatures are special characters that combine multiple letters into single glyphs. Ligatures are replaced with constituent letters.
- Zero-width character removal: The system removes invisible Unicode characters that can interfere with text processing.
- CID font handling: The system filters out CID (Character Identifier) font artifacts that can appear in PDF text extraction.
- Font encoding support: The system handles various PDF font encodings, including, Custom CMap processing, WinAnsiEncoding, MacRomanEncoding & Latin-1 fallback.
- CJK character handling: There’s special processing for CJK languages such as proper handling of full-width spaces and punctuation, custom separators for Japanese text and special merging logic for CJK character sequences.
- Shadow effect and duplicate character handling: The system addresses font rendering issues that cause character duplication.
- Language specific processing: The system supports multilingual character handling including language detection, defaulting to English ligature mappings when language-specific mappings are unavailable, and automatic detection of character encodings in extracted text.
Smart skill extraction: Extracts skills explicitly mentioned in the resume and infers additional skills using AI based on Eightfold Skills Design.
Resume masking: Masks personally identifiable information to remove bias in the application process. Supported entities include Name, Location, Email address, Photo, Phone, URLs, Gender, Marital Status, and University Name.
Section identification: Divides the resume into multiple sections based on ML classification, font information, and resume layout processing.
-
Hallucination detection: The system implements a comprehensive hallucination detection mechanism primarily through a validator class, which validates LLM-generated entities against the original resume text to identify fabricated or inaccurate information. This includes:
- Check word presence in resume text and calculate matching percentage
- Fuzzy matching for minor spelling corrections or variations
- Language specific validation
- Contextual validation
Supported Languages
- English
- German
- Spanish
- French
- Italian
- Dutch
- Portuguese
- Chinese
- Japanese
- Korean
Other languages: Russian, Turkish, Indonesian, Malay, Swedish, Thai, Polish, Romanian, Catalan, Lithuanian, Slovenian, Ukrainian, Latvian, Estonian, Czech, Croatian, Bulgarian, Slovak, Danish, Norwegian, Greek, Hungarian, Finnish
Note: Resume parsing isn’t supported for any Right-to-left (RTL) languages such as: Arabic, Hebrew, and others.