This project implements a scalable job import system that fetches jobs from multiple RSS/XML feeds, queues them using Redis and BullMQ, imports them into MongoDB using worker processes, and tracks the import history in an Admin UI built with Next.js.
- Fetch jobs from multiple RSS/XML feeds
- XML-to-JSON conversion
- Queue-based background processing with Redis and BullMQ
- Worker processes with concurrency and retry/backoff
- Import History Tracking stored in MongoDB
- Admin UI with Next.js to view import logs
- Real-time updates with WebSockets
- Modular, scalable, microservice-friendly design
/client # Next.js Admin UI /server # Express API, Queue, Worker /docs # Documentation and Architecture diagram
- Frontend: Next.js
- Backend: Node.js with Express
- Queue: BullMQ + Redis
- Database: MongoDB (Mongoose)
- Real-time: Socket.IO
- Deployment ready for Docker/Vercel/Render
git clone https://github.com/i-niranjan/job-import-system.git
cd job-import-systemcd server
npm install--- Create .env [local-example]
PORT=3012
MONGO_URI=mongodb://localhost:27017/jobImporter
REDIS_URL=redis://localhost:6379
QUEUE_CONCURRENCY=5
CRON_SCHEDULE=0 * * * *Run Server
npm run devcd ../client
npm install
npm run dev--- Create .env [local-example]
NEXT_PUBLIC_API_URL=http://localhost:3012Run Server
npm run devFor system architecture and design decisions, see:
/docs/architecure.md