Problem
Career tools often give generic advice and opaque scores, leaving candidates guessing why they weren't matched.
Goal
Build an evidence-based AI career assistant that can analyze structured career information reliably and provide useful UI states.
Architecture
Server-side provider selection routes requests to the appropriate AI model, which uses typed tools to return structured data rendered as Generative UI.
Engineering Decisions
DECISION
Structured output
WHY
Predictable UI contracts
DECISION
Provider fallback
WHY
App remains usable without one specific provider
DECISION
Server-side provider selection
WHY
Keeps API credentials out of the browser
Key Capabilities
Generative UI
Structured tool outputs are rendered as typed UI rather than untrusted loose text, ensuring reliable visual state.
Job Application Prioritizer Agent
Analyzes candidate profile data against job postings. Inspects requirements, compares via AI, and recommends Apply / Maybe / Skip with confirmed matches, gaps, and next actions.
Reliability Engineering
Handles mid-stream failure states, rate limits, and slow-response states with deterministic sabotage testing, resilience mechanisms, and fallback behavior.
Real Engineering Challenges
Real Engineering Issue
AI SDK v7 Tool Schema Issue
Problem:
Old `parameters` usage caused real Groq tool-calling failure.
Real Engineering Issue
Next.js Server Action Schema Export
Problem:
Exporting a Zod schema from a `'use server'` file triggered: "A 'use server' file can only export async functions, found object."
Guardrails & Verification
Security & Guardrails
- Prompt injection protection from job-posting text
- Evidence-only candidate claims (no fabricated experience)
- No hiring prediction or fake score mechanisms
Testing & Verification
- Automated tests (Vitest)
- Linting and Type Checking
- Manual deployment scenarios
Learnings
- AI features still require ordinary software engineering discipline
- Structured interfaces make AI features more reliable
- Failure states need to be designed intentionally
- Testing real integration paths reveals issues mocks miss