https://github.com/hxndev/ai-job-match-analyzer
Job Match Analyzer is an AI-powered tool that empowers job seekers to optimize their job applications by analyzing resume-job fit and generating tailored cover letters.
https://github.com/hxndev/ai-job-match-analyzer
ai chatgpt cover-letter cv gemini gemini-ai gemini-api google job job-search jobseeker open-source openai pdf resume
Last synced: 4 months ago
JSON representation
Job Match Analyzer is an AI-powered tool that empowers job seekers to optimize their job applications by analyzing resume-job fit and generating tailored cover letters.
- Host: GitHub
- URL: https://github.com/hxndev/ai-job-match-analyzer
- Owner: HxnDev
- License: mit
- Created: 2025-02-20T19:13:54.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-02-23T09:43:48.000Z (4 months ago)
- Last Synced: 2025-03-03T16:16:25.609Z (4 months ago)
- Topics: ai, chatgpt, cover-letter, cv, gemini, gemini-ai, gemini-api, google, job, job-search, jobseeker, open-source, openai, pdf, resume
- Language: Python
- Homepage:
- Size: 3.77 MB
- Stars: 4
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AI Job Match Analyzer
A powerful open-source tool that helps job seekers analyze their resumes against job descriptions and generate AI-powered cover letters. Built with React and Flask, it leverages Google's Gemini AI for intelligent analysis and runs completely locally.
## Features
- 📄 Resume Analysis: Upload PDF/TXT files or paste resume text directly
- 🔗 Multiple Job Links: Analyze your resume against multiple job postings simultaneously
- 🎯 Smart Matching: AI-powered skill matching and gap analysis
- ✍️ Cover Letters: Generate tailored cover letters for each job
- 📊 Resume Feedback: Get comprehensive suggestions to improve your resume
- 🔒 Privacy-First: Runs locally, your data stays on your machine
- 💰 Cost-Effective: Uses Gemini AI (free tier available)## Tech Stack
### Frontend
- React 18.2
- Mantine UI 6.0.22 (for components and styling)
- Vite (for development and building)
- Axios (for API calls)
- ESLint & Prettier (for code quality)### Backend
- Flask 2.2.5
- Google Generative AI (Gemini)
- PyPDF2 (for PDF processing)
- Beautiful Soup 4 (for web scraping)
- Ruff (for code quality)## Demo Video

## Project Structure
### Frontend Structure
```
frontend/
├── public/
│ ├── favicon.ico
│ ├── manifest.json
├── src/
│ ├── components/ # Reusable components
│ │ ├── JobInput.jsx
│ │ ├── JobResults.jsx
│ │ └── ResumeUpload.jsx
│ │ └── ResumeReview.jsx
│ ├── pages/
│ │ └── Home.jsx # Main page component
│ ├── App.jsx # App root component
│ └── index.jsx # Entry point
├── .eslintrc.js # ESLint configuration
├── .prettierrc # Prettier configuration
├── index.html
├── package.json
└── vite.config.js
```### Backend Structure
```
backend/
├── app/
│ ├── __init__.py # App initialization
│ ├── main.py # Entry point
│ ├── routes.py # API routes
│ ├── resume_analyzer.py # Resume analysis logic
│ ├── cover_letter.py # Cover letter generation
│ └── job_scraper.py # Job description scraping
├── .env # Environment variables
├── ruff.toml # Ruff configuration
├── Makefile # Development commands
├── .pre-commit-config.yaml # Pre-commit configuration
└── requirements.txt # Python dependencies
```## Prerequisites
- Node.js (v14 or higher)
- Python 3.11 or higher
- Google Cloud Console account for Gemini API key## Development Setup
### 1. Clone the Repository
```bash
git clone https://github.com/HxnDev/Job-Match-Analyzer.git
cd Job-Match-Analyzer
```### 2. Backend Setup
```bash
cd backend# Create virtual environment
python -m venv venv# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate# Install dependencies
pip install -r requirements.txt# Create .env file
echo "GEMINI_API_KEY=your_api_key_here" > .env# Check code quality
make check# Fix formatting issues
make format
```### 3. Frontend Setup
```bash
cd frontend# Install dependencies
npm install# Check code quality
npm run check# Fix formatting issues
npm run format# Start development server
npm run dev
```### 4. Get Gemini API Key
1. Go to [Google Cloud Console](https://console.cloud.google.com)
2. Create a new project
3. Enable the Gemini API
4. Create API credentials
5. Copy the API key to your backend `.env` file### 5. Run the Application
```bash
# Terminal 1 (Backend)
cd backend
python -m app.main# Terminal 2 (Frontend)
cd frontend
npm run dev
```Visit `http://localhost:5173` to use the application.
## Code Quality
### Frontend
- ESLint for linting
- Prettier for code formatting
- Run checks: `npm run check`
- Fix formatting: `npm run format`### Backend
- Ruff for both linting and formatting
- Run checks: `make check`
- Fix formatting: `make format`## API Documentation
### POST /api/analyze
Analyzes resume against job descriptions.
- Request: Multipart form data
- `resume`: PDF/TXT file
- `job_links`: JSON string of URLs
- Response: JSON with analysis results### POST /api/cover-letter
Generates a cover letter.
- Request: JSON
- `job_link`: String
- Response: JSON with generated cover letter## Contributing
### Commit Message Format
```
type(scope): descriptionTypes:
- feat: New feature
- fix: Bug fix
- docs: Documentation
- style: Formatting
- refactor: Code restructuring
- test: Tests
- chore: MaintenanceExample:
feat(frontend): add job link validation
```### Pull Request Process
1. Create a feature branch: `feature/description` or `fix/description`
2. Follow commit message format
3. Update documentation if needed
4. Ensure all code quality checks pass
5. Request review from maintainers### Code Style
- Frontend: Follow React best practices, use functional components
- Backend: Follow PEP 8 guidelines via Ruff
- Document all functions with docstrings
- Maintain consistent error handling## Why Gemini AI?
1. Free Tier Available: Unlike GPT-4, Gemini offers generous free usage
2. Strong Performance: Comparable results to other LLMs
3. Easy Integration: Simple Python SDK
4. Cost-Effective: Perfect for open-source projects## License
MIT License. See [LICENSE](LICENSE) for details.## Support
- 🐛 Found a bug? [Open an issue](https://github.com/HxnDev/Job-Match-Analyzer/issues)
- 💡 Have an idea? [Submit a feature request](https://github.com/HxnDev/Job-Match-Analyzer/issues)
- 🤝 Want to contribute? [Check our contribution guide](#contributing)## Author
[Hassan Shahzad](https://github.com/HxnDev)