ResumeParser is a web-based application that simplifies and automates the resume screening process using Natural Language Processing (NLP) and AI-powered analytics. Designed for recruiters, placement teams, and HR departments, the system extracts structured information from unstructured PDF resumes and delivers a detailed candidate profile with ATS (Applicant Tracking System) scoring, keyword matching, and skill distribution insights.
The application is built using a modular layered architecture, split across:
index.html<iframe>
app.pyuploads/ directorypdfminer.pdf input resumes from users| Feature | Description |
|---|---|
| Multi-Resume Upload | Upload multiple PDFs at once |
| Text Extraction | Extracts resume text using pdfminer |
| NLP Processing | spaCy used to detect names, skills, and other key phrases |
| Skill Tagging | Displays skills as visual badges |
| ATS Score | Calculates compatibility score using job requirement weights |
| Detailed Modal View | Shows education, experience, certifications, and projects in a modal |
| Word Cloud | Generated using d3-cloud, shows keyword frequency |
| Skill Distribution | Doughnut chart showing tech vs soft vs certifications |
| Resume Preview | View original PDF in-browser |
| Profile Completeness | Calculates how much of the candidate's profile is filled (out of 100%) |
| Layer | Technologies Used |
|---|---|
| Frontend | HTML, CSS, JS, Bootstrap, Chart.js, D3.js |
| Backend | Flask, Python, spaCy, PDFMiner |
| NLP Model | en_core_web_sm |
| Libraries | re, os, collections, json, werkzeug, pdfminer.six |
User Uploads Resumes
.pdf files are uploaded to Flask serverText Extraction
extract_text_from_pdf() reads content using pdfminerInformation Extraction
extract_name(), extract_emails(), extract_phone_number()ATS Scoring
calculate_ats_score() with feedbackDetailed Analysis
generate_word_cloud_data()calculate_skill_distribution()Visualization
| Section | Max Score | Scoring Logic |
|---|---|---|
| Education | 10 | Based on presence of Bachelor's, Master's, etc. |
| Experience | 25 | Based on number of experience lines |
| Technical Skills | 30 | 3 points per matched keyword (max capped) |
| Soft Skills | 15 | 3 points per keyword |
| Certifications | 10 | 5 points each |
| Formatting | 10 | Based on structure, capitalization |
| Total | 100 |
spaCy en_core_web_smpdfminer.six![OPTIRECU Image[30].jpg](https://app-cdn.readytensor.ai/publications/7cTlbSs1zp7s/files/YuB2x2zX5C8YnC4L59v6w/OPTIRECU%20Image%5B30%5D.jpg?versionId=Cx1OgSnDQerjdn5yzHkPOnyff2pqm_Hi&Expires=1790500273&Key-Pair-Id=K3EVG0QTJR4SK0&Signature=WSTnyAH6UQfgudovkGVc-iiNSanvFsFd~PufLuPQUIdYFjk-M45jggdUXGfDSCHdInp0byroo~2KC6VTTZP3GO2Si9xTYJxxu4k6pBDCQD7s-zx35PwgrdtbwHBSHlEA3I8A-z~e9Ia0NGXRxvGdyrcXk7D3rI-cbrgOpU3NJQOzDpwRYsK2~bmhrPHvLFIBCOeJc20V9MA9AqHUTzyttwOTpYPx5fM0JUqg5DuWbBihEeeAkfGSy-f6lbVyCnXTi3VftNTt3QAPEjUnXd-ERGFNcektE7uNs5Q1eo51kdjNd4TaO81qbZWnGo6KbnPh6Lb24x46QFHdAo1MmAAwOg__)

This project is for educational and academic purposes.
Β© 2024 Akshay Karthick β Final Year CSE Project