← Back to CareerStar
CareerStar · System Architecture
Rate careers like stocks — one app, defensible by design
A single full-stack Next.js app with a deterministic scoring engine at its core. An LLM explains the score; it never computes it. Free-text is treated as data, not instructions. Stateless, no database, deployed on AWS.
Offline data pipeline · runs once on the author's machine
BLS
growth + pay · public domain
O*NET-SOC
occupation codes
Eloundou
AI exposure · MIT
→join
Crosswalk + join
on SOC-2018 codes
→
data.json
committed dataset
Runtime · Next.js 16 app on AWS Amplify
Browser UI
single screen · free-text
→POST
Security gate
validate · cap · rate-limit
→
Scorer
pure · deterministic · 0–100
→score
Claude Haiku
explanation only
→
Score cards
+ why + redirect
Deployment
AWS Amplify
SSR · CI/CD
→
Route 53
custom domain
→
Auto HTTPS
managed TLS
→
Env secrets
server-side only
Architecture decisions7 invariants
AD-1
One Next.js app, TypeScript end to end
Prevents a needless second service.
AD-2
Scorer is pure; the UI only renders
Prevents two sources of truth drifting.
AD-3
Join offline, read at runtime
Prevents fragile in-request data joins.
AD-4
The LLM explains, never decides
Prevents the thin-wrapper failure.
AD-5
Free-text is data, not instructions
Prevents prompt injection + cost abuse.
AD-6
Stateless — no accounts, no DB
Prevents unneeded data-governance surface.
AD-7
AWS Amplify + Route 53, auto HTTPS
Prevents ops sprawl + insecure config.
Next.js 16 · TypeScriptClaude · claude-haiku-4-5Data: BLS · O*NET · Eloundou 2023Deploy: AWS Amplify + Route 53