CareerCraft is an AI-powered career enhancement platform designed to help job seekers optimize their resumes, evaluate job-fit, and generate tailored cover letters.
It uses modern AI, NLP, and web technologies to simulate real-world Applicant Tracking Systems (ATS) and hiring workflows.
The platform provides actionable insights that improve resume quality, skill alignment, and overall job readiness.
- Upload PDF / DOCX resumes
- ATS-style scoring based on:
- Keyword alignment
- Resume structure & formatting
- Readability
- Section completeness
- Detailed improvement suggestions
- Paste or select a target job description
- Get:
- Job match percentage
- Identified missing skills
- Role-specific improvement tips
- Personalized upskilling recommendations with learning resources
- Generates professionally tailored cover letters
- Uses:
- Resume content
- Job description insights
- Supports tone customization:
- Formal
- Confident
- Friendly
- One-click PDF export
- Secure user authentication
- Store:
- Resumes
- Generated cover letters
- Job match results
- Track progress across multiple applications
- Manage multiple resume versions
CareerCraft follows a microservice-based architecture:
CareerCraft/
├── frontend/ # User Interface (Next.js)
├── backend/ # API & Authentication (Node.js / Express)
└── ml-service/ # AI & NLP Engine (FastAPI)
Frontend → Backend → ML Service → Backend → Frontend
- Next.js
- Tailwind CSS
- Axios
- Node.js
- Express.js
- MongoDB
- JWT Authentication
- Python
- FastAPI
- NLP-based keyword & role matching
- Rule-based + AI-expandable models
- Docker and Docker Compose installed on your system
- Git
- Clone the Repository
git clone https://github.com/your-username/CareerCraft.git
cd CareerCraft- Configure Environment Variables
# Copy the example environment file
cp .env.example .env
# Edit the .env file with your configuration
# Required: Cloudinary credentials, JWT secret
# Optional: Google/GitHub OAuth credentials- Start All Services
# Build and start all services
docker-compose up --build
# Or run in detached mode
docker-compose up --build -d- Access the Application
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- ML Service: http://localhost:8001
- MongoDB: localhost:27017
- Stop Services
docker-compose down# View logs for all services
docker-compose logs -f
# View logs for specific service
docker-compose logs -f frontend
docker-compose logs -f backend
docker-compose logs -f ml-service
# Rebuild a specific service
docker-compose up --build backend
# Stop and remove all containers
docker-compose down -v- Node.js (v18+)
- Python (v3.11+)
- MongoDB
- Git
git clone https://github.com/your-username/CareerCraft.git
cd CareerCraftcd ml-service
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8001cd backend
npm install
cp .env.production .env # Configure with your credentials
npm run devcd frontend
npm install
npm run devMONGODB_URI: MongoDB connection stringCLOUDINARY_CLOUD_NAME: Cloudinary cloud nameCLOUDINARY_API_KEY: Cloudinary API keyCLOUDINARY_API_SECRET: Cloudinary API secretJWT_SECRET: Secret for JWT token signing
GOOGLE_CLIENT_ID&GOOGLE_CLIENT_SECRET: Google OAuthGITHUB_CLIENT_ID&GITHUB_CLIENT_SECRET: GitHub OAuthOLLAMA_BASE_URL: Ollama service URL (default: http://localhost:11434)
- Frontend: http://localhost:3000
- Backend: http://localhost:5000
- ML Service: http://localhost:8001
- MongoDB: localhost:27017
- frontend: Next.js application (Port 3000)
- backend: Node.js/Express API (Port 5000)
- ml-service: Python/FastAPI ML service (Port 8001)
- mongodb: MongoDB database (Port 27017)
- Source code is mounted for live development
- Node modules are isolated to prevent conflicts
- MongoDB data persists in Docker volume
All services include health checks for monitoring:
- Backend: HTTP check on
/api/health - ML Service: HTTP check on
/ - Frontend: Process monitoring
For production deployment:
- Update environment variables with production values
- Remove volume mounts for source code
- Use proper secrets management
- Configure reverse proxy (nginx/traefik)
- Set up SSL certificates
See CONTRIBUTORS for the full list of contributors.
This project is licensed under the MIT License.
Inspired by real-world ATS systems and modern hiring workflows.
Built for learning, experimentation, and real-world impact.