A comprehensive full-stack application that analyzes resumes against job descriptions to provide ATS (Applicant Tracking System) compatibility scores and improvement suggestions.
- Resume Analysis: Upload resumes in PDF, DOC, DOCX, or TXT format
- ATS Compatibility Scoring: Get detailed scores on how well your resume matches job requirements
- Keyword Matching: Analyze keyword density and relevance
- Skills Gap Analysis: Identify missing skills and highlight matched ones
- Format Analysis: Check resume structure and ATS-friendly formatting
- Improvement Suggestions: Get actionable recommendations to improve your resume
- Cloudinary Integration: Secure cloud storage for uploaded files
- User Authentication: JWT-based authentication with bcrypt password hashing
- Report Management: Save and retrieve analysis reports
- Rate Limiting: API protection against abuse
- File Processing: Support for multiple document formats
- Database Integration: MongoDB with Mongoose ODM
- Modern React UI: Built with React 18 and TypeScript
- Responsive Design: TailwindCSS for mobile-first design
- Interactive Dashboard: View analysis history and statistics
- Real-time Feedback: Live analysis progress indicators
- Drag & Drop Upload: Intuitive file upload experience
- React 18 with TypeScript
- Vite for fast development and building
- TailwindCSS for styling
- Framer Motion for animations
- Zustand for state management
- React Router for navigation
- Lucide React for icons
- Node.js with Express.js
- MongoDB with Mongoose
- Cloudinary for file storage
- JWT for authentication
- Natural & Compromise for NLP
- PDF-Parse & Mammoth for file processing
- Helmet & CORS for security
Before running this application, make sure you have:
- Node.js (v16 or higher)
- npm or yarn
- MongoDB (local installation or Atlas cloud)
- Cloudinary account (for file storage)
git clone <your-repo-url>
cd ATSCheckercd backend
npm installCreate a .env file in the backend directory:
# Database
MONGODB_URI=mongodb://localhost:27017/ats-checker
# For MongoDB Atlas: mongodb+srv://username:password@cluster.mongodb.net/ats-checker
# JWT
JWT_SECRET=your-super-secret-jwt-key-here
JWT_EXPIRES_IN=24h
# Cloudinary Configuration
CLOUDINARY_CLOUD_NAME=your-cloudinary-cloud-name
CLOUDINARY_API_KEY=your-cloudinary-api-key
CLOUDINARY_API_SECRET=your-cloudinary-api-secret
# Server Configuration
PORT=5000
NODE_ENV=development
# Rate Limiting
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX_REQUESTS=100- Sign up at Cloudinary
- Go to your Dashboard
- Copy your Cloud Name, API Key, and API Secret
- Add them to your
.envfile
# From project root
npm installCreate a .env file in the project root:
# Frontend Environment Variables
VITE_API_URL=http://localhost:5000/api
VITE_APP_NAME=ATS Checker
VITE_MAX_FILE_SIZE=10485760# Start MongoDB service
mongod
# Create database (optional - will be created automatically)
mongo
use ats-checker- Create account at MongoDB Atlas
- Create a cluster
- Get connection string
- Update
MONGODB_URIin backend.env
Use the provided batch script (Windows):
# Double-click or run in terminal
start-both.batcd backend
npm run devBackend will be available at: http://localhost:5000
# From project root
npm run devFrontend will be available at: http://localhost:5173
# Build frontend
npm run build
# Start backend in production
cd backend
npm startPOST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logoutGET /api/auth/me- Get current user
POST /api/ats/analyze- Analyze resume (requires file upload)GET /api/ats/reports- Get user's analysis reportsGET /api/ats/reports/:id- Get specific reportDELETE /api/ats/reports/:id- Delete report
GET /api/user/profile- Get user profilePUT /api/user/profile- Update user profilePUT /api/user/password- Change passwordGET /api/user/usage- Get usage statistics
ATSChecker/
βββ backend/
β βββ models/ # Database models
β βββ routes/ # API routes
β βββ middleware/ # Express middleware
β βββ utils/ # Utility functions
β βββ config/ # Configuration files
β βββ server.js # Main server file
βββ src/
β βββ components/ # React components
β βββ pages/ # Page components
β βββ store/ # State management
β βββ utils/ # Frontend utilities
β βββ assets/ # Static assets
βββ public/ # Public assets
βββ start-*.bat # Quick start scripts
- Maximum file size: 10MB (configurable)
- Supported formats: PDF, DOC, DOCX, TXT
- Storage: Cloudinary cloud storage
- Keyword extraction and matching
- Skills identification (1000+ technical and soft skills)
- Format compatibility checking
- Readability scoring
- ATS compatibility assessment
- JWT authentication
- Password hashing with bcrypt
- Rate limiting
- CORS protection
- Input validation with Joi
- Helmet security headers
- Register/Login: Create an account or sign in
- Upload Resume: Drag & drop or select your resume file
- Add Job Description: Paste the target job description
- Analyze: Click "Analyze Resume" button
- Review Results: Get detailed scores and suggestions
- Save Reports: Access your analysis history
- Improve: Apply suggestions and re-analyze
Backend won't start:
- Check MongoDB connection
- Verify environment variables
- Ensure port 5000 is available
File upload fails:
- Check Cloudinary credentials
- Verify file size limits
- Ensure file format is supported
Frontend can't connect to backend:
- Check API URL in frontend
.env - Ensure backend is running on correct port
- Verify CORS settings
Database connection issues:
- Check MongoDB URI format
- Ensure database is running
- Verify network connectivity
- Backend logs: Check terminal where backend is running
- Frontend logs: Check browser developer console
- Database logs: Check MongoDB logs
- Set environment variables
- Configure MongoDB Atlas
- Deploy backend first
- Update frontend API URL
- Build the frontend:
npm run build - Deploy
distfolder - Set environment variables
- Configure redirects for SPA
This project is licensed under the MIT License.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
For support or questions:
- Check the troubleshooting section
- Review API documentation
- Check environment configuration
- Verify all dependencies are installed
Happy Job Hunting! π―