Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ApplyStack Logo

ApplyStack

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.

Features

Core Features

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.

Infrastructure Features

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

Installation

Prerequisites

  • Node.js 20+
  • Docker & Docker Compose
  • MongoDB (local or Atlas)

Option 1: Docker Compose (Recommended) Docker

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

Option 2: Manual Setup

# 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 dev

Environment Variables

Backend .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=development

Frontend .env.local

VITE_API_URL=http://localhost:8001

Live Demo

Frontend: 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)

Planned Features

  • 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
Live Demo

About

A scalable job application tracking platform built with microservices architecture using Node.js, React, MongoDB, Redis, and RabbitMQ, featuring async processing, caching, and Docker-based deployment

Topics

Resources

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages