
I spent a good part of the last year around the records function of a Transport Canada regulated scheduled airline. The paperwork is licences, medicals, ratings and training certificates, hundreds of documents in total, and a crew member can't legally fly unless all of it is current. At this operator, keeping it current was a part-time job shared by dispatch, the chief pilot and the lead flight attendant. Call it 40 hours a month of manually typing records into the old system.
That airline now runs 42 active crew and nearly 600 certifications through the system. It does the reading, cross-checking and expiry tracking, and the same people spend 10 to 20 minutes a week on records now, reviewing and approving instead of typing. Each approval is one click. The system we built is their system of record across both fleets. Every certification, sim session and currency date lives in one place instead of the spreadsheet the operation used to run on.
Documents come in on their own
Certificates and training records still arrive the way they always have: email attachments from training providers, uploads from crew, scans from the office. The system watches those channels and pulls each document in automatically, so nobody re-types anything. Every inbound document lands in a review queue first. Nothing enters the record without a human seeing it.
The AI reads it and reports how sure it is
For each document the AI extracts the substance and checks it: right crew member, right rating, valid dates, correct issuing authority. If something doesn't line up, it says so instead of burying it.
It also reports its own confidence. A clean certificate shows up pre-verified. A messy scan shows up flagged, "recommend reject, extraction uncertain," with the mismatch spelled out. The AI stops at a recommendation. It gets things wrong often enough that we never wanted it approving anything.

A person approves every record
The AI never approves a record. We built it that way from the start, not as something added on afterward.
The chief pilot sees the original document next to what the AI extracted and checked. If he agrees, approval is one click. If he doesn't, he edits or rejects the record right there. Everything that makes it into the system of record has crossed a qualified postholder's desk. The AI does the reading and cross-checking that used to eat the week.
Consent works the same way. Crew who haven't opted in to AI extraction are processed manually by staff. We built the pipeline PIPEDA-consent-first rather than adding consent on afterwards.

Approved once, correct everywhere
When a record is approved it flows automatically to scheduling (FL3XX) and the pilot records database. Nothing gets typed twice, which is the only reliable way I know to keep systems from drifting apart. It's in daily use. Records were moving through it the week I wrote this.
It covers more than certificates
The same system tracks simulator and initial training, medicals and flight-log currency, and it enforces qualification gates, so an unqualified assignment gets caught before it happens rather than after. Expiry alerts go out ahead of the date, so the chief pilot is scheduling recurrent training instead of discovering a lapsed cert on a duty day.
Every read and write is logged. When a regulator asks who approved a record and when, the answer is already there. Nobody has to reconstruct it from an inbox.
Results
- Records time down from about 40 hours a month of manual entry to 10 to 20 minutes a week of review and approval.
- 42 active crew and nearly 600 certifications in one system, with a qualified postholder approving every record. The manual records workload it replaced is gone.
- Two fleets, one system of record.
- Transport Canada reviewed the system.
Benjamin Thomas
ForIT Team

