Work · Six builds

Builds.

Working software we designed, built, and run. Eleven builds in total: six in depth below, three more in brief, two internal tooling only. Internal builds are labeled as such. No client results are claimed until a client is verified, and no screen below contains real customer data.

Fixed-scope installations · Monthly service plans · A reply within one business day

Every screen on this page is drawn. Illustrative reconstruction, no real records.

Internal build · 01 / 06

Shipping document automation

Export shipments arrive as supplier PDFs, native or scanned. Somebody retypes weights, pallet counts, line items, and party addresses into a filing, a carrier email, and a spreadsheet, every shipment, with the transcription errors that implies.

  • A PDF extraction pipeline with three fallbacks, from native text to OCR for scanned documents, run off the main event loop.
  • Automatic customer creation with fuzzy matching, so the receiving party is matched on upload instead of picked from a dropdown.
  • Document generation with auto-fitting text, so data never bleeds across the boxes of a fixed government form, plus templated email bodies and a spreadsheet export driven by a mapping file.
  • A watch folder with per-customer routing: drop PDFs in, shipments appear on the dashboard at pending status with a needs-attention table.
Stack

Python 3.10 · FastAPI · SQLAlchemy 2.0 async + aiosqlite · Jinja2 + HTMX + Alpine.js · pdfplumber · PyMuPDF · RapidOCR · openpyxl · watchfiles · Docker

Status

Running, internal. Carrier and email sending are wired but credential-gated; the interface shows a “not configured” badge rather than faking a send.

Capability

AI transformationDevelopment & integrations

Pack list → filing

Internal build · 02 / 06

Call system with an auto-logged CRM

Call activity dies on a notepad. Nobody knows what was said, who answered, or which approach got a reply, so nothing can be improved on evidence.

  • Two-leg dialing: the system rings the operator’s cell showing the business number, bridges to the other party on answer, records both legs, and pulls status and duration on hangup.
  • Local transcription of every recording, so audio never leaves the machine, with an inbox mode that transcribes and files inbound voicemail the same way.
  • A five-question debrief after each call that writes one structured row: outcome, role reached, sentiment, loss reason, and the verbatim reply.
  • An inbound flow that rings the cell, takes a recorded voicemail, and notifies, plus a form receiver that files the submission and sends the sender an instant plain-text reply.
Stack

Python · Twilio REST + Studio · faster-whisper · SQLite + CSV · Google Apps Script + Sheets

Status

Running. Number live, dialer in daily use, spreadsheet CRM live, carrier campaign registration in progress.

Capability

Development & integrationsSupport & protectionMarketing & performance

Call → logged row

Internal build · 03 / 06

Website technology fingerprinting

Working out what a business’s website is built on, and what software it already pays for, is slow manual research that nobody can reproduce or check.

  • Platform and vendor detection across the common site builders, storefronts, and agency-built stacks.
  • Detection of paid tooling already in place: chat widgets, booking, call tracking, ad pixels, and email tools.
  • Extraction of published contact details and the structured data a site publishes about itself, plus staleness tells such as an old copyright year.
  • Batch mode from a URL file with CSV and JSON output, where every fact is tagged with the page it was read on, nothing behind a login and no volume scraping.
Stack

Python · requests · BeautifulSoup · CSV/JSON

Status

Running. Output feeds our own research records, and it is the engine behind the free assessment.

Capability

Web & digital presenceMarketing & performance

URL → sourced record

Internal build · 04 / 06

Short-form content system with retention analytics

Short-form video is normally judged on taste. Without instrumentation nobody can say which render decision caused a result, so every week starts from opinion.

  • A render engine with per-format scripts: crop and zoom, caption burn-in, loudness normalization to a target, face tracking, and cover generation.
  • Automatic feature extraction at render time, roughly twenty-four attributes per clip, written to a sidecar file and the database with no manual entry.
  • A quality gate before anything ships: a contact-sheet montage, a cuts audit, and a loudness check.
  • An analytics reader that pulls the platform’s own per-video insights, including the full per-second retention curve, into a time-series table, with an experiments module that reports lift on an explicit evidence ladder.
Stack

Python · SQLite · Playwright + Chrome DevTools Protocol · ffmpeg · yt-dlp · Whisper word timestamps · NumPy

Status

Running.

Capability

Marketing & performanceAI transformationDevelopment & integrations

Retention curve

Internal build · 05 / 06

Marketplace data aggregation and decision scoring

Deciding what a listing is worth means watching six sources continuously and knowing what comparable items actually sell for. That is a full-time job nobody does well by hand.

  • A staged pipeline: discover, dedupe, tag, signal, value, calibrate, score, alert, and persist, with retries and structured logging at every stage.
  • Six source scrapers feeding a fast keyword tagger for category, brand, condition, and age.
  • A multi-source comparable valuation layer with an eight-signal weighted conviction score, a net-margin calculation, and a calibration pass.
  • Alerting to chat and SMS, a dashboard API, a React front end, and a fifteen-table async database with a per-module test suite.
Stack

Python 3.11+ · Pydantic v2 · SQLAlchemy async + aiosqlite · Alembic · httpx · Starlette + uvicorn · Playwright · React 19 + Vite

Status

Running, internal. The generative path is deliberately switched off in configuration: production scoring is deterministic and auditable.

Capability

Development & integrationsAI transformation

Listing → conviction score

Internal build · 06 / 06

AI video production pipeline with a cost-and-acceptance ledger

Generated video quality is unpredictable and the spend is invisible. Without a ledger nobody can answer what an accepted clip actually costs, or which approach produces them.

  • A command-line pipeline submitting text-to-video and image-to-video jobs with resolution, duration, and seed control, and multi-attempt batching.
  • Per-model and per-resolution cost estimation applied to every attempt at submission time.
  • A generation ledger recording model, provider, mode, subject type, resolution, seconds, cost, seed, prompt, and a keep or kill decision with its reason.
  • A report command computing keep-rate and cost per accepted clip by model and by subject type, with CSV export.
Stack

Python · SQLite · hosted generative-video API · stdlib HTTP

Status

Internal tooling.

Capability

Marketing & performanceAI transformation

Ledger → keep rate

Smaller tools

Also built.

Smaller internal tools, listed because of what they prove rather than what they are.

01

Faithline — data integrity

A searchable archive where nothing reaches the public database until it has been verified, with an append-only review layer, a persistent correction inbox, and backups whose restore is actually tested.

Development & integrations · Support & protection

02

VoiceLink — local voice control

Push-to-talk control of several running development sessions, transcribed on local GPU hardware and read back through headphones, with no audio sent anywhere.

AI transformation

03

Scout — agent architecture

A long-running research agent with persistent memory, a journal it writes to itself between sessions, every file write forced through a jail module, and a kill-state check at every heartbeat.

AI transformation

Also on the list and not written up here: the publishing infrastructure behind this site, agent status dashboards, and a local model server.

What this shows

Your build is not on this page.

None of these were built for a trades business, and we do not pretend otherwise. What they show is how we work: read the real process first, write the target down, build against a copy, and measure the result on your data rather than ours.