Back to Projects

Talent Track 360

Designed, built and maintained solo; used daily by 50+ people. Replaced a recruitment firm's shared Excel sheets with the platform that now runs it. Seven roles, security enforced at route, API and database. AI screener cut costs from ₹8k/month to ₹4k.

Next.js 16 React 19 TypeScript Supabase (Postgres + Auth + Storage) OpenAI / OpenRouter GPT-5.6 Luna Vercel

In daily production use, but there is no public link. The app sits behind a login with no open sign-up and holds real candidate records, so neither the deployment nor the repository is mine to publish.

Talent Track 360: the four modules: Tracker, Invoicing, AI Screen and Copilot

Started as a way to get one recruitment team's candidate data out of shared Excel sheets and into a single web interface. It grew into the company's operating system, covering two client streams, invoicing, attendance, recurring office tasks, an AI CV screener and an in-house assistant.

The team ran on spreadsheets. A candidate's progress lived in one workbook, invoicing in another, attendance on paper, and none of them agreed with each other by the end of a month. The specific failure was ownership: when a recruiter left or moved teams, their rows became unattributable, and nobody could say who had submitted what.

Off-the-shelf ATS products assume you are the employer, not an outsourcer billing a client per placement: the whole invoicing model is wrong, and the access rules don't fit a structure with team leads who need to see their own recruiters and nobody else's. So it got built in-house solo, one module at a time, starting with the tracker that replaced the worst spreadsheet.

Access control: seven roles and triple-layer enforcement

Seven roles: management, team lead and recruiter in a hierarchy, plus standalone accountant, analyst and office-admin roles, each seeing a different slice of the product. Access is enforced in three independent places: client-side route guards, API-route authorisation, and Postgres row-level security. The client guard is never trusted on its own, so a forged request still gets nothing back from the database. On top of that: single active session per user with forced logout of superseded devices, 30-minute idle timeout, a password policy with history and 90-day expiry, audited "view as user" impersonation for managers and TLs, and a full audit trail of every action.

Data model: ~50 tables with deep Postgres invariants

~50 tables in Postgres, RLS enabled on all of them, with the trickier invariants pushed down to database triggers rather than the UI: ownership and month are pinned once a record is created, accountants can only touch invoice columns, and a candidate record that's already in the selections pipeline or carries invoice data cannot be deleted at all. Deleted entries go to a recycle bin that only management can restore from. All file storage is private, server-write-only, and read through short-lived signed URLs.

AI screener: volume-tuned evaluations on GPT-5.6 Luna

Screens CVs against configurable eligibility rules using GPT-5.6 Luna. Built for volume: token-efficient prompting, structured outputs, and a cached organisation-lookup table so the same employer or college is never researched (or billed) twice. Lookups are gated on whether the answer could still change the verdict, which cut the search bill substantially.

In-house assistant: privacy-first copilot

An in-house chat assistant on the same model with web search and inline citations, scoped to the work this team actually does instead of being a general chatbot. Folders, saved prompts, and a weekly background pass that distils personal preferences. Every request runs with retention disabled, so candidate CVs never sit in a vendor's dashboard.

Provider layer: live switching and cost tracking

Management can switch the whole organisation between OpenAI and OpenRouter from the UI. Model capabilities are verified against the provider's published catalogue rather than assumed, and per-answer cost is tracked in a usage dashboard split by provider and model.

Cost efficiency and integrated workflows

Replaced ~20 ChatGPT subscriptions (₹8k/month) with ~₹4k/month in total API cost, with the AI built directly into the tools people already use rather than sitting in a separate tab.

50+

DAILY USERS

7

ROLES ENFORCED

199

TYPESCRIPT FILES

55

API ROUTES

416

COMMITS SINCE JUNE

~50

TABLES · 77 MIGRATIONS

FRONTEND

Next.js 16 · React 19 · TypeScript

DATABASE

Supabase · PostgreSQL · Row-Level Security

AI

GPT-5.6 Luna · OpenAI · OpenRouter

HOSTING

Vercel · Supabase Auth & Storage