| Web appNext.js 16 · React 19Deterministic code | Upload, live progress, results and history. Streams every pipeline status over SSE, with replay if the connection drops. |
| APIFastify · SSEDeterministic code | Validates the PDF and job post, checks credits, queues the job and opens the live stream. |
| Job queueBullMQ · RedisDeterministic code | Separate worker processes with a dead-letter queue, plus queues for quality reports, exports and reminders. |
| Cost & rate limitsDaily budget · TPM/RPMDeterministic code | Admission control per model with priority lanes and 429 cooldowns. A daily AI budget stops spend before it runs away. |
| ParseText + vision OCRAI model call | Hybrid extraction: text first, a vision model as OCR fallback for scanned CVs, then an LLM builds a canonical CV. |
| Skill evidenceGraded by proofAI model call | An LLM extracts the job skills; each one is graded strong, attenuated or excluded by how much proof the CV really has. |
| LLM rewriteRewrites, invents nothingAI model call | The quality model rewrites the CV using only proven skills. Structured output escalates from the fast to the quality tier on repair. |
| Output validatorHonesty · skill preservationDeterministic code | Deterministic checks reject lost skills and unsupported claims before anything is scored. A regression over 5 points triggers the fallback and refunds the credit. |
| Scoring engineDeterministic ATS scoreDeterministic code | The model proposes a score, but the number shown comes from a deterministic scoring engine, plus the honest ceiling. |
| Model routerFast · Quality · Vision · JudgeAI model call | Each step asks for a tier, not a model. The writer provider is swappable by config without touching the pipeline. |
| Quality judgesLLM-as-judge · claim checkAI model call | Async lenses score each result (recruiter scan, ATS, interview odds) and an entailment check verifies every claim. Nightly evals in CI. |
| Skill embeddingsVector skill matchingPlanned | Next wave: local embeddings to match skills by meaning instead of by name. Planned, not built yet. |
| Render serviceFastAPI · TypstDeterministic code | A Python microservice turns the result into a PDF in one of five templates. |
| Postgres · S3Runs · history · filesData | Postgres via Drizzle for runs, credits and the job tracker; S3-compatible storage with signed download tokens. |
| ObservabilityOpenTelemetryDeterministic code | Traces with tokens and cost on every model call, plus structured logs and budget alerts. |