←Back to Works / Projects
AI & ML//Full-Stack
LIVE SYSTEM
AI & MLFull-Stack

AI Career CoPilot

Multi-Agent Job Discovery & Kanban Tracking Pipeline Engine

Stack:FastAPICeleryRedisChromaDBNVIDIA NIMNext.js
YOUR ROLE & SCOPEFull-Stack AI Engineer
TIMELINE6 Weeks
CORE CONSTRAINTSManaging LLM API rate limits during high-volume job description processing
DEPLOYMENTFastAPI + Celery + Redis + ChromaDB + Next.js
error_outline

// 01. THE PROBLEM

Applying for technical jobs requires hours of manual work tailoring cover letters, matching key experience items to job specs, and tracking application state.

account_tree

// 02. SYSTEM ARCHITECTURE & PIPELINE FLOW

STAGE 01PARSE

Job Specification Parser

Extracts core requirements, tech stacks, and seniority level from posted job URLs.

STAGE 02SEARCH

ChromaDB Vector Retrieval

Queries candidate project database for 3 most relevant experience items.

STAGE 03TAILOR

Multi-Agent Resume & Letter Generation

Orchestrates ATS parser, bullet optimizer, and letter writer agents asynchronously.

STAGE 04TRACK

Kanban Status Synchronization

Updates application board state to READY_TO_APPLY with tailored assets.

balance

// 03. TECHNICAL APPROACH & DECISION MATRIX

01Decoupled Celery Worker Architecture

✓ DECISION CHOSEN

HTTP 202 Accepted + Celery Workers + Redis

Asynchronous queue workers prevent HTTP gateway timeouts during multi-step agent execution.

✕ REJECTED ALTERNATIVE

Synchronous HTTP API Calls

Caused gateway timeouts when executing sequential LLM generation steps.

terminal

// 04. CORE ARCHITECTURAL LOGIC

Asynchronous Celery worker task decoupling multi-agent LLM pipeline execution.

tasks/worker.py
1234567891011
@celery_app.task(bind=True, max_retries=3, default_retry_delay=5) def orchestrate_job_tailoring_task(self, job_id: str, user_id: str): job_desc = db.fetch_job(job_id) user_projects = chroma_vector_store.query_relevant_projects(job_desc.text, k=3) # Trigger multi-agent pipeline asynchronously tailored_resume = agent_orchestrator.run( agents=["ats_parser", "bullet_optimizer", "cover_letter_writer"], context={"job": job_desc, "projects": user_projects} ) kanban_service.update_application_status(job_id, status="READY_TO_APPLY")
task_alt

// 05. TRADE-OFFS & HONEST REFLECTION

Managing Redis infrastructure added deployment complexity, but completely eliminated UI freeze during agent generation.

query_stats

// 06. CONCRETE OUTCOMES & VERIFIED METRICS

Celery
Async Queue
Redis task broker decoupling
ChromaDB
Vector Retrieval
Semantic project context matching
Sub-50ms
Dispatch Time
Instant UI feedback response