Selected work · 2026

Jochen Hornung

7 years team leadership in customer support · AI Enablement & Agentic AI

I build agent systems with guardrails in code – and I get people to actually use them.

// ask my assistant

An AI (Claude), not me – it only knows what’s on this page.

Scroll to selected work

Selected work

Working tools I have built with Claude Code every day since mid-2025. Where an interface is in German, the card says so.

jobscout

Multi-agent pipeline with guardrails in code

  • Python
  • Claude Code (headless)
  • Hooks
  • MCP config
  • Cloudflare Pages
  • D1
  • Cloudflare Access

Demo with invented data · Interface in German · Source code is private

Open the demo (opens in a new tab)
jobscout demo: the agent team, one card per role
The agent team. The tags show each role’s access: “im Netz” = on the web, “kennt dich” = knows the user.
Problem
A job search means reading many postings, judging each one honestly and tailoring every application – day after day.
Built
Ten Claude agent roles collect postings daily, score them against a profile, prepare application documents and learn from every piece of feedback.
In use
Nothing goes out without a human sign-off. Decisions happen in a dashboard that works on a phone, and coaches can comment and suggest changes.

Guardrails in code, not trust in the model

  • Split permissions: agents that read private data have no web access; agents on the web never see private data.
  • Each role runs headless as claude -p with --restricted, --strict-mcp-config (every connector off) and its own tool allowlist – only what that role needs.
  • A PreToolUse hook blocks sending: email goes out only through a separate service after a click in the dashboard – never from an agent, never from Claude itself.
  • Source quotes are checked automatically, and a pre-commit hook blocks commits that contain personal data.
  • Outside text – postings, websites, emails – enters prompts only as marked material; suspected prompt injection is flagged.
// how jobscout is built
  1. Web agents · 3 roles Own sandbox, on the web – never see private data
  2. Marked material Outside text enters prompts only as material; injection flagged, quotes checked
  3. Private agents · 7 roles Know the profile – no web, own tool allowlist
  4. Dashboard Cloudflare Pages + D1 behind Cloudflare Access, works on a phone
  5. Human sign-off The user decides; coaches can comment
  6. Send service Sends only after a click in the dashboard

All agents: claude -p headless, --restricted, --strict-mcp-config. A PreToolUse hook blocks sending – no agent, and not Claude itself, can send email.

humanthrust

Open-source plugin for Claude Code

  • Claude Code plugin
  • Skills
  • Hooks
  • Apache-2.0

Open source on GitHub

View on GitHub (opens in a new tab)
humanthrust README on GitHub
README: four skills and the hook that enforces them.
Problem
A skill is only a soft nudge – as the context grows, the model can forget it.
Built
A small plugin with four craft skills – felt design, honest inference, document integrity, lean code – plus a UserPromptSubmit hook that re-injects the honest-inference rules on every prompt.
In use
Installed with two commands. The manual, in English and German, says when to use each part – and when not; the README states plainly that a hook cannot detect hallucinations.

Mein Steuerberater

RAG assistant for one German tax rule

  • RAG
  • Claude Sonnet + Haiku check
  • Workers AI
  • Supabase pgvector
  • Durable Objects

Educational demo · Interface in German

Open the demo (opens in a new tab)
Mein Steuerberater: the five pipeline steps explained on the page
“How does it work?” – the five pipeline steps, explained on the page.
Problem
Tax questions punish confident wrong answers – even on a narrow topic like the German small-business VAT exemption (§ 19 UStG).
Built
A RAG pipeline over a curated base of official guidance: embeddings via Workers AI, retrieval in pgvector, answers by Claude Sonnet with source references. A second model checks every material claim against the cited sources before anything is shown.
In use
Every answer shows its sources, the page says plainly that it is no substitute for a tax adviser, and a fixed monthly budget keeps running costs predictable.

Büro-Autopilot

AI office workflows for a paint shop

  • Workflow design
  • Clickable prototype
  • Human in the loop

Clickable prototype with sample data · Interface in German

Open the prototype (opens in a new tab)
Büro-Autopilot overview with four office tasks
Overview: dictation to invoice, receipt reader, report checker, inspection reminders.
Problem
In a small paint shop, office work competes with the work in the spray booth: invoices, receipts, insurance reports, inspection reminders.
Built
Designed for a real paint shop I’ve designed a website for: a clickable prototype of four AI-assisted office workflows – dictation to invoice, receipts read and matched to the bank, cuts in insurance reports flagged, inspection reminders. Next step: mapping them with the owner, then the real build.
In use
The demo runs on sample data. It already defines where the system would stop and ask, and that an objection to the insurer would only be drafted, never sent.

Chat assistant for zoebarossi.com

Edge assistant in production

  • Claude API
  • Edge (Cloudflare Pages Functions)
  • Knowledge-bound answers
  • Human escalation

In production · chat icon bottom right

Visit the site (opens in a new tab)
zoebarossi.com with the chat assistant open
The assistant on the live site (English version).
Problem
Visitors ask in English, German or Portuguese – and an assistant that speaks for a real person must not make things up.
Built
A Claude-based assistant running at the edge as a Cloudflare Pages Function, answering in three languages. Its answers are bound to maintained knowledge, and it says openly when it doesn’t know.
In use
What it can’t answer, it hands over to the site owner – with the question and the conversation so far.

Enablement before AI

Getting people to change how they work is not new to me.

2016–2017 · Quality Coach & Team Leader Quality

Convergys (client: Apple), Berlin

I led a team of nine internal quality coaches. Together we introduced a COPC-based coaching and evaluation process for around 130 customer advisors – not by announcement, but through the nine coaches as multipliers, with calibration sessions and workshops: the champions principle in practice. I also supported the launch of the chat channel in Germany.

2017–2023 · Team Manager

IKEA Customer Support Center, Berlin

Six years as team manager of twelve people. Internal training sessions, workshop facilitation and cross-site projects – including the new Click & Collect process for Berlin.

How I work

  1. I take a process apart and start with the people who do it every day.
  2. I build the smallest piece that can be tested and check it against real data.
  3. I say early where I stand – and what I don’t know yet.