Skip to content
PersonalFastAPI + SQLite · React dashboard · multiple source adapters · durable outbox

Clinical-Lab Job Decision Dashboard

Family-user-informed product design, frontend/backend, and operations

2026-07-01 — present

A mobile-first dashboard that normalizes job-platform and hospital-career-page sources, explains deadline/region/employment recommendations, and keeps account-scoped application state.

System Architecture

Clinical-Lab Job Decision Dashboard architecture diagram

Problem Solving

1

Source-specific deadline, region, and employment formats make comparison and prioritization difficult

Solution Process

Normalize fields at ingestion and retain the collected source link, freshness, and open state in the read model

Result

One screen provides deadline, region, employment filters, and recommendation reasons

2

Duplicate workers or transient failures can cause duplicate sends or missed postings

Solution Process

Separate a dedupe-key outbox, atomic lease, bounded retry, and watermark advancement after confirmed delivery

Result

An explicit state contract that does not complete the posting stream before confirmed delivery

Synthetic scenarios

Deterministic fixtures reproduce the code paths and boundaries without operational or personal data.

Advance the watermark after confirmed delivery
Advance the watermark after confirmed deliveryThis synthetic notification flow separates dedupe, lease, and delivery confirmation so concurrent workers and transient failures remain explicit.

Project Description

Adapters collect job platforms and hospital career pages into one normalized read model for posting ID, deadline, region, and employment type. Public discovery stays separate from account-scoped interest/application/interview/result state. Notifications handle duplicate workers and transient failures through dedupe keys, atomic leases, and watermark advancement only after confirmed delivery. The public case excludes real applications, family data, operating URLs, and notification destinations.

Highlights

  • Multi-platform and hospital-source adapters with a normalized read model
  • Explainable recommendations from collected source links, deadline, region, and employment type
  • Account-scoped interest/application/interview/result tracker
  • Durable outbox with dedupe, lease, and delivery confirmation

Tech Decisions

  • Normalize source-specific deadline text once at ingestion to keep query/filter semantics consistent
  • Separate public discovery from account-scoped application state
  • Tie outbox completion and watermark advancement to delivery confirmation to make the loss boundary explicit

Lessons Learned

  • A family-facing product earns trust by showing the collected source link and decision reason before automation.
  • Notification reliability starts with explicit completion and watermark boundaries, not retry counts alone.

Tech Stack

PythonFastAPISQLiteReactTypeScriptPlaywrightDurable Outbox