# 💼 JobFit: AI-Powered Job Matching Platform
**JobFit** is an AI-powered application that helps job seekers find the most suitable job opportunities based on their skills, experience, and preferences. It analyzes resumes, matches them with job descriptions, and offers personalized improvement suggestions.
---
## 🚀 Features
- **Smart Job Matching**: Compares resumes with job listings and suggests the best matches.
- **Resume Analysis**: Extracts key data like skills, education, and work experience.
- **Keyword Optimization**: Highlights missing keywords and provides improvement suggestions.
- **Real-Time Feedback**: Offers tips for enhancing resume content and formatting.
- **Automated Job Recommendations**: Suggests job listings tailored to the user's profile.
- **Multi-Language Support**: Detects and translates resumes for accurate analysis.
- **Recruiter Dashboard**: Enables employers to manage job postings and view matched candidates.
---
## 🛠️ Tech Stack
- **Java 11+**: Core development language.
- **Spring Boot**: Web services and API infrastructure.
- **Apache POI**: Extracts content from
.docx
files. - **PdfBox**: Extracts content from
.pdf
files. - **OpenNLP**: Used for Natural Language Processing.
- **DetectLanguage API**: Identifies document language.
- **Google Cloud Translate**: Translates non-English resumes for analysis.
---
## 📦 Installation
### Prerequisites
- Java 11 or above
- Maven (for dependency management)
### Steps
- **Clone the repository**:
git clone https://github.com/your-username/jobfit.git
- **Navigate to the project directory**:
cd jobfit
- **Install dependencies**:
mvn install
- **Build the application**:
mvn clean package
- **Run the application**:
java -jar target/jobfit-0.1.0-SNAPSHOT.jar
---
## 🧑💻 Usage
### Start the Application
mvn spring-boot:run
The application will be available at http://localhost:8081
.
### Prepare Your Files
- Save your resume as
resume.txt
. - Save the job description as
job.txt
. - Sample files provided:
sample\_resume.txt
sample\_job.txt
### Make an API Request (via cURL)
curl -X POST http://localhost:8081/api/analyze \
- F "resume=@sample_resume.txt" \
- F "jobDescription=@sample_job.txt"
### Sample JSON Response
{
"matchScore": 85.5,
"skillsMatch": ["Java", "Spring Boot", "REST APIs"],
"missingKeywords": ["Docker", "Kubernetes"],
"suggestions": [
"Add experience with containerization tools",
"Include more details about your project management experience"
]
}
---
## 🌐 API Endpoints
### POST /api/analyze
- Purpose: Analyzes the match between a resume and a job description.
- Parameters:
resume
: Path to the resume file.jobDescription
: Path to the job description file.
### GET /api/recommendations
- Purpose: Returns job recommendations based on the match score.
- Parameters:
matchScore
: Threshold score value.
---
## 🤝 Contributing
We welcome your contributions! Follow these steps to contribute:
-
Fork the repository.
-
Choose an issue
-
Create a new branch:
git checkout -b feature-name
- Make your changes and commit:
git commit -am "Add new feature"
- Push your branch:
git push origin feature-name
- Open a pull request.
---
## 📄 License
This project is licensed under the **Apache 2.0 License**. See the LICENSE
file for more information.
---
### 🚀 Get Started Today and Find Your Perfect Job Fit!