An intelligent resume-to-job matching system powered by AI
Resume Scanner is a comprehensive platform that connects job seekers and recruiters through AI-powered resume matching. The system automatically analyzes resumes and job descriptions, extracting skills and determining compatibility using advanced natural language processing techniques.
- AI-Powered Matching: Automatically match resumes to job descriptions with ML-based similarity scoring
- Smart Skill Extraction: Extract skills from PDF resumes even with different formats
- Tech Skill Synonyms: Recognize variations and misspellings of technical terms (e.g., "js" β "javascript")
- Multi-User Roles: Support for job seekers, recruiters, and administrators
- Real-time Notifications: Keep users informed about application status changes
- In-App Messaging: Built-in communication between applicants and recruiters
- Resume Management: Upload and manage multiple resumes
- Dashboard Analytics: View application statistics and manage job listings
βββββββββββββββ βββββββββββββββ ββββββββββββββββββ
β β β β β β
β React βββββββΊβ Spring βββββββΊβ Python β
β Frontend β β Backend β β ML Service β
β β β β β β
βββββββββββββββ βββββββββββββββ ββββββββββββββββββ
β² β² β²
β β β
βΌ βΌ βΌ
βββββββββββββββ βββββββββββββββ ββββββββββββββββββ
β UI/UX β β Database β β NLP Model β
β Components β β PostgreSQL β β Embeddings β
βββββββββββββββ βββββββββββββββ ββββββββββββββββββ
- Java 17+
- Node.js 16+
- Python 3.8+
- Maven
- PostgreSQL database
git clone https://github.com/yourusername/resume-scanner.git
cd resume-scannercd resume-scanner
mvn clean install
mvn spring-boot:runcd ../front
npm install
npm run devcd ../model
pip install -r requirements.txt
python api.py- Create an account and complete your profile
- Upload your resume(s)
- Browse available jobs
- Apply with one click - our AI will match your resume to the job requirements
- Track application status and communicate with recruiters
- Post job listings with detailed descriptions and required skills
- Review applications automatically sorted by match percentage
- Use the dashboard to manage applications and communicate with candidates
- Track hiring metrics and optimize job listings
Our system uses advanced NLP techniques to match resumes to job descriptions:
- Skill Extraction: We parse PDF resumes to identify skills sections and extract key technical competencies
- Synonym Normalization: Technical terms are normalized (e.g., "ReactJS" β "React")
- Embedding Generation: Both resume content and job descriptions are converted to vector embeddings
- Similarity Calculation: We compute both direct skill matching and semantic similarity scores
- Match Decision: Applications that meet the threshold score are automatically forwarded to recruiters
- Spring Boot
- Spring Security
- Spring Data JPA
- Apache PDFBox (PDF processing)
- RESTful API architecture
- React with TypeScript
- Vite build tool
- Modern UI components
- Responsive design
- Flask API
- Sentence Transformers
- scikit-learn
- pandas for data processing
- Natural Language Processing
| Endpoint | Method | Description |
|---|---|---|
/api/auth/register |
POST | Register new user |
/api/auth/login |
POST | Authenticate user |
/api/jobs |
GET | List available jobs |
/api/jobs |
POST | Create new job listing |
/api/applications |
POST | Submit job application |
/api/match |
POST | ML service endpoint for resume-job matching |
resume-scanner/
βββ resume-scanner/ # Spring Boot Backend
β βββ src/
β β βββ main/
β β β βββ java/ # Java source code
β β β βββ resources/ # Configuration files
β β βββ test/ # Unit tests
β βββ pom.xml # Maven configuration
βββ front/ # React Frontend
β βββ src/
β β βββ components/ # UI components
β β βββ pages/ # Page components
β β βββ services/ # API services
β βββ package.json # NPM configuration
βββ model/ # Python ML Service
β βββ api.py # Flask API
β βββ requirements.txt # Python dependencies
βββ README.md # This documentation
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Sentence Transformers library for NLP capabilities
- Spring Boot framework for backend development
- React community for frontend components
- All contributors who have helped shape this project