An intelligent resume analysis and candidate ranking system with advanced fraud detection capabilities. This application helps HR professionals efficiently sort, analyze, and rank candidates while detecting sophisticated resume manipulation techniques.
- AI-Powered Analysis: Detects ATS gaming techniques and resume manipulation
- White Font Detection: Identifies hidden text and invisible character manipulation
- Keyword Stuffing Detection: Flags excessive keyword repetition patterns
- PDF Content Stream Analysis: Binary-level analysis for sophisticated fraud detection
- Risk Scoring: Comprehensive fraud risk assessment with actionable recommendations
- Multi-Factor Ranking: Experience, skills, quality, and recency-based sorting
- Smart Ranking Algorithms: Intelligent composite scoring system
- Visual Ranking Interface: Easy-to-use ranking controls with position indicators
- Flexible Sorting Options: Both smart ranking and simple sorting modes
- Comprehensive Resume Parsing: Extracts structured data from resumes
- Skill Assessment: Advanced skill matching and depth analysis
- Interview Question Generation: AI-generated relevant interview questions
- Market Positioning: Salary estimates and cultural fit indicators
- Candidate Spreadsheet: Interactive table with advanced filtering
- Upload Management: Drag-and-drop resume upload with progress tracking
- Real-time Statistics: Dashboard with candidate metrics and insights
- Export Capabilities: Download candidate data and analysis results
- Modern UI: Clean, responsive interface built with React
- TypeScript: Type-safe development with enhanced IDE support
- Component-Based: Modular architecture for maintainability
- Real-time Updates: Live data synchronization
- RESTful API: Clean API design with comprehensive endpoints
- AI Integration: OpenAI GPT integration for intelligent analysis
- PDF Processing: Advanced PDF parsing with multiple libraries
- SQLite Database: Efficient local data storage
- Multi-Vector Analysis: 6 different fraud detection methods
- Traditional + AI: Combines rule-based and AI-powered detection
- Configurable Thresholds: Adjustable sensitivity settings
- Detailed Reporting: Comprehensive fraud analysis reports
- Python 3.8+
- Node.js 16+
- OpenAI API Key
-
Clone the repository
git clone https://github.com/yourusername/Resume-Sorting.git cd Resume-Sorting
-
Backend Setup
cd backend python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt
-
Environment Configuration
# Create .env file in backend directory echo "OPENAI_API_KEY=your_openai_api_key_here" > .env
-
Frontend Setup
cd ../app npm install
-
Start Backend Server
cd backend python app.py
Backend runs on
http://localhost:5000
-
Start Frontend Development Server
cd app npm start
Frontend runs on
http://localhost:3000
- Drag and drop PDF resumes or click to browse
- Automatic parsing and analysis begins immediately
- Real-time progress tracking and status updates
- Use the Smart Ranking controls at the top of the candidate list
- Choose from ranking criteria:
- π Best Overall: Comprehensive scoring algorithm
- π¨βπΌ Most Experienced: Years of experience + project count
- π οΈ Most Skilled: Technical skills and certifications
- β Highest Quality: Base score with fraud risk penalty
- π Most Recent: Recently uploaded candidates first
- Automatic fraud analysis for all uploaded resumes
- Risk levels: Low, Medium, High
- Detailed fraud indicators and recommendations
- Manual review suggestions for suspicious resumes
- Click on any candidate to view detailed analysis
- Comprehensive skill breakdown and experience summary
- AI-generated interview questions
- Market positioning and salary estimates
The fraud detection system can be configured in backend/fraud_detector.py
:
# Adjust detection sensitivity
KEYWORD_STUFFING_THRESHOLD = 0.02 # 2% frequency threshold
WHITE_TEXT_THRESHOLD = 0.05 # 5% suspicious elements
TINY_FONT_SIZE = 3 # Minimum font size in points
Configure AI analysis in backend/ai_analyzer.py
:
MODEL = "gpt-3.5-turbo" # AI model selection
MAX_TOKENS = 1800 # Response length limit
TEMPERATURE = 0.1 # Response consistency
-
White Text Analysis
- PDF color metadata analysis
- Text positioning anomaly detection
- Background/text color similarity checks
- Tiny font detection (< 3pt)
-
Keyword Stuffing Detection
- Repetition pattern analysis
- Skill frequency analysis
- Common ATS keyword identification
-
PDF Content Stream Analysis
- Binary-level PDF analysis
- White font command detection
- Invisible text rendering modes
- Off-page text positioning
-
Content Authenticity
- Experience vs. skills ratio analysis
- Readability scoring
- Unrealistic claims detection
-
Invisible Characters
- Zero-width character detection
- Excessive whitespace patterns
- Unicode manipulation detection
-
Formatting Analysis
- Font size distribution analysis
- Color usage patterns
- Structural anomaly detection
POST /api/upload-resume
- Upload and analyze resumeGET /api/resumes
- List all candidatesGET /api/resume/{id}
- Get specific candidate detailsDELETE /api/resume/{id}
- Delete candidate
POST /api/search
- Intelligent candidate searchGET /api/stats
- Application statisticsPOST /api/compare
- Compare multiple candidates
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI for GPT API integration
- React Community for excellent frontend framework
- Flask Community for lightweight backend framework
- PDF Processing Libraries: pdfplumber, PyPDF2, pymupdf
For support, email ishan.pathak2711@gmail.com or create an issue on GitHub.
Built with β€οΈ for better hiring processes