Incident Management · AI Automation · Platform

How do you think I found this job?

An automated pipeline scanned 12,712 postings across eight job platforms, scored them against my background using a self-hosted language model, and had Claude tailor the application you're holding. I reviewed it and pressed send. It runs at 8am every morning on a server in a rack in Germany.

I've spent twenty years keeping critical systems alive. These days I build the ones that keep themselves alive.

5 services under supervision 8 job sources 3 people on one pipeline ~99% of inference self-hosted

What I built

Five systems, one platform

Not demos. These run every day, they serve real people, and when they break it's my weekend. That constraint shapes everything below.

Brody

AI companion

Conversational assistant with a hybrid brain: a local model handles everyday chat for free, with a hosted model as fallback. Persistent memory, tool use, and a real voice.

Next.jsOllamaClaudeElevenLabsTool use

Scripted demo + walkthrough coming

Job Engine

The one that found you

Multi-tenant pipeline across eight ATS platforms. Two-stage scoring, LLM-tailored resumes and cover letters, and a human approval gate that it will not cross.

NodePlaywrightOllamaClaudecron

Sandbox coming

Scholarship Engine

Same pattern, new domain

The job engine retargeted at college scholarships. Different sources, different scoring lanes, same spine. Each student's board gets its own skin, because a 16-year-old will not use ugly software.

NodeThemeable UIDeadline tracking

Open the live sandbox →

The Coil

Family hub

Shared calendar, chore chart, and lists for a household of four, with recurrence rules and an assistant wired into all of it. The thing my family actually opens every day.

Zero-dependency NodeOllamaPWA

Sandbox coming

Medusa's Coil

The platform underneath

The boring part that makes the rest possible. Containers, reverse proxy with automatic certificates, process supervision, a vector store, scheduled work, and a local inference server.

DockerCaddyPM2Postgres/pgvectorn8nOllama

How it fits together

One spine, many surfaces

Every app shares the same platform. Add a source at the left, add a surface at the right, and the middle doesn't change. That's the whole design.

Sources Engine Surfaces Greenhouse · 62 Workday · 14 Ashby · 14 Lever · 7 Adzuna Remotive Arbeitnow Fetch · dedupe Eligibility gate Heuristic score Local model · scoring Hosted modeltailoring only Dashboard Assistant Family hub Docker · Caddy · PM2 · Postgres/pgvector n8n · Ollama · cron · automatic TLS

Tradeoffs

Four decisions worth defending

Anyone can wire an API to a cron job. The interesting part is what you choose not to do.

Put the cheap model where the volume is

Scoring twelve thousand postings through a hosted API would cost more than it saves. A local model does the bulk pass for nothing; the paid model only writes the handful of documents a human will actually read. Roughly 99% of inference happens on my own hardware.

It never presses submit

Full automation was the easy build. It fills the form, attaches the documents, answers the standard questions, and then stops. No keyword stuffing, no invisible text, no bot submissions. A person reviews every application, because a person's name is on it.

Move the work off the laptop

The first version only ran when my desktop was awake, which meant it quietly stopped running. Now it lives on a supervised server with scheduled runs and its own log. Reliability came from changing where it runs, not how it's written.

Publish the result you didn't want

I ran a fixed-effects analysis on a hypothesis I believed, using federal data. It came back null. I wrote that up instead of burying it. An engineer who only reports confirming results isn't measuring, they're marketing.

Receipts

Numbers from real runs

Everything here comes from production logs, not a pitch deck.

12,712
Postings indexed in a single scan
97
Company boards and tenants polled directly
3
People served by one multi-tenant pipeline
5
Services under process supervision, auto-TLS
~99%
Of model calls served from self-hosted inference
8am
Daily, unattended, with no machine of mine awake
Why this looks the way it does. My day job is senior major-incident and problem management for a large consumer platform: thousand-service catalogs, tight engagement and resolution targets, 24/7 on-call across two continents. That work teaches you which corners are load-bearing. Everything on this page is the same instinct applied somewhere I own the whole stack, so nothing is hypothetical.

Specifics on employers, scale, and outcomes are in my resume, available on request.

Who's writing this

Joseph Hoskins

Twenty years of keeping things running, from US Air Force network operations and cybersecurity through enterprise IT at Unisys and the American Red Cross, to senior major-incident management for a large consumer platform today.

What I actually enjoy is the seam between operations and automation: the place where a recurring human cost becomes a system that handles it, with the judgment left in human hands. That's what incident management taught me, and it's what every project on this page is a version of.

I'm looking for senior work in AI operations, platform, and automation, remote or with relocation support. If any of this looks like your problem, I'd like to hear about it.