Skip to content
Jamie Blair

Working automations

Inspect the software before you buy anything.

These are inspectable technical prototypes and project walkthroughs. Each one shows a business problem, the proposed system behaviour, and where a person remains in the loop.

Labelled as demonstrations because that is what they are. No invented clients, no invented results.

01

Invoice Parser

Technical prototype

The problem

Suppliers send invoices as PDFs and someone retypes them into the accounts system - slow, dull, and error-prone.

What the system does

Upload a PDF invoice, get structured JSON back: vendor name, address, line items, subtotal, tax, and total. Uses rule-based extraction first, falls back to an LLM for unstructured layouts. Every field validated against a strict output schema.

Human review point

Extractions below 80% confidence queue for a person to approve; nothing uncertain is auto-accepted.

Processing stages

  1. PDF Upload
  2. Text Extract
  3. Layout Analysis
  4. Regex Patterns
  5. LLM Fallback
  6. Pydantic Validation
  7. JSON Output
PythonpdfplumberLLMAutomation
02

Email Classifier

Technical prototype

The problem

A shared inbox mixes enquiries, invoices, complaints, and spam, and someone sorts it by hand every morning.

What the system does

Paste an email, get it classified: support request, sales inquiry, spam, or internal. Returns the category, confidence score, and suggested priority. Uses a two-stage pipeline: fast rule-based filtering catches obvious spam first, then a trained classifier handles the rest.

Human review point

Low-confidence classifications fall back to a human queue instead of being routed blindly.

Processing stages

  1. Raw Email
  2. Sanitise
  3. Rule Filter
  4. TF-IDF Vectorise
  5. LinearSVC Classify
  6. Output
Pythonscikit-learnNLPFastAPI
03

Ticket Router

Technical prototype

The problem

Support tickets sit unassigned until someone reads and forwards them to the right person.

What the system does

Paste a customer support message and get it routed: urgency level (critical/high/normal/low), department (billing/technical/shipping/general), and a suggested first response. Combines keyword rules, sentiment analysis, and an LLM for response generation.

Human review point

Uncertain routings are flagged for manual assignment rather than guessed.

Processing stages

  1. Customer Message
  2. Sanitise & PII Redact
  3. Parallel Analysis
  4. Route Decision
  5. LLM Response
  6. Output
PythonNLPLLMSupport AI
04

Document Q&A

Technical prototype

The problem

Answers to routine questions live buried in policy documents, manuals, and contracts that nobody has time to search.

What the system does

Upload a PDF, ask questions in plain English, get answers pulled directly from the document with page-number citations. Built on a Retrieval-Augmented Generation pipeline: document is chunked, embedded, stored in a vector database, and relevant chunks retrieved to ground LLM answers in actual content.

Human review point

Every answer cites its source passage so a person can verify it before acting on it.

Processing stages

  1. PDF Upload
  2. Text Extract
  3. Semantic Chunking
  4. Embed
  5. ChromaDB Store
  6. Query Embed
  7. Vector Retrieval
  8. Grounded Generation
  9. Answer + Citations
PythonRAGChromaDBLLM
05

Spreadsheet Reconciler

Technical prototype

The problem

Two spreadsheets are supposed to agree and never quite do - so someone loses an afternoon finding the differences.

What the system does

Upload two CSV files (e.g. bank statement vs accounting ledger) and get a reconciliation report: matched rows, unmatched rows from each source, and discrepancies where amounts differ. Handles 100k+ rows, fuzzy date matching, and configurable tolerance thresholds.

Human review point

The system surfaces mismatches; a person decides what to do about each one.

Processing stages

  1. Source A CSV
  2. Normalise
  3. Hash Index
  4. Source B CSV
  5. Normalise
  6. Exact Match
  7. Fuzzy Match
  8. Report
PythonpandasFinanceAutomation
06

Data Pipeline

Technical prototype

The problem

Data arrives in inconsistent formats and someone cleans it up by hand before anyone can use it.

What the system does

A real data ingestion pipeline that fetches, validates, transforms, and stores structured data. Built with Python, Pydantic schemas, retry logic, dead letter queues, and full audit logging. Used in Market Snapshot and GlobeScraper projects.

Human review point

Records that fail validation are quarantined for review, never silently dropped or guessed.

Processing stages

  1. Data Source
  2. Ingestion (retry)
  3. Pydantic Validation
  4. Transform
  5. Deduplication
  6. Storage
  7. DLQ for failures
PythonETLAutomation

Engineering Lab

Looking for the broader technical archive? Infrastructure, security, machine learning, and experimentation live in the Engineering Lab.

Browse the Engineering Lab

Next step / direct enquiry

Seen something close to your problem?

Describe the process that's costing you time. I'll tell you honestly whether one of these patterns fits - and what it would cost.