One stop job application tracking system!
ApplyStack is a full-stack job application tracking platform built to eliminate the chaos of managing job searches across spreadsheets, sticky notes, and browser tabs.
✓ Auth (JWT) : Secure login, register, forgot/reset password via OTP email
✓ Job Tracker : Track company, role, date, referral, shortlist, interview, offer
✓ Company View : Group applications by company with card/table views
✓ Task Manager : Daily tasks with priority, tags, date grouping (overdue/today/upcoming)
✓ Templates : Save reusable cold messages and application content
✓ PDF Export : Export all applications as a formatted PDF report
✓ Smart Filters : Filter by status: applied, shortlisted, interviewing, offer, not selected
✓ Reminders : Auto-reminder banner for applications not yet submitted
✓ Company Logos : Auto-fetched company logos via domain-based favicon API with fallback support.
✓ Redis Caching : Jobs cached per-user (5 min TTL), company search cached (1 hr TTL)
✓ RabbitMQ : Async email delivery and background task queue
✓ Docker Compose : 4-service containerized setup (API, MongoDB, Redis, RabbitMQ)
✓ Graceful Shutdown : SIGINT/SIGTERM handlers close all connections cleanly
✓ Health Checks : /api/health endpoint verifying all 3 services
- Node.js 20+
- Docker & Docker Compose
- MongoDB (local or Atlas)
git clone https://github.com/ArshTiwari2004/applystack-microservices.git
cd applystack
# Set environment variables
cp backend/.env.example backend/.env
# Edit backend/.env with your values
# Build and start all services
docker-compose up --build
# Run in background (optional)
docker-compose up -d --build
# Stop services
docker-compose down
# Reset everything (including data)
docker-compose down -v
| Service | URL / Port |
|----------|-----------|
| Backend | http://localhost:8001 |
| Health | http://localhost:8001/api/health |
| MongoDB | 27017 |
| Redis | 6379 |
| RabbitMQ | http://localhost:15672 |Services start at:
- API:
http://localhost:8001 - RabbitMQ Management:
http://localhost:15672 - Services communicate using container names (e.g.,
mongo,redis,rabbitmq) - To verify everything is working, just go to:
http://localhost:8001/api/health
# Backend
cd backend
npm install
cp .env.example .env
# Configure .env
node server.js
# Frontend
cd frontend
npm install
cp .env.example .env.local
# Set VITE_API_URL=http://localhost:8001
npm run devBackend .env
PORT=8001
MONGO_URL=mongodb://localhost:27017
DB_NAME=applystack
JWT_SECRET=your-secure-secret-key
REDIS_URL=redis://localhost:6379
RABBITMQ_URL=amqp://localhost:5672
EMAIL_USER=your@gmail.com
EMAIL_PASS=your-app-password
CORS_ORIGINS=http://localhost:5173
NODE_ENV=developmentFrontend .env.local
VITE_API_URL=http://localhost:8001Frontend: https://applystack.vercel.app
Backend API: https://applystack.onrender.com
- MongoDB is hosted on MongoDB Atlas.
- Redis and RabbitMQ are optional in production
- First API request may take ~30 seconds due to cold start (Render free tier)
- AI-powered cover letter generator (via Claude API)
- Interview preparation mode (per company)
- Google Calendar integration for interview scheduling
- Analytics dashboard (applications over time, funnel metrics)
- Chrome extension for one-click job capture from LinkedIn
- Email parsing to auto-import application confirmations
