How Rithavo understands your career

Not a changelog — this is the story of how each piece of Career Intelligence got built, one validated layer at a time, inspected and tested before the next one began.

12
intelligence sprints completed
1

Foundation

The problem: Before Career Intelligence existed at all, Rithavo needed a real Career Profile and a way to trust the identity behind it.
What you get: A working profile system with photo-based identity trust — 32 tests, the base everything else is built on.
2

Career Intelligence Engine

The problem: A career can't be understood from a resume alone — it needs real evidence, honestly-rated capability, and an actual fit comparison, not a keyword match.
What you get: Your evidence becomes capability (Claimed → Supported → Strongly Demonstrated), then gets compared against real role/industry requirements — never a guess.
1C-1 · LOCKED
Intelligence Data Foundation
Purpose

Give Career Intelligence its own relational data model, separate from the single-JSON-blob Career Profile storage — versioning, provenance, and a curated Industry/Role taxonomy.

Built
  • 20 new intelligence tables (Evidence, Capability, Fit, Transition, Gap, Recommendation, Readiness, Diagnostic, Resume, Career Direction, and more)
  • Versioning primitive (version / status / supersedes_id) reused by every later sprint
  • ProvenancedField extended with evidence_ids and confidence
  • Small, hand-curated Industry/Role reference taxonomy
Tests added: 51
Cumulative regression at this sprint: 51/337
Status: LOCKED
1C-2 · LOCKED
Evidence Intelligence
Purpose

Extract Evidence mechanically from what a person already entered — no AI, no invention, every excerpt verbatim and verifiable against the source.

Built
  • Rule-based Evidence extraction from CareerProfile fields
  • Deduplication so re-running extraction never creates duplicate rows
  • Anti-invention validation — every excerpt checked against the real source text
Tests added: 18
Cumulative regression at this sprint: 69/337
Status: LOCKED
1C-3 · LOCKED
Capability Intelligence
Purpose

Answer 'what can this person demonstrate?' without ever treating a claim as proof.

Built
  • Four-tier capability classification: Claimed / Insufficient Evidence / Supported / Strongly Demonstrated
  • Holistic, evidence-based confidence scoring (not a raw evidence-count formula)
  • Capability clustering (Leadership, Analytical, Commercial, Technical, and more)
Tests added: 18
Cumulative regression at this sprint: 87/337
Status: LOCKED
1C-4 · LOCKED
Role & Industry Fit
Purpose

Separate three genuinely different questions instead of one fit score: can you do this today, how much would transfer, and how hard would the move be.

Built
  • Current Fit / Transferable Fit / Transition Effort as three distinct bands
  • Confidence kept separate from fit — never invented, never a percentage
  • Thin-taxonomy protection so incomplete data is never scored as a false good fit
Tests added: 20
Cumulative regression at this sprint: 107/337
Status: LOCKED
3

Career Transition

The problem: Knowing your fit today isn't the same as knowing what to do about a gap, or whether you're actually ready to move.
What you get: Gaps classified by real type (skill, experience, evidence, positioning), free-first recommendations, and an honest readiness read — current, transition, and target, each explained in plain language.
1C-5 · LOCKED
Career Transition & Gaps
Purpose

Turn 'not a perfect match' into a specific, classified reason — not every unmet requirement is a real gap.

Built
  • Six-way gap classification (Skill / Experience / Evidence / Positioning / Information / No Meaningful Gap)
  • Severity and priority modeling, so the system can name the 3 that matter, not list 15
  • Conservative gap-dependency detection (only when the prerequisite is itself a real gap)
Tests added: 19
Cumulative regression at this sprint: 126/337
Status: LOCKED
1C-6 · LOCKED
Learning & Development
Purpose

Don't sell the gap — help close it, with the lowest-cost path considered first.

Built
  • Gap-type-aware intervention taxonomy (Guided Learning, Practice, Document Evidence, Position Profile, Gather Information)
  • Free-first defaults, with the paid alternative always shown, never assumed
  • 'Completion of a course is not proof of capability' encoded directly in the data model
Tests added: 20
Cumulative regression at this sprint: 146/337
Status: LOCKED
1C-7 · LOCKED
Career Readiness
Purpose

Explain readiness rather than score it — a synthesis layer, not a new judgment.

Built
  • Current / Transition / Target Readiness as three distinct, explainable dimensions
  • Insufficient-information handling — missing data is never read as inability
  • Confidence inherited from the underlying Fit assessment, never invented fresh
Tests added: 22
Cumulative regression at this sprint: 168/337
Status: LOCKED
4

Diagnostic Bridge

The problem: Rithavo's separate Application Diagnostic product already produces real findings about a resume — those shouldn't be thrown away.
What you get: A one-way, read-only bridge that lets diagnostic findings strengthen your Career Intelligence profile, without ever letting the two systems blend or overwrite each other.
1C-8 · LOCKED
Diagnostic Bridge
Purpose

Let a resume diagnostic contribute evidence about the person, without ever confusing 'the resume communicates this poorly' with 'the person lacks this capability.'

Built
  • Diagnostic -> Finding -> Evidence pipeline with explicit RESUME_SPECIFIC / CAREER_LEVEL classification
  • Resume versioning, diagnostic deduplication by run id, structural import-safety checks
  • Explicit rubric-version compatibility boundary added post-review, so a future rubric change is rejected rather than silently misinterpreted
Tests added: 30
Cumulative regression at this sprint: 198/337
Status: LOCKED
5

Career Path Discovery

The problem: Most people don't know what else they're actually a fit for — and a tool that just replaces your stated goal with its own isn't trustworthy.
What you get: Rithavo scans its own role/industry taxonomy for paths worth exploring, always labeled clearly as a discovery — your own stated direction never gets overridden.
1C-9 · LOCKED
Career Path Discovery
Purpose

Answer 'which paths are worth exploring?' by scanning the taxonomy instead of requiring every candidate to be named in advance.

Built
  • Deterministic scan across the curated Role/Industry taxonomy, reusing the unmodified Fit engine
  • Meaningful-fit threshold and thin-taxonomy exclusion — no invented ranking score
  • Activated the dormant CareerDirectionAssessment entity, distinguishing the user's stated direction from Rithavo-discovered alternatives
Tests added: 25
Cumulative regression at this sprint: 223/337
Status: LOCKED
6

Professional Evolution

The problem: A single snapshot can't show growth — and Rithavo shouldn't invent a motivational story about why you improved.
What you get: A factual 'since your last assessment' view, built only from what Rithavo already knew — never a fabricated narrative.
1C-10 · LOCKED
Professional Evolution
Purpose

Answer 'what changed since my last assessment, and why?' using only what was already computed and stored.

Built
  • Version-history walkers for CareerTransition, Readiness, and Career Direction (extending the pattern already proven for Capability)
  • Deterministic version-to-version comparison for Capability, Gap, Readiness, and Career Direction
  • Strict what-changed vs. why-it-changed separation — no causal claims invented
Tests added: 30
Cumulative regression at this sprint: 253/337
Status: LOCKED
7

Career Intelligence Synthesis

The problem: Fit, gaps, recommendations, readiness, and evolution were five separate answers — they needed to become one coherent picture.
What you get: One Career Intelligence Summary, composed — never recomputed — from everything already built, respecting every decision you've already made about a recommendation.
1C-11 · LOCKED
Career Intelligence Synthesis
Purpose

Answer 'given everything you know, what should I focus on next?' by composing the existing engines — never a new judgment engine.

Built
  • One coherent CareerIntelligenceSummary assembled from Fit, Gaps, Recommendations, Readiness, and Evolution — all read-only
  • Recommendation-decision-aware filtering (a rejected recommendation never resurfaces as a fresh ask)
  • Cross-engine consistency verified directly against the underlying persisted rows
Tests added: 35
Cumulative regression at this sprint: 288/337
Status: LOCKED
8

Hardening & Integration

The problem: Working intelligence isn't the same as a real product — it needed a real homepage, a real database, real photo storage, and real sign-in.
What you get: The website you're looking at right now, backed by validated Supabase Postgres and Storage, protected by real magic-link authentication — not a prototype anymore.
1C-12 · LOCKED
Career Intelligence Experience
Purpose

Make eleven sprints of Career Intelligence visible, understandable, and useful through the actual website — the same structured data, presented, never recomputed.

Built
  • Career Intelligence overview, Career Paths, and Rithavo Build (this timeline) pages
  • Provenance preserved visually throughout (USER_PROVIDED / DIAGNOSTIC / RITHAVO_DERIVED / RITHAVO_RECOMMENDED)
  • Demo Mode using synthetic data only
  • Homepage storytelling: hero, guided product tour, and human/aspirational journey, connecting straight into the live product — no separate frontend
  • Rithavo Build reframed in plain language for non-technical visitors, real sprint history kept intact underneath
  • Fit engine direct-experience bump made single-pass so the displayed band and its written reasoning can never disagree, with a permanent regression test
Tests added: 31
Cumulative regression at this sprint: 319/337
Status: LOCKED
1C-13 · CURRENT
Real Authentication
Purpose

Replace prototype 'type any email, instantly logged in' with real magic-link sign-in — the last thing standing between this being a demo and being safe to show a real visitor.

Built
  • Signed, single-use, 15-minute email links (itsdangerous) — no passwords, no third-party OAuth
  • Local dev/tests capture the link in-memory (no email actually sent); production sends it through the existing Zoho mailbox once configured
  • One new table (magic_link_tokens) — separate from the Career Intelligence data model, purely so a link can genuinely be used only once, not just checked for expiry
  • Backend infrastructure proof from the same work window: Supabase PostgreSQL and Supabase Storage validated end-to-end (10/10 and 5/5 tests) as the persistence layer this will run on — SQLite remains the local development/test default throughout
Tests added: 18
Cumulative regression at this sprint: 337/337
Status: CURRENT