Skip to content

CVNalys is an AI-powered CV analysis tool that provides instant, professional insights and rewriting suggestions to help job seekers optimize their resumes for maximum impact.

License

Notifications You must be signed in to change notification settings

techminope/CVNalys

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CVNalys 🚀

CVNalys Logo AI Powered License

Professional CV Analysis Tool Powered by AI

Python Flask Tailwind CSS OpenAI

CVNalys is a modern, high-converting web application that helps users analyze their CVs using advanced AI technology. Upload your CV and receive professional insights, skill analysis, and actionable recommendations to make your resume stand out.

✨ Features

🚀 Core Features 📱 User Experience 🔒 Security & Privacy
AI-Powered Analysis Mobile Responsive Design No Data Storage
Multi-Format Support Touch Gestures Secure File Processing
Instant Results Beautiful UI/UX Privacy First
Skill Analysis No Login Required CORS Enabled

Key Capabilities

  • AI-Powered Analysis: Advanced machine learning algorithms provide deep insights
  • Multi-Format Support: PDF, DOCX, DOC, TXT, RTF files supported
  • Instant Results: Get comprehensive analysis in seconds
  • Privacy First: Your CV is never stored on our servers
  • No Login Required: Start analyzing immediately
  • Mobile Responsive: Beautiful UI that works on all devices
  • Touch Gestures: Hammer.js integration for mobile interactions

🛠️ Tech Stack

🖥️ Backend Technologies

Python Flask OpenAI

🎨 Frontend Technologies

HTML5 CSS3 Tailwind CSS JavaScript

📁 File Processing

PDF DOCX TXT

Core Components

Category Technology Purpose
Backend Framework Flask Lightweight web framework for API endpoints
AI Integration OpenAI GPT-4 Advanced CV analysis and rewriting
File Processing PyPDF2, python-docx Multi-format document text extraction
Frontend Styling Tailwind CSS Utility-first CSS framework for modern UI
Touch Support Hammer.js Mobile gesture recognition
Icons Font Awesome Professional icon library
Typography Google Fonts (Inter) Modern, readable font system

🚀 Quick Start

Quick Start

Prerequisites

  • Python 3.11 or higher
  • pip package manager
  • OpenAI API key (optional, for AI analysis)

🛠️ Installation Steps

Step 1: Clone the Repository
git clone https://github.com/OpenAI4Africa/CVNalys.git
cd cvnalys
Step 2: Set Up Virtual Environment
# Create virtual environment
python3 -m venv venv

# Activate virtual environment
source venv/bin/activate          # On macOS/Linux
# OR
venv\Scripts\activate             # On Windows
Step 3: Install Dependencies
pip install -r requirements.txt
Step 4: Configure Environment
# Copy environment template
cp env.example .env

# Edit .env file with your settings
nano .env  # or use your preferred editor
Step 5: Launch Application
python run.py

Open your browser and navigate to: http://localhost:8000

🔧 Configuration

Configuration

Environment Variables

Create a .env file in the root directory with the following configuration:

# 🔑 Required Settings
SECRET_KEY=your-super-secret-key-here

# 🤖 Optional - OpenAI API for AI analysis
OPENAI_API_KEY=your-openai-api-key-here

# 📁 Optional - File upload settings
MAX_FILE_SIZE=16777216  # 16MB in bytes

OpenAI API Setup (Optional)

Step Action Result
1️⃣ Get API key from OpenAI Platform Access to GPT-4 models
2️⃣ Add key to .env file AI analysis automatically enabled
3️⃣ Restart application Enhanced CV insights available

💡 Pro Tip: The application works without an OpenAI API key, but AI-powered analysis and CV rewriting features will be limited.

📁 Project Structure

Project Structure

cvnalys/
├── 🚀 app/                          # Main application package
│   ├── __init__.py                  # Flask app factory & configuration
│   ├── routes.py                    # API endpoints & request handling
│   ├── 🔧 services/
│   │   └── cv_analyzer.py          # AI-powered CV analysis service
│   ├── 🛠️ utils/
│   │   ├── file_processor.py       # Multi-format file processing
│   │   └── report_generator.py     # PDF/TXT report generation
│   ├── 🎨 static/
│   │   ├── css/
│   │   │   └── style.css           # Professional Tailwind CSS styles
│   │   ├── js/
│   │   │   └── app.js              # Interactive JavaScript application
│   │   └── images/                 # SISU AI branding assets
│   └── 📄 templates/
│       └── index.html              # Main application interface
├── 📁 uploads/                      # Temporary file storage (auto-created)
├── 🐍 venv/                        # Python virtual environment
├── 📦 requirements.txt              # Python dependencies
├── 🚀 run.py                       # Application entry point
├── ⚙️ env.example                  # Environment variables template
├── 📖 README.md                    # This documentation
└── 📄 LICENSE                      # Apache 2.0 License

Architecture Overview

Layer Purpose Key Files
🌐 Web Interface User interaction & file upload templates/index.html, static/js/app.js
🔌 API Layer Request handling & routing routes.py
🧠 Business Logic CV analysis & AI processing services/cv_analyzer.py
📁 Data Processing File handling & reports utils/file_processor.py, utils/report_generator.py
🎨 Presentation Styling & responsive design static/css/style.css

🎯 Usage

Usage Guide

Basic CV Analysis Workflow

Step Action Result
1️⃣ Upload CV Drag & drop or click to select your CV file
2️⃣ Automatic Processing System extracts text and analyzes content
3️⃣ View Results Comprehensive analysis with actionable insights

Analysis Results Include

  • 📊 CV Score (0-100): Professional assessment with visual progress indicator
  • 📝 Word Count & Structure: Detailed text analysis and formatting insights
  • 🛠️ Skills Identification: Categorized technical and soft skills detection
  • 💡 Actionable Recommendations: Specific improvement suggestions
  • 🤖 AI-Powered Insights: Advanced analysis using OpenAI GPT-4 (with API key)

Supported File Types

Format Extension Description Best Quality
PDF .pdf Portable Document Format High-quality scans
Word .docx, .doc Microsoft Word documents Modern Word format
Text .txt Plain text documents UTF-8 encoding
RTF .rtf Rich Text Format Formatted text

File Requirements

  • 📏 Maximum Size: 16MB per file
  • 🔤 Encoding: UTF-8 recommended for text files
  • 🎯 Quality: Higher quality PDFs provide better text extraction
  • 🔄 Processing: Files are processed in memory and never stored

🔒 Security & Privacy

Security Privacy

Security Features

Feature Description Benefit
🔒 No Data Storage CVs processed in memory, never saved to disk Complete privacy protection
✅ Secure Uploads File validation, sanitization, and type checking Protection against malicious files
🌐 CORS Enabled Cross-origin resource sharing for API access Flexible deployment options
🔐 Environment Variables Sensitive data stored in secure .env files Secure configuration management

What We Don't Do

  • ❌ Store your CV files on our servers
  • ❌ Track your personal information
  • ❌ Share your data with third parties
  • ❌ Require account creation or login

What We Do

  • ✅ Process files securely in memory
  • ✅ Provide immediate analysis results
  • ✅ Generate downloadable reports
  • ✅ Maintain complete user privacy

🧪 Development

Development Contributing

Testing & Quality Assurance

# Install development dependencies
pip install pytest black flake8

# 🧪 Run tests
pytest

# 🎨 Code formatting
black app/

# 🔍 Linting
flake8 app/

Code Style Guidelines

  • 🐍 PEP 8 Compliance: Follow Python style guide standards
  • 🔍 Type Hints: Use type annotations where appropriate
  • 📚 Documentation: Document all functions and classes
  • ⚡ Function Design: Keep functions small, focused, and efficient

Adding New Features

Step Action Tools
1️⃣ Create feature branch git checkout -b feature/new-feature
2️⃣ Implement functionality Your preferred editor
3️⃣ Add tests pytest
4️⃣ Update documentation README.md, docstrings
5️⃣ Submit pull request GitHub PR workflow

Development Setup

# Clone and setup
git clone https://github.com/OpenAI4Africa/CVNalys.git
cd cvnalys

# Create virtual environment
python3 -m venv venv
source venv/bin/activate

# Install development dependencies
pip install -r requirements.txt
pip install pytest black flake8

# Run development server
python run.py

🚀 Deployment

Deployment Cloud Ready

Production Considerations

Aspect Requirement Implementation
🔐 Environment Variables Secure SECRET_KEY Use strong, unique keys
📁 File Upload Limits Appropriate size limits Configure MAX_CONTENT_LENGTH
🌐 CORS Settings Domain restrictions Limit to necessary origins
📊 Error Handling Proper logging & monitoring Implement structured logging
🛡️ Security Headers Security middleware Add security headers

Deployment Options

Platform Difficulty Best For Setup Time
Heroku Easy Quick prototypes 5 minutes
Docker Medium Scalable deployments 15 minutes
AWS Advanced Enterprise solutions 30 minutes
VPS Medium Full control 20 minutes

Quick Deployment Checklist

  • ✅ Environment variables configured
  • ✅ Dependencies installed
  • ✅ File permissions set correctly
  • ✅ CORS settings configured
  • ✅ Security headers implemented
  • ✅ Error logging enabled
  • ✅ Health check endpoint working

🤝 Contributing

Contributing Open Source

We Welcome Contributions!

CVNalys is an open-source project and we'd love your help to make it even better. Whether you're a developer, designer, or just passionate about AI and CV analysis, there are many ways to contribute.

Contribution Guidelines

Step Action Details
1️⃣ Fork the repository Click the Fork button on GitHub
2️⃣ Create a feature branch git checkout -b feature/amazing-feature
3️⃣ Make your changes Code, test, and document
4️⃣ Add tests Ensure your changes work correctly
5️⃣ Submit a pull request Create a detailed PR description

Areas We'd Love Help With

  • 🚀 New Features: CV templates, industry-specific analysis
  • 🐛 Bug Fixes: Identify and fix issues
  • 📚 Documentation: Improve guides and examples
  • 🎨 UI/UX: Enhance the user interface
  • 🌍 Localization: Add support for more languages
  • 🧪 Testing: Improve test coverage

Getting Started

  1. Star this repository if you find it useful
  2. Fork the project to your GitHub account
  3. Clone your fork locally
  4. Create a new branch for your changes
  5. Make your improvements
  6. Test everything works
  7. Submit a pull request

Need Help?

  • 💬 Discussions: Start a discussion in GitHub Discussions
  • 🐛 Issues: Report bugs or request features
  • 📧 Email: Contact us at [email protected]

📄 License

License Open Source

This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for complete details.

License Summary

  • Commercial Use: Allowed
  • Modification: Allowed
  • Distribution: Allowed
  • Patent Use: Allowed
  • Private Use: Allowed

License Requirements

  • 📝 License and Copyright Notice: Must be included
  • ⚠️ State Changes: Must be documented
  • 📄 Apache License: Must be included in any distribution

For the complete license text, please see the LICENSE file in this repository.

🙏 Acknowledgments

Acknowledgments

Open Source Technologies

Technology Purpose Website
OpenAI AI analysis capabilities openai.com
Flask Web framework flask.palletsprojects.com
Tailwind CSS Beautiful UI components tailwindcss.com
Font Awesome Professional icons fontawesome.com
Hammer.js Mobile touch support hammerjs.github.io

Inspiration

This project was inspired by the need to democratize AI-powered CV analysis and make professional career development tools accessible to everyone, especially in emerging markets.


🌟 Powered By

SISU AI OpenAI4Africa

SISU AI & OpenAI4Africa

📞 Support

Support Community

Getting Help

Channel Best For Response Time
🐛 GitHub Issues Bug reports & feature requests 24-48 hours
💬 GitHub Discussions General questions & community chat 12-24 hours
📧 Email Support Complex issues & partnerships 24-72 hours

Contact Information

OpenAI4Africa Team

SISU AI Team

Before You Ask

  1. 📖 Check the documentation - Your answer might be here
  2. 🔍 Search existing issues - Someone might have asked already
  3. 📝 Provide details - Include error messages, steps to reproduce
  4. 💻 Share your environment - OS, Python version, etc.

Community Guidelines

  • ☑️ Be respectful and inclusive
  • ☑️ Help others when you can
  • ☑️ Share your experiences and use cases
  • ☑️ Report bugs and suggest improvements

🔮 Roadmap

Roadmap Coming Soon

Planned Features

Category Feature Status
📄 Templates Advanced CV templates 🔄 Planning
🏭 Industry Industry-specific analysis 🔄 Planning
📊 ATS ATS optimization scoring 🔄 Planning
🔍 Comparison Resume comparison tools 🔄 Planning
📤 Export Export to multiple formats 🔄 Planning
👥 Collaboration Team collaboration features 🔄 Planning

Short Term Goals

  • ✅ Core CV analysis functionality
  • ✅ AI-powered insights
  • ✅ Multi-format file support
  • ✅ Professional UI/UX design
  • 🔄 Performance optimizations
  • 🔄 Enhanced error handling

Medium Term Goals

  • 📄 Advanced CV templates
  • 🏭 Industry-specific analysis
  • 📊 ATS optimization scoring
  • 🔍 Resume comparison tools
  • 📱 Progressive Web App (PWA)
  • 🌍 Multi-language support

Long Term Vision

  • 📤 Export to multiple formats
  • 👥 Team collaboration features
  • 📊 Advanced analytics dashboard
  • 🔗 API for third-party integrations
  • 🎓 Learning management system
  • 🌐 Global deployment optimization

Have Ideas?

We'd love to hear your feature requests! Please:

  • 🐛 Create an issue with the enhancement label
  • 💬 Start a discussion in GitHub Discussions
  • 📧 Email us at [email protected]

🚀 Ready to Transform Your CV?

Get Started

Made with ❤️ by the CVNalys Team

Transform your CV analysis experience with AI-powered insights!


🌟 Star This Repository

If CVNalys helps you, please consider giving us a ⭐ star on GitHub!

GitHub stars

About

CVNalys is an AI-powered CV analysis tool that provides instant, professional insights and rewriting suggestions to help job seekers optimize their resumes for maximum impact.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 33.9%
  • JavaScript 31.1%
  • Python 18.5%
  • CSS 16.5%