A high-performance, full-stack recruitment platform that leverages local neural embeddings, semantic vector search, and asynchronous system design to match candidate resumes with job listings based on contextual understanding, not just keywords.
Traditional job portals rely on keyword matching, which fails to capture meaning.
👉 This system uses:
- Transformer-based embeddings
- Vector similarity search
- Efficient system-level optimizations
to deliver context-aware job recommendations at scale.
- Uses MiniLM-L6-v2 (384-dim embeddings) via Transformers.js
- Runs fully locally using ONNX Runtime
- ❌ No external API calls → ✅ Low latency + zero cost
- Implemented using MongoDB Atlas Vector Search
- Uses HNSW (Hierarchical Navigable Small World) indexing- working
- Enables fast approximate nearest neighbor (ANN) search- working
- Uses node-cron for scheduled background jobs
- Separates:
- I/O-bound tasks (API fetching)
- CPU-bound tasks (embedding generation)
👉 Improves scalability and system stability
- Handles large resumes using:
- 512-token windowing
- Recursive text splitting
👉 Works within transformer positional limits while preserving semantic context
External APIs (Jooble / Adzuna)
↓
[Ingestion Layer]
(node-cron every 6 hrs)
↓
[Data Cleaning Layer]
(HTML sanitization + regex)
↓
[Embedding Engine]
(MiniLM + ONNX Runtime)
↓
[Vector Database]
(MongoDB Atlas)
↓
[Matching Engine]
(Cosine Similarity)
↓
[REST API Layer]
↓
Frontend
- Jobs fetched every 6 hours from external APIs
- Background worker:
- Detects new jobs
- Generates embeddings (384-dim vectors)
- Resume → embedding
- Compared with job vectors using cosine similarity
- Jobs ranked based on similarity score
- Returned via REST API
- React.js
- Redux Toolkit
- Tailwind CSS
- Shadcn/UI
- Node.js
- Express.js
- MongoDB Atlas (Vector Search)
- Transformers.js
- ONNX Runtime
- MiniLM-L6-v2
- Node-Cron
- Axios
- Jooble & Adzuna APIs
- Batch processing (20 jobs per cycle)
- Prevents memory overflow during ONNX inference
- Local embeddings → no API calls
- Vector search → sub-linear retrieval (HNSW)
- HTML sanitization
- Regex-based cleaning
👉 Ensures high-quality embeddings (less noise)
- Node.js v18+
- MongoDB Atlas (Vector Search enabled)
git clone https://github.com/nawalkumar/Job-portal-Application.git
cd Job-portal-ApplicationCreate .env file:
PORT=5001
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_secret
ADZUNA_APP_ID=your_id
ADZUNA_APP_KEY=your_key
JOOBLE_KEY=your_key
📥 Install Dependencies
npm install
cd frontend
npm install
npm run dev- both for frontend and Backend
- Uses HNSW (Hierarchical Navigable Small World) indexing
- Enables fast approximate nearest neighbor (ANN) search
Author:
Naval Kumar,
NIT Sikkim exchange student
@IIT Hyderabad Final Year