Skip to content

FUHEKl/resume-scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“„ Resume Scanner

An intelligent resume-to-job matching system powered by AI

Spring Boot React TypeScript Python NLP

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.

🌟 Features

  • 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

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚             β”‚      β”‚             β”‚      β”‚                β”‚
β”‚  React      │◄────►│  Spring     │◄────►│  Python        β”‚
β”‚  Frontend   β”‚      β”‚  Backend    β”‚      β”‚  ML Service    β”‚
β”‚             β”‚      β”‚             β”‚      β”‚                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      β–²                     β–²                     β–²
      β”‚                     β”‚                     β”‚
      β–Ό                     β–Ό                     β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  UI/UX      β”‚      β”‚  Database   β”‚      β”‚  NLP Model     β”‚
β”‚  Components β”‚      β”‚  PostgreSQL β”‚      β”‚  Embeddings    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Getting Started

Prerequisites

  • Java 17+
  • Node.js 16+
  • Python 3.8+
  • Maven
  • PostgreSQL database

Installation

1. Clone the repository

git clone https://github.com/yourusername/resume-scanner.git
cd resume-scanner

2. Set up the Spring Boot backend

cd resume-scanner
mvn clean install
mvn spring-boot:run

3. Set up the React frontend

cd ../front
npm install
npm run dev

4. Set up the Python ML service

cd ../model
pip install -r requirements.txt
python api.py

πŸ’» Usage

For Job Seekers

  1. Create an account and complete your profile
  2. Upload your resume(s)
  3. Browse available jobs
  4. Apply with one click - our AI will match your resume to the job requirements
  5. Track application status and communicate with recruiters

For Recruiters

  1. Post job listings with detailed descriptions and required skills
  2. Review applications automatically sorted by match percentage
  3. Use the dashboard to manage applications and communicate with candidates
  4. Track hiring metrics and optimize job listings

🧠 How the Matching Works

Our system uses advanced NLP techniques to match resumes to job descriptions:

  1. Skill Extraction: We parse PDF resumes to identify skills sections and extract key technical competencies
  2. Synonym Normalization: Technical terms are normalized (e.g., "ReactJS" β†’ "React")
  3. Embedding Generation: Both resume content and job descriptions are converted to vector embeddings
  4. Similarity Calculation: We compute both direct skill matching and semantic similarity scores
  5. Match Decision: Applications that meet the threshold score are automatically forwarded to recruiters

πŸ”§ Technologies Used

Backend

  • Spring Boot
  • Spring Security
  • Spring Data JPA
  • Apache PDFBox (PDF processing)
  • RESTful API architecture

Frontend

  • React with TypeScript
  • Vite build tool
  • Modern UI components
  • Responsive design

ML Service

  • Flask API
  • Sentence Transformers
  • scikit-learn
  • pandas for data processing
  • Natural Language Processing

πŸ“š API Documentation

Key Endpoints

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

πŸ› οΈ Development

Project Structure

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

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ™ Acknowledgements

  • 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors