CVLens is a Python-based AI CV reader and analyser designed to parse resumes (PDF and DOCX), extract structured information, and generate actionable feedback on CV quality. The project focuses on automating common CV screening and review tasks, making it useful for early-stage recruitment analysis, personal CV improvement, and as a portfolio project demonstrating applied NLP and document processing.
- 📄 Multi-format CV parsing: Supports both PDF and DOCX resumes
- 🧠 NLP-powered analysis: Uses spaCy for text processing and skill extraction
- 🧩 Section detection: Identifies common CV sections (e.g. Experience, Education, Skills)
- 🛠 Skill extraction: Extracts and normalises skills from unstructured text
- ✅ Quality checks: Flags potential CV issues (missing sections, weak structure, etc.)
- 📝 Feedback generation: Produces readable feedback based on analysis results
CVLens/
│
├── main.py # Entry point for running the CV analysis
├── parser.py # Handles PDF and DOCX text extraction
├── section_detector.py # Detects and labels CV sections
├── skills_extractor.py # Extracts skills using NLP and pattern matching
├── quality_checks.py # Performs CV quality and completeness checks
├── feedback_generator.py # Generates human-readable feedback
│
├── data/
│ └── sample_resume.pdf # Example CV for testing
│
└── README.md
- Python 3
- spaCy – Natural Language Processing
- pdfplumber – PDF text extraction
- python-docx – DOCX file handling
- xml.dom.minidom – Structured document handling
- re – Text pattern matching
- os – File system operations
- Clone the repository:
git clone https://github.com/your-username/CVLens.git
cd CVLens- Create and activate a virtual environment (recommended):
python -m venv venv
source venv/bin/activate # macOS/Linux
venv\\Scripts\\activate # Windows- Install dependencies:
pip install pdfplumber python-docx spacy- Download a spaCy language model:
python -m spacy download en_core_web_smPlace a CV file (PDF or DOCX) inside the data/ folder and run:
python main.pyThe script will:
- Parse the CV
- Detect sections
- Extract skills
- Run quality checks
- Generate feedback in the console output
- Analysing your own CV before job applications
- Automating CV pre-screening logic
- Demonstrating NLP, text parsing, and modular Python design
- Extending into a web app or recruitment tool
- Add scoring or ranking system
- Support more CV formats
- Export feedback to a report (PDF/JSON)
- Integrate with a web interface (e.g. Flask or FastAPI)
- Expand skill taxonomy and role-specific analysis
CVLens is a learning and portfolio project and should not be used as a sole decision-making tool for recruitment.
Developed as a Python and Data Science portfolio project.
Feel free to explore, fork, and extend the project.