Why we built a recruitment platform from scratch
Most commercial job boards are built for one side of the market — either candidate-first (LinkedIn, Naukri) or employer-first (Lever, Greenhouse) — and the two rarely integrate cleanly. We wanted a platform that was genuinely bidirectional: a place where candidates get AI-powered match scores and ATS feedback, and employers get a structured pipeline with AI-assisted screening, not just an inbox of CVs.
The deeper motivation was technical credibility. TalentHub is a complex full-stack product — multi-role auth, a real-time notification system, an async AI processing queue, Elasticsearch search, and dual payment integration. Building it ourselves gave our engineering team direct experience with every major component of a production-grade SaaS platform. It is also the codebase we use to show, not tell, when pitching engineering engagements.
Key pain points
- ✕Existing platforms treat AI matching as a marketing feature, not a transparent scored signal candidates and employers can both see
- ✕ATS scoring tools are standalone — not integrated into the job application flow where they are most useful
- ✕Recruitment pipelines in most tools are glorified spreadsheets, not structured Kanban workflows with interview scheduling built in
- ✕Indian market requirements (Razorpay, INR salary ranges, GDPR-adjacent data deletion) are afterthoughts in global platforms
- ✕Resume parsing quality from off-the-shelf tools is poor for non-Western name formats and Indian academic institutions
What we built
TalentHub is a Turborepo monorepo with four packages (database, types, config, ui) and two apps. The NestJS API (15 modules) handles auth with refresh token rotation, Elasticsearch job search with Prisma fallback, GPT-4o AI services, BullMQ background processing, Socket.IO real-time events, Stripe and Razorpay payments, and AWS S3 resume storage. The 42-model Prisma schema shares the same PostgreSQL instance as our HRMS, in a dedicated `talenthub` schema.
The AI layer uses GPT-4o for seven distinct features: resume parsing (PDF + DOCX via mammoth/pdf-parse → structured JSON), ATS score calculation with keyword/skills/formatting/experience breakdown, candidate–job matching scored across five dimensions, AI job description generation, skill gap analysis with learning path recommendations, profile enrichment (headline + completeness score), and salary prediction by title/skills/city/industry. All AI processing runs through BullMQ queues to keep response times low and API costs predictable.
The employer experience includes a Kanban-style application pipeline with 11 status stages (Applied → Shortlisted → Interview → Offer → Accepted/Rejected), bulk interview scheduling linked to calendar, offer letter management, team and recruiter role assignment, and an analytics dashboard with pipeline conversion metrics. Candidates get AI-powered job recommendations, a resume builder with live ATS scoring against target roles, and application tracking across all their active positions.
Technology stack
Frontend
Backend
AI
Infrastructure
Key engineering decisions
Elasticsearch over Postgres full-text for job search
PostgreSQL full-text search is the right default for simple keyword search, and we kept it as a fallback. Elasticsearch gives us typo-tolerance, field-boosted ranking, faceted filtering (location + salary + type + experience), and relevance scoring we can tune — essential for a job board where search quality directly affects user retention.
BullMQ for all AI processing — no synchronous GPT calls in API handlers
Every GPT-4o call (resume parse, ATS score, match score, recommendations) runs as a queued BullMQ job. API handlers return immediately with a job ID; the frontend polls or receives a Socket.IO event on completion. This keeps p99 API response times low, prevents timeout failures on slow LLM responses, and makes retry logic straightforward.
Dual payment: Stripe for international, Razorpay for Indian employers
Stripe's INR support has historically had friction for Indian businesses at scale. Razorpay is the de facto standard for Indian B2B SaaS with UPI, netbanking, and rupee invoicing. We implemented both with a payment provider abstraction layer so employers can choose, and we handle currency and tax (GST) correctly for each.
The results
TalentHub is live at talenthub.swenivis.com. The AI resume scoring and candidate–job matching features are in active use, and the employer pipeline and interview scheduling modules are complete. The codebase is our reference implementation for enterprise full-stack product engagements — we walk clients through it to demonstrate how we approach auth, search, async AI processing, and payment integration at production quality.
From our founder
We built TalentHub because we believe a company should only pitch engineering services it can demonstrate in working code. Every architectural decision in TalentHub — the BullMQ AI queue, the Elasticsearch fallback pattern, the dual-payment abstraction — is something we have reasoned through and tested under real conditions. If you are considering a similar platform build, we can show you exactly how we approached it.
Need a custom HRMS or similar product?
We can adapt this codebase to your organisation's requirements, or build from scratch to your specification.
Book a discovery callMore engineering work

