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.
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 Overview
Central hub tracking application metrics and recent activity.
Job Match Analysis
Detailed breakdown of candidate fit against job requirements.
Resume Optimization
AI-tailored bullet points mapped to specific job descriptions.
Cover Letter Generation
Context-aware cover letters governed by truth policies.
LinkedIn Outreach
Generated connection requests and follow-up messages.
Cold Email Workflow
Multi-touch email sequences for targeted recruiting outreach.
Application History
Persistent storage of all generated artifacts and iterations.
Prompt Studio
Centralized interface for editing and versioning system prompts.
Truth Policy Engine
Configuration panel for hallucination constraints and safety rails.
AI Model Routing
Dynamic selection of LLM providers based on task complexity.
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.