IQ.

Software · Case study

From paper files to a searchable archive — automatically.

Record Digitisation is an automated pipeline that takes scanned paper records, splits them into individual documents, works out what each one belongs to, classifies it and files it, with anything uncertain routed to a human. Built from scratch and proven on a Nigerian university's entire staff archive.

0staff records handled
0documents split, matched and filed
0automated stages, no retyping
0single automated campaign for the whole archive

The problem

A cabinet of paper is not an archive.

Records pile up for decades: appointment letters, CVs, payslips, certificates, forms and correspondence. Finding one means finding the right cabinet, the right folder, the right page.

Scanning alone doesn't fix it. You get 150–300 page PDFs with dozens of different people's documents merged together, covers scanned upside-down, names the OCR can't read. Typing it all into folders by hand takes a team months and still produces mistakes.

It was proven on staff personnel files, but the same pipeline suits any organisation sitting on a large paper archive: student records, patient files, legal and civil-service registers.

How it works

Five stages, one pipeline.

01

Split

Each scan can hold dozens of staff documents. Boundaries are found in layers: DOCSTART barcodes on divider pages, brown divider cards detected by colour calibration, OCR on page corners as a fallback, and AI vision as the last resort.

02

Match

The staff member's name is read and matched against the registry with exact normalised matching (titles like “Dr.” and “Prof.” and word order are handled), then fuzzy matching with a confidence score. The PDF filename is a fallback when OCR garbles the name.

03

Classify

Every document is labelled by type (CV, appointment letter, payslip and more) using pattern matching plus AI, with a confidence score on each.

04

File

Approved documents are named DocumentType_Date.pdf and filed under StaffName_StaffID/Section/, with a metadata file written beside each: staff ID, department, page count, extracted text and a SHA-256 integrity hash.

05

Review

Anything it can't match with confidence goes to a manual review queue. Nothing is guessed, and nothing is silently misfiled.

See it work

A scan batch, start to finish.

A simulation of one scan file moving through the pipeline. It uses invented sample names; no real records are shown.

What it produces

A clean archive you can search.

// one folder per staff member
Sample_Adaeze_S0231/
├─ Open/
│  ├─ CV_2021-03-12.pdf
│  └─ Payslip_2026-08-31.pdf
└─ Master/
   ├─ Appointment_Letter_2019-02-04.pdf
   └─ Promotion_Letter_2023-07-19.pdf
// metadata written beside every file
{
  "staffId": "S0231",
  "name": "Sample, Adaeze",
  "department": "Sample Department",
  "faculty": "Sample Faculty",
  "documentType": "Appointment Letter",
  "pages": 3,
  "scanDate": "2026-09-14",
  "sha256": "9f2c…e41a",
  "ocrText": "…"
}

Built for messy reality

Real scans are never clean.

  • Garbled OCRNames are matched through noise, with confidence scoring and a filename fallback.
  • Upside-down coversPages are detected and corrected before reading.
  • 150–300 page scansMulti-staff files are split automatically, however long they run.
  • Overnight batchesA headless mode processes hundreds of files with no one at the screen.
  • Flaky USB drivesDisconnections are survived: it restarts and picks up where it left off.
  • Human in the loopUnmatched or low-confidence documents wait in a manual review queue.

Under the hood

Desktop-grade, built to last.

C# / .NET 10WPFPdfPigTesseract OCR AI vision & language modelsSQLiteEF Core Full-text searchPowerShell monitoring

AI models are used only where the local methods fall short. Where records are sensitive, that behaviour can be reviewed and configured with your IT team.

Have a paper archive to tame?

Tell me about your records, how many files, what condition, what you need the archive to do. I'll show you how the system would handle them.

ianquadril@gmail.com