Cruiser Aviation Platform - AI Document Pipeline & Self-Auditing Logbook
An AWS-native aviation platform rebuild featuring a Claude-powered document extraction pipeline that hit 100% rating recall on production licenses, plus a flight logbook that audits itself against GPS telemetry and Hobbs meter physics.
Problem
Pilots at a flying school needed to submit EASA licenses, medical certificates, and radio certificates, but manual data entry created errors - wrong expiry dates, transposed license digits, duplicate and missing ratings, and even documents uploaded to the wrong member's account. Historical records were scattered across a school email inbox with no structured import path. The combination of human error at initial entry and no automated verification meant the database had silently accumulated bad data with no way to know. Flight logging had a parallel integrity problem: the Hobbs meter record could drift from reality any time a flight went unlogged or a data-entry error caused the meter to appear to run backwards. With ~2,800 historical GPS trips ingested and only ~82% auto-matched to flight logs, there was a meaningful gap between what the tracker recorded and what the logbook showed. Both problems shared a root cause: no system closed the loop between the raw evidence (a scanned document, a GPS track) and the structured record, so errors were invisible until they mattered.
Solution
For document extraction, a Claude on Bedrock pipeline (Opus, forced-tool structured output) extracts every field from photographed or uploaded EASA licenses with per-field confidence scores and verbatim source text. Accuracy was engineered deliberately: large images are sent as a full-page overview plus overlapping native-resolution tiles (PDFs rasterized at 200 DPI via poppler), which took rating recall to 100% on the production eval set - including a Night rating row missed by both the model and the original human data entry. An adversarial second pass re-reads scans character by character to catch 1/7, 0/8, and diacritic confusions, flagging disagreements amber for pilot review. The eval harness loads the same prompt.json and schema.json used in production and runs extraction-vs-database diffs; its first run surfaced 20 suspect values across 13 licenses. The same DocumentTypeSpec engine powers medical and radio certificate wizards. Historical documents were recovered via a 5-stage Gmail harvest: IMAP sweep, deterministic no-AI triage, Sonnet classification, human-reviewable proposal, and Opus extraction with idempotent import. The flight logbook walks each aircraft's Hobbs meter chronologically and injects synthetic rows wherever numbers don't line up - amber "Flight missing" rows for gaps of 0.2 h or more, and red rows where the meter runs backwards. A missing-flight row is matched against the unmatched GPS trip in its time window and rendered like a real flight entry, with a one-click "Create from tracked flight" action that pre-fills the log form and auto-links the GPS trip on save. The fleet map uses MapLibre with a grey positron base, terrain relief, and an openflightmaps VFR overlay at 10-second polling. The platform was built in 194 commits over 11 days in a human-plus-Claude Code loop, with the same skepticism applied to the build agent (mandatory cdk diff before any Cognito-touching deploy) as to the runtime models (deterministic transaction paths, echo-back confirmation, adversarial second reads, human review screens).