AI Job Application Copilot

AI-Powered Career Workflow & Resume Intelligence Platform

A full-stack LLM workflow platform designed to make job applications more structured, personalized, and reusable. The system analyzes job descriptions, compares multiple resume variants, generates optimized application documents, manages outreach workflows, and stores reusable application artifacts using AI orchestration and persistent workflow infrastructure.

ReactTypeScriptNode.jsExpressPostgreSQL n8nOllamaOpenAIDocker
Public demo uses fictional data and preset AI outputs for privacy and safety.
AI Job Application Copilot Dashboard Placeholder

The Problem

Job applications are repetitive and fragmented. Candidates often find themselves rewriting the same experiences to fit different job descriptions, leading to massive time sinks and burnout.

While many candidates turn to AI tools to help, most AI tools only generate text and do not manage workflows. They produce outputs that lack governance, persistence, and evidence-awareness. When a candidate uses ChatGPT to write a cover letter, the result often hallucinates claims that aren't in their resume, and the artifact is lost in a chat log rather than saved for future reuse.

Candidates need a system that offers reusable workflows, application history, and outreach management—a structured approach to career orchestration rather than just another text generator.

The Solution Workflow

A continuous, human-in-the-loop orchestration pipeline that transforms a single job description into a complete, verified application package.

📝

Job Description Ingestion

User inputs a job URL or text. The system parses and structures the core requirements.

🔍

Job Match Analysis

AI evaluates the candidate's base profile against the job, generating a gap analysis and fit score.

📑

Resume Comparison

The system evaluates multiple stored resume variants to recommend the best-fit baseline.

Resume Optimization

Generates tailored bullet points constrained by a Truth Policy to prevent hallucinated skills.

✉️

Cover Letter Generation

Produces a highly relevant cover letter mapped directly to the job requirements and candidate history.

🔗

LinkedIn & Cold Email Outreach

Generates multi-touch outreach sequences. Integrates with contact discovery APIs to find recruiter emails.

📄

PDF Export & Persistence

Compiles artifacts into downloadable PDFs and saves the entire application history to PostgreSQL.

Technical Architecture

A decoupled, scalable architecture separating the UI, persistence layer, and heavy AI orchestration.

Frontend

React & TypeScript

A responsive, state-driven UI that manages complex multi-step forms, document previews, and workflow status polling.

Backend API

Node.js & Express

Acts as the secure gateway, handling authentication, data validation, and proxying complex requests to the workflow engine.

Persistence

PostgreSQL

Stores user profiles, base resumes, structured application history, generated artifacts, and system configurations.

Workflow Orchestration

n8n

Handles the heavy lifting of multi-step API calls, parallel LLM execution, error handling, and webhooks.

AI Layer

Ollama & OpenAI API

Multi-provider routing allowing local execution for privacy-sensitive tasks and cloud execution for complex reasoning.

Infrastructure & Integrations

Docker, Nginx, Hunter.io

Fully containerized self-hosted deployment. External APIs used for contact discovery and PDF generation.

AI Workflow & Prompt Governance

Prompt Studio

Instead of hardcoding prompts, the platform includes a dedicated UI to version, test, and refine system prompts. This allows continuous tuning of the AI's tone and formatting without code deployments.

Truth Policy Controls

A strict governance layer that forces the LLM to cross-reference its outputs against the candidate's factual history. This actively prevents the AI from inventing skills or exaggerating years of experience.

AI Routing

The system intelligently routes prompts to different models based on complexity. Simple extraction tasks might hit a faster, cheaper model, while deep resume synthesis uses a high-reasoning model.

Structured JSON Outputs

All AI responses are forced into strict JSON schemas, allowing the backend to predictably parse arrays of bullet points, fit scores, and metadata without breaking the UI.

My Role & Build Approach

I led the product direction, workflow design, AI orchestration planning, integration decisions, debugging, deployment flow, prompt behavior refinement, and iterative testing.

The implementation was heavily AI-assisted using tools such as Codex, Antigravity, and ChatGPT, but the system requirements, workflow behavior, integration decisions, and refinement process were directed by me. This project represents a shift from writing every line of code manually to architecting, orchestrating, and steering complex AI systems to achieve a polished product outcome.

Engineering Challenges Solved

🧩

Structured Output Enforcement

LLMs naturally want to return markdown text. I engineered reliable prompting strategies and validation layers to guarantee strict JSON schemas required by the React frontend.

🔄

Workflow Persistence & Rehydration

Storing complex, multi-step job applications required a relational database schema that could capture the exact prompt, input data, and resulting artifact for future audits or edits.

🛡️

Claim-Safety & Hallucinations

Generating a cover letter that lies to an employer is a critical failure. Implementing the "Truth Policy" required injecting verified candidate history into the context window with strong negative constraints.

Platform Screenshots

Dashboard

Dashboard Overview

Central hub tracking application metrics and recent activity.

Job Match Analysis

Job Match Analysis

Detailed breakdown of candidate fit against job requirements.

Resume Optimization

Resume Optimization

AI-tailored bullet points mapped to specific job descriptions.

Cover Letter Generation

Cover Letter Generation

Context-aware cover letters governed by truth policies.

LinkedIn Outreach

LinkedIn Outreach

Generated connection requests and follow-up messages.

Cold Email Outreach

Cold Email Workflow

Multi-touch email sequences for targeted recruiting outreach.

History

Application History

Persistent storage of all generated artifacts and iterations.

Prompt Studio

Prompt Studio

Centralized interface for editing and versioning system prompts.

Truth Policy

Truth Policy Engine

Configuration panel for hallucination constraints and safety rails.

AI Routing

AI Model Routing

Dynamic selection of LLM providers based on task complexity.

Address Book

Contact Discovery

Integration with Hunter.io to find and manage recruiter contacts.

Future Roadmap

Browser-Assisted Workflow

Planned browser-assisted workflow using Playwright/Puppeteer to detect application fields, pre-fill user-approved information, and sync application status back to the platform. Focusing heavily on human-in-the-loop workflow assistance, not spam automation.

Recruiter Intelligence

Enhanced mapping of hiring teams and company news to further personalize cover letters and outreach.

Workflow Analytics

Deep dive metrics into which resume variants yield the highest interview conversion rates.

Cross-Platform Sync

Integration with external job boards to sync saved jobs directly into the Copilot dashboard.

Lessons Learned

1. AI Orchestration is Harder Than Prompting. Getting a good result in ChatGPT is easy. Architecting a system that reliably moves data from a database, into a prompt, handles the API response, validates the JSON schema, and updates a UI state is significantly more complex.

2. Governance Improves Reliability. Giving the AI total freedom produces generic, hallucinated fluff. Constraining the AI with a Truth Policy and strict rules produces professional, highly accurate outputs.

3. Product UX Matters for AI. Users don't want to chat with a bot to apply for a job. They want structured forms, clear loading states, easy-to-read comparisons, and one-click PDF exports. Wrapping AI in a familiar SaaS interface drastically improves adoption and utility.

4. AI Systems Require Validation Layers. Never trust the raw output of an LLM. Every critical step requires parsing, fallback mechanisms, and human-in-the-loop review before finalization.