Piyush Barik

All case studies

Independent · 2024 to present

AI Recruitment Platform

An AI platform that parses a million-CV backlog into structured, searchable candidate profiles.

Anonymised. Client names and operational detail withheld.

Role

Full-stack Architect

Year

2024 to present

Stack

  • Next.js 16
  • TypeScript
  • .NET
  • SQL Server
  • OpenAI
  • Azure
  • Docker
  • Azure Kubernetes
  • Azure DevOps

Overview

A full-stack AI recruitment platform that ingests résumés (PDF, DOCX, legacy DOC) and uses an LLM pipeline to extract structured candidate data into a searchable, review-ready database. It runs on a Next.js front end, a .NET and Dapper API over SQL Server stored procedures, and real-time and batch OpenAI ingestion paths.

Challenge

  1. Parse a ~1.16M-document backlog of inconsistent CVs (PDF / DOCX / legacy DOC) into reliable records without runaway cost.
  2. Tolerate unpredictable LLM output, from varying field names to type mismatches and missing fields.
  3. Support both instant single-CV parsing and high-throughput, low-cost bulk processing, with dedup and cost accountability.

Approach

  1. Built a .NET and Dapper API over 34 SQL Server stored procedures, with an ingestion worker, SHA-256 dedup, and PDF/DOCX/DOC text extraction.
  2. Engineered a flexible LLM parser plus a real-time path (background service and channel) and a Batch-API path (submit, poll, hydrate) at ~50% lower cost.
  3. Delivered the Next.js UI: dashboard, upload with real-time/batch toggle, candidate search, and review queue, plus the containerised CI/CD deployment.

Outcomes

  1. Verified end-to-end across both real-time and batch ingestion paths.
  2. Held blended cost near ~$0.006 per CV at scale, with ~79% of the 1.16M-document backlog processed.
  3. Built-in cost observability and resilient field mapping that recovered skills and location the LLM emitted under inconsistent keys.

Curious about the longer version, or the parts that didn't make the page? I'd be happy to talk it through. Get in touch