Skip to content
Lucas BarriosApplied AI & Operational Transformation

Self-directed build

AI Readiness & Diagnostic Platform

A full-stack diagnostic platform that scores an 11-question intake across six weighted dimensions using Claude Sonnet, holds every result for human consultant approval before delivery, and offers an optional Stripe-paid deliverable kit.

Context

A full-stack diagnostic platform that processes an 11-question user intake and returns a structured readiness roadmap scored across six weighted dimensions by Claude Sonnet.

Every result is held in a pending state in Supabase until a human consultant approves it in the admin dashboard — satisfying EU AI Act Article 14 mandatory human oversight before the result reaches the user.

Problem

Standard diagnostic tools either deliver instant unreviewed model outputs or require fully manual consultant processing for every case — neither scales responsibly.

The design challenge was automating the scoring while preserving a structurally enforced human approval gate at delivery.

Workflow

A user completes the 11-question intake. Claude Sonnet scores the response across six weighted dimensions and generates an overall readiness score, dimension breakdown, and month-by-month roadmap as structured JSON.

The result is stored as pending in Supabase and an n8n webhook fires a notification to the consultant admin dashboard. The consultant reviews and approves before Resend delivers the result email to the user.

01

11 questions

User intake

User completes the 11-question form. FastAPI receives the submission and passes it to the Claude Sonnet scoring layer.

02

Structured JSON output

Claude Sonnet scoring

The Anthropic SDK sends a structured prompt; Claude returns a JSON object with overall score, six dimension scores, and a month-by-month roadmap. LangSmith traces the call.

03

Pending state

Human review gate

Result stored as pending in Supabase. n8n fires a webhook notification to the consultant admin dashboard.

04

Approved delivery

Approved delivery

Consultant approves in the admin dashboard. Resend sends the result email. Optional Stripe Checkout unlocks the paid deliverable kit.

Architecture

FastAPI handles intake processing, Claude Sonnet scoring via the Anthropic SDK, and Stripe Checkout for the optional deliverable kit. Supabase (EU-Frankfurt) stores all diagnostic results. LangSmith (EU endpoint) traces every model call for observability.

  • FastAPI with slowapi rate limiting on all scoring endpoints.
  • LangSmith EU endpoint (eu.api.smith.langchain.com) for full model call tracing.
  • Supabase Frankfurt for GDPR-aligned data residency.

Scoring layer

Claude Sonnet scores six weighted dimensions into structured JSON via the Anthropic SDK. LangSmith (EU endpoint) traces every model call.

  • Anthropic SDK
  • LangSmith EU tracing
  • Structured JSON output

Data and review layer

Supabase (Frankfurt) stores all results in a pending state. n8n fires admin notifications. The consultant admin dashboard handles review and approval.

  • Supabase Frankfurt
  • n8n notifications
  • Admin approval dashboard

Delivery and payments

Resend sends the approved result email. Stripe Checkout handles the optional deliverable kit purchase with webhook signature verification.

  • Resend transactional email
  • Stripe Checkout
  • Webhook verification

Governance

No diagnostic result reaches a user without explicit consultant approval. The pending state in Supabase is a data constraint, not a policy — the Resend delivery step cannot fire without an approved flag.

  • Results stored as pending until consultant sign-off in the admin dashboard.
  • EU AI Act Article 14 human oversight satisfied by system architecture, not process.
  • LangSmith traces available for every scoring decision.

Metrics

The scoring model produces an overall readiness score (0–100), a breakdown across six weighted dimensions, and a structured month-by-month roadmap as a single JSON output.

LangSmith observability allows review of every Claude call, output structure, and any schema deviations.

Diagnostic questions
11

Structured intake scored by Claude Sonnet across six weighted dimensions.

Scored dimensions
6

Language, Education, Pathway Fit, Timeline, Financial, and Documentation.

Roadmap

The platform is live and actively iterated. Current focus areas are structured output consistency, deliverable kit expansion, and load testing against the rate limiting layer.

  • Intake, scoring, human review, and Stripe kit purchase are all in production.
  • slowapi rate limiting and LangSmith observability are in place for production scale.
  • Structured output schema validation is the active reliability improvement.

Live

Production platform

Intake, scoring, human review, result delivery, and Stripe kit purchase are all in production.

Active

Output reliability

Improving structured JSON output consistency and expanding the deliverable kit scope.

Next

Scale controls

slowapi rate limiting and LangSmith observability are in place; load testing and SLA monitoring are next.

Reflection

The most consequential design decision was where to place the human gate — after scoring but before delivery, enforced at the data layer.

That constraint shaped the entire system: the Supabase schema, the n8n notification logic, the admin dashboard, and the Resend trigger all follow from the decision that no model output reaches a user without explicit human review.

Technical depth

System assumptions and operating controls.

Architecture diagram

FastAPI processes the 11-question intake, Claude Sonnet scores six weighted dimensions into structured JSON, and every result waits in Supabase as pending until a consultant approves in the admin dashboard. Resend delivers the approved result; Stripe handles the optional kit purchase.

  1. 01

    Intake

    User completes 11-question form. FastAPI endpoint validates the submission and queues it for scoring.

  2. 02

    Claude scoring

    Anthropic SDK sends a structured prompt to Claude Sonnet. LangSmith (EU) traces every call. Output is a JSON object: overall score, six dimension scores, and a month-by-month roadmap.

  3. 03

    Human review gate

    Result stored as pending in Supabase (Frankfurt). n8n fires a notification to the consultant admin dashboard.

  4. 04

    Delivery

    Consultant approves in the admin dashboard. Resend sends the result email. Optional Stripe Checkout unlocks the deliverable kit.

Process reasoning steps

  1. Step 1

    Intake

    Receive and validate the 11-question user submission via FastAPI.

  2. Step 2

    Score

    Claude Sonnet produces structured JSON: overall score (0–100), six dimension scores, and a month-by-month roadmap.

  3. Step 3

    Pend

    Store result as pending in Supabase. n8n fires a webhook notification to the admin dashboard.

  4. Step 4

    Review

    Human consultant reviews the scored diagnostic and approves or returns it for revision.

  5. Step 5

    Deliver

    Resend sends the approved result email to the user.

System component reference

Tool

Anthropic SDK — Claude Sonnet

Purpose

Score six weighted dimensions and generate a structured readiness output.

Input

11-question intake responses

Output

JSON: overall score, dimension scores, month-by-month roadmap

Guardrail

Output stored as pending until consultant approval — never delivered directly.

Tool

LangSmith (EU endpoint)

Purpose

Trace every Claude call for observability and output schema review.

Input

Model inputs and outputs

Output

Trace records at eu.api.smith.langchain.com

Guardrail

EU endpoint used for GDPR-aligned data residency.

Tool

Stripe

Purpose

Handle optional paid deliverable kit purchase via Checkout.

Input

User checkout intent

Output

Stripe Checkout session; webhook confirmation

Guardrail

Webhook signature verification on all Stripe events.

Tool

Resend

Purpose

Deliver approved diagnostic results to users.

Input

Approved result from admin dashboard

Output

Transactional email with readiness score and roadmap

Guardrail

Email sent only after explicit consultant approval — Supabase flag required.

Evaluation metrics

Structured output compliance

Valid JSON schema on every scoring call

LangSmith traces reviewed for schema compliance and anomalous outputs.

Human review gate integrity

Zero results delivered without consultant approval

Supabase pending state enforced at the delivery step — no approved flag, no Resend call.

Risk and failure scenarios

Malformed Claude output

Scoring fails silently or returns an incomplete dimension breakdown.

Structured output parsing with fallback error state; LangSmith traces flag schema deviations.

Stripe webhook failure

Kit purchase not confirmed; user not granted kit access.

Webhook signature verification and idempotent event handling.

Approval bottleneck

Results queue if the consultant reviewer is unavailable.

n8n fires an immediate notification; admin dashboard surfaces all pending results.

Human review checkpoints

Diagnostic result review

Human consultant

Approve or return the scored diagnostic before it is delivered to the user — required by EU AI Act Article 14.

Next step

Review the supporting profile.

Use CV access and LinkedIn for background, or return to selected work for more examples of structured AI thinking.