Banner Background
Web App

CareerTrack

CareerTrack is an enterprise-grade, full-stack job application tracker with an integrated multi-provider AI assistant (OpenAI, Anthropic, Google Gemini). Built using Next.js 15, React 19, TypeScript, Tailwind CSS v4, and Prisma ORM with PostgreSQL, it streamlines every phase of the job hunting lifecycle. Features include drag-and-drop Kanban boards, JD gap analysis, resume version management, interview question banks, encrypted API key storage, and interactive analytics visualized with Recharts.

Next JSReact JSTypescriptTailwind CSSPrismaPostgreSQLClerkClerkGoogle Geminishadcn/uiShadcn UIZustandReact QueryDockerGitGithubVercel
CareerTrack Preview

Overview

CareerTrack is a full-stack, AI-powered job application tracking platform engineered with Next.js 15 App Router, React 19, TypeScript, and Prisma ORM backed by PostgreSQL. Designed for high-intent job seekers, it organizes the entire application lifecycle โ€” from the initial bookmarking of target positions to interview stages and offer negotiations โ€” inside an intuitive, type-safe workspace.

The platform pairs a responsive drag-and-drop Kanban pipeline (@hello-pangea/dnd) with a multi-model AI copilot (supporting OpenAI GPT-4o, Anthropic Claude 3.5 Sonnet, and Google Gemini 2.0 Flash via the Vercel AI SDK). Users can perform instant JD gap analyses, generate tailored resume bullets, practice live interview simulations, and visualize application velocity through Recharts analytics.

Privacy-first AI and zero-leak isolation

CareerTrack enables users to securely configure their own AI API keys (OpenAI, Anthropic, Gemini) with AES-256-GCM encryption stored in httpOnly cookies. All database operations strictly enforce user-level Row-Level Security through Clerk identity tokens.

CareerTrack Hero Landing Page โ€” Track Every Application, Land Your Dream Job

CareerTrack landing page: All-in-one job search hub with AI interview prep, smart resume management, and live application tracking.

Tech Stack

  • โ€ขNext.js 15.3 (App Router) and React 19
  • โ€ขTypeScript 5 for strict typing across server and client components
  • โ€ขTailwind CSS v4 with @tailwindcss/postcss
  • โ€ขshadcn/ui & Radix UI primitives (dialog, select, tooltip, dropdown, toast)
  • โ€ข@hello-pangea/dnd for drag-and-drop Kanban pipeline boards
  • โ€ขRecharts for responsive analytics and monthly application trend charting
  • โ€ขFramer Motion & Lenis for micro-interactions and smooth scrolling
  • โ€ขZustand & TanStack React Query for client-side state and caching

Feature Breakdown

Kanban & Pipeline Board

Optimistic drag-and-drop pipeline board across custom status stages, dense tabular filtering with inline editing, deadline calendar views, and instant CSV exports.

Multi-Model AI Copilot

Instant JD gap scanning, keyword match scoring, bullet point tailoring suggestions, and live streaming interview simulations powered by OpenAI, Claude, and Gemini.

Interview Prep & Question Bank

Curated role-specific technical and behavioral questions categorized by difficulty tiers, linked mock notes, and structured feedback logs for each application.

Analytics & PDF Resume Parser

Interactive Recharts conversion funnels, weekly target goals, multi-version resume management with automated PDF text extraction and match percentage analytics.

CareerTrack Candidate Dashboard & Real-Time Application Funnel

Personalized candidate dashboard with JD text intake, drop file analysis, live application funnel (Saved, Applied, Assessment, Interview, Offer), and pipeline conversion metrics.

Platform Interface & Live Telemetry

Settings, Data Management & Custom AI Key Profiles

Settings, Data Management & Custom AI Key Profiles

Data management and AI profile manager enabling full CSV export, dynamic provider switching (Custom OpenAI-compatible, OpenRouter, Gemini), custom Base URLs, and rate-limit failovers.

Applications Kanban Board โ€” Multi-Stage Opportunity Tracker

Applications Kanban Board โ€” Multi-Stage Opportunity Tracker

High-productivity Kanban workspace managing 24 live roles across Saved, Applied, Interviewing, Rejected, and Offered stages with quick company tags and status toggles.

Powerful Features for Modern Job Seekers โ€” Capabilities Grid

Powerful Features for Modern Job Seekers โ€” Capabilities Grid

Comprehensive features overview: Kanban Board, AI Interview Prep, JD Scanner & Match, Smart Resume Builder, Weekly Goals, Analytics, Cloud Sync, and Privacy First.

All-in-One Job Search Platform โ€” Feature Architecture

All-in-One Job Search Platform โ€” Feature Architecture

Modular platform architecture: Smart Application Tracking (LinkedIn, URL, CSV import), AI Interview Coach, Funnel Analytics, Weekly AI Reviews, and Offer Negotiation comparisons.

Architecture

User Journey

1

Authentication & sync

User signs in via Clerk. An automated Svix webhook triggers /api/webhooks/clerk, ensuring immediate relational synchronization with the local PostgreSQL User record.

2

Pipeline management

Applications are created on /applications, categorized by company, tags, and expected compensation. Dragging cards across columns immediately triggers optimistic Server Action updates.

3

AI JD scanning

Job descriptions pasted into /jd-scanner are streamed through the selected LLM provider. The response produces match percentage, keyword highlights, and tailored resume bullet points.

4

Interview prep & notes

Users access role-specific question banks on /interview-prep, linking interview notes and mock answers directly to active applications in their pipeline.

5

Analytics & goals

/analytics aggregates submission rates, interview conversion bottlenecks, and weekly target goals using interactive Recharts components.

CareerTrack operates on an isolated, user-scoped architecture connecting Next.js 15 App Router, Clerk Auth, Prisma 6 PostgreSQL, and multi-model LLM providers via streaming SSE.

System Architecture & Data Flow
Rendering architecture diagram...

Requests enter Next.js Server Actions, authenticate via Clerk, fetch user data from Prisma/PostgreSQL, format tailored prompts for the Vercel AI SDK, and stream completions back to the client while logging analytics.

AI Job Preparation & Application Lifecycle

How CareerTrack orchestrates multi-model AI parsing, gap analysis, and pipeline Kanban tracking.

Phase 01
PDF ParserJSON SchemaPrisma

Resume Ingestion & Structured Parsing

PDF/DOCX resumes are parsed into structured JSON schemas extracting skills, years of experience, and historical achievements.

const { text } = await parsePDF(buffer); const parsed = await generateObject({ model: gemini, schema: ResumeSchema, prompt: text });
Phase 02
Gemini 1.5 ProVector MatchGap Scoring

Semantic JD Gap Analysis

The job description scanner compares applicant skills against job requirements, highlighting missing keywords and match scores.

const match = computeSemanticFit({ resumeSkills: parsed.skills, jdRequirements: jd.keywords });
Phase 03
Vercel AI SDKPrompt ChainingStreaming

AI Tailoring & Interview Prep Generation

Multi-model AI drafts tailored cover letter suggestions and creates customized interview question banks ranked by difficulty.

return streamText({ model: openai("gpt-4o"), system: SYSTEM_PROMPT, prompt: userPrompt });
Phase 04
@hello-pangea/dndOptimistic UIPostgreSQL

Interactive Kanban Pipeline Tracking

Applications transition through Wishlist โ†’ Applied โ†’ Interviewing โ†’ Offer via drag-and-drop boards with telemetry updates.

await prisma.application.update({ where: { id, userId }, data: { status: newStatus } });

Security & Encryption Deep Dive

CareerTrack guarantees applicant data privacy and prevents unauthorized AI access through layered encryption standards.

AES-256-GCM

AES-256-GCM API Key Storage

User-provided OpenAI and Gemini API keys are encrypted at rest with initialization vectors and authenticated tags.

Clerk Auth

Clerk Session Handshake & JWT

All Server Actions authenticate sessions using cryptographically signed JWT tokens with instant revocation support.

HMAC SHA-256

svix Webhook Signature Validation

Incoming Clerk webhooks verify HMAC SHA-256 signatures to prevent replay attacks and spoofed identity payloads.

Performance & Efficiency Benchmarks

Measured real-world latency and throughput across core user flows.

1.2s
AI Gap Analysis Latency

Average end-to-end streaming latency for full JD keyword matching.

14ms
Database Query Speed

PostgreSQL indexed queries via Prisma ORM connection pooling.

99/100
Lighthouse Performance

Optimized Core Web Vitals with Next.js 15 Server Components.

45%
Prompt Token Savings

Reduced token overhead via structured AST prompt compression.

0ms
Kanban Update Latency

Instant optimistic state transition with background rollback guard.

92%
Test Suite Coverage

Unit and integration tests across Server Actions & Zod schemas.

AI Architecture Comparison: Server Actions vs Client-Side Direct Calls

Why CareerTrack routes all LLM queries through Next.js Server Actions rather than direct client-side fetch.

Dimension / FeatureCareerTrack Server Action PipelineDirect Client-Side LLM Calls
API Key Security100% Server-side (Zero key exposure in browser)Keys exposed in browser network inspection
Prompt Tampering DefenseSystem prompts locked & injected on serverVulnerable to client-side prompt manipulation
Rate Limiting & Abuse PreventionPer-user token bucket enforced in RedisEasily bypassed via direct API scraping
Cold-Start & Response StreamingEdge-compatible Server-Sent Events (SSE)Unbuffered payloads with poor retry handling

API Endpoints

ResourceMount pointPurpose
Webhooks/api/webhooks/clerkSvix-verified Clerk user creation, update, and deletion sync
AI Chat/api/ai/chatStreaming multi-model AI assistant (OpenAI, Claude, Gemini)
JD Scanner/api/ai/scan-jdSkill extraction, gap score analysis, and resume tailoring
ApplicationsServer ActionsType-safe CRUD, status transitions, and bulk CSV export
CompaniesServer ActionsCompany notes, industry categorization, and link metadata
ResumesServer ActionsMulti-version resume uploads, default tagging, and PDF parsing

Project Structure

schema.prisma
seed.ts
layout.tsx
page.tsx
sign-in/page.tsx
sign-up/page.tsx
applications/page.tsx
analytics/page.tsx
jd-scanner/page.tsx
interview-prep/page.tsx
resumes/page.tsx
settings/page.tsx
ai/chat/route.ts
ai/scan-jd/route.ts
webhooks/clerk/route.ts
applicationActions.ts
companyActions.ts
resumeActions.ts
goalActions.ts
applications/KanbanBoard.tsx
ai/JDScanner.tsx
analytics/ApplicationVelocityChart.tsx
interview/QuestionBank.tsx
ui/dialog.tsx
prisma.ts
crypto.ts
ai-providers.ts
utils.ts
package.json
next.config.ts
tsconfig.json
docker-compose.yml

Getting Started

Environment Variables

DATABASE_URL=postgresql://postgres:password@localhost:5432/career_track
DIRECT_URL=postgresql://postgres:password@localhost:5432/career_track

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
CLERK_WEBHOOK_SECRET=whsec_...

ENCRYPTION_KEY=32_byte_hex_key_for_aes_256_gcm
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_GENERATIVE_AI_API_KEY=AIzaSy...

Running Locally

pnpm install
npx prisma db push
pnpm dev        # starts on http://localhost:3000

Deployment

  • Vercel โ€” automated Next.js 15 deployment with Edge route optimizations and environment secrets.
  • Supabase / Neon โ€” connection-pooled serverless PostgreSQL instance with automatic daily backups.

Frequently Asked Questions

See it in action

Explore the live application and AI features at career-track-nine.vercel.app.

โ€ข OPEN TO WORK โ€ข OPEN TO WORK
star
OPEN TO WORK ยท OPEN TO WORK ยท
wingsLogo

FROM CONCEPT TO CREATION
LET'S MAKE IT HAPPEN!

I'm available for full-time roles & freelance projects.

I thrive on crafting dynamic web applications, and
delivering seamless user experiences.