MyCVPath — AI-Native CV Intelligence Platform
Achievement Log
Overview
Production-deployed polyglot microservices platform automating the full CV-to-job-application lifecycle using a 6-agent LLM orchestration pipeline, ATS-optimized PDF rendering, Rust telemetry sink, and real-time admin control plane. Built across five independently deployable services (Go, Python, Rust, Node.js, Next.js) sharing a PostgreSQL backend with dual-schema architecture. Features tiered billing with BYOK API key encryption, atomic guest-to-user migration, and job-scoped immutable CV snapshots. Live at mycvpath.com.
Core Technologies
Implementation & Architecture
Agentic LLM Orchestration Engine (Go-LLMs)
Six-agent sequential pipeline in Go transforming a raw CV + job description into a tailored, scored application package. PromptBuilder injects per-agent JSON schemas into system prompts for structured output. TOON serialization flattens nested inputs for LLM efficiency. Sequential provider failover with exponential backoff. BYOK keys decrypted in-memory per request and never logged.
CV Document Rendering Pipeline (Python/Flask)
Stateless PDF generation with V1 (fixed schema, deterministic) and V2 (dynamic section ordering) rendering engines. EB Garamond serif typography with ATS-safe layout constraints. PyPDF2 text extraction feeds the CV_PARSER agent as pipeline entry point.
Rust Axum Fire-and-Forget Telemetry Sink
All writes spawned via tokio::spawn — 202 Accepted returned immediately, DB write happens async. Tracks page views, user actions, LLM request telemetry (tokens, cost, latency), and centralized errors from all 5 services with severity classification.
PostgreSQL Dual-Schema Data Architecture
17 migration files establish full schema evolution: identity, CV versioning, job application funnels, pipeline state snapshots, telemetry, billing, and migration stored procedure. JSONB fields for provider chains enable zero-migration config updates. Indexed on all dashboard aggregation patterns.
Hybrid State Architecture (Next.js)
React Context (hot) + LocalStorage (crash recovery) + PostgreSQL (durable). Dual-trigger sync after agent completion and on navigation. Guest sessions preserved via cookie and migrated atomically to user accounts on registration.
Tiered BYOK Billing and Governance Engine
Three tiers: FREE (daily quota, platform API keys), PAID (balance deduction + service fee), BYOK (AES-256-GCM encrypted user-supplied keys). Monthly spend caps and per-user rate limits configurable without redeploy. Global free mode toggle bypasses all billing for promotions.
Polyglot Docker Compose Orchestration
Strict startup ordering via health checks and `service_completed_successfully` dependency on migrations. Internal app-network for service-to-service DNS, gateway-public for Nginx-proxied HTTPS. No secrets in image layers.
Technical Skills
- Multi-Agent Orchestration
- Agentic AI Orchestration
- Prompt Engineering
- Multi-LLM Integration
- Prompt Template Design
- Docker
- Python
- TypeScript
- Go
- Rust
- Next.js
- React
- Flask
- TailwindCSS
- RESTful API Design
- Concurrency (Threading/Async)
- OAuth 2.0 Integration
- PostgreSQL
- Schema Migration
- JWT (JSON Web Tokens)
- JSON Schema & Structured Data Extraction
- Microservices Architecture
- Multi-Provider LLM Failover Orchestration
- Schema-Injected LLM Output Validation
- AES-256-GCM API Key Vault Encryption
- Rust Axum Async Telemetry Sink
- Atomic Guest-to-User Data Migration
- Job-Scoped Immutable Snapshot Persistence
- ReportLab ATS-Optimized PDF Composition
- Tiered BYOK Billing Rate-Limit Architecture
Engineering Challenges
- →Multi-Service Startup Race Conditions — Application services started before migrations finished, causing table-not-found errors. Fixed with `service_completed_successfully` dependency on the migrations container.
- →LLM Agent Schema Mismatch — CV_PARSER output (camelCase) didn't match JOB_ANALYZER input (snake_case), causing silent null values. Fixed by defining a single shared Go struct with explicit JSON tags used as the schema source for both agents.
- →Prompt Numerical Hallucination — JOB_ANALYZER invented match percentages not derivable from input. Fixed by rewriting the prompt to forbid unsupported numerical assertions and promoting COMPARATIVE_SCORER as a structured validation pass.
- →Next.js Hydration Infinite Re-render — IdentityContext subscription registered before Supabase client was initialized on SSR, triggering a cleanup/setup loop. Fixed with an `isHydrated` guard deferring subscription until after client mount.
- →AES-256-GCM Decryption Latency — Decrypting BYOK keys on every agent call across a 6-step pipeline added measurable latency. Fixed by decrypting once per HTTP request into a Go context variable passed through the pipeline.
- →Guest Data Collision on Registration — Singleton table INSERT failed with unique constraint violations when the new user already had a row. Fixed with INSERT ... ON CONFLICT DO UPDATE WHERE excluded.updated_at > target.updated_at.
- →ReportLab Font Loading in Docker — Relative font paths valid in development broke in container due to working directory change. Fixed using pathlib.Path(__file__).parent for absolute path resolution.
Project Outcomes
- ✓Shipped a 5-service polyglot platform (Go, Python, Rust, Node.js, Next.js) from first commit to live deployment in 10 days solo.
- ✓6-agent LLM pipeline reduces manual CV tailoring from 2–4 hours to under 5 minutes of user interaction.
- ✓Schema-injected output validation achieved near-100% structured output reliability, eliminating ~15% parse failure rate from free-form prompts.
- ✓Multi-provider failover (OpenAI → Anthropic → Gemini → OpenRouter) with BYOK tier eliminates single-provider outage risk.
- ✓Rust telemetry sink processes events at <1ms handler overhead — zero measurable latency impact on user-facing requests.
- ✓Atomic guest-to-user migration preserves 100% of workflow state across 10+ tables in a single ACID transaction.
- ✓AES-256-GCM BYOK vault ensures user API keys are cryptographically inaccessible to the platform operator.