karthik.dev
Back to projects
AI

JobPilot AI

Full-stack AI job copilot — automated discovery, AI match scoring, and interview prep

Next.js 15TypeScriptPostgreSQLRedisBullMQGemini AIBackground Jobs

Overview

A production-ready personal AI job copilot that discovers jobs, ranks them with AI match scoring, generates tailored applications, tracks the pipeline, and prepares candidates for interviews — built with Next.js 15, BullMQ-backed background job processing, and Gemini AI.

Problem

Manual job search requires checking multiple boards, tailoring applications by hand, and preparing for each interview independently — a time-consuming process with no unified pipeline view.

Solution

A full-stack SaaS that automates job discovery, applies Gemini AI for match scoring against candidate profiles, generates tailored application materials, and runs interview prep — all coordinated by BullMQ background jobs with Redis caching.

Architecture

  1. 1Next.js 15 App Router frontend with job pipeline dashboard
  2. 2Gemini AI match scoring — candidate profile vs job description compatibility analysis
  3. 3BullMQ background job processing — async job discovery, scoring, and application generation
  4. 4Redis caching — session state, job search results, and match score memoization
  5. 5PostgreSQL — job pipeline state, application tracking, and candidate profiles

Technical Challenges

  • Designing BullMQ job queues that handle AI API rate limits gracefully without losing queued work.
  • Match scoring that produces explainable results — not just a percentage but specific skill gap analysis.

Results

  • Production-hardened through two sprint cycles improving auth, Docker deployment, and API reliability.
  • Full async AI job processing pipeline with Redis-backed caching for performance.