Work

Built, shipped, and running.

Four entries: two live platforms, two production browser tools, and the client work behind them. Nothing in development is listed here.

Outreach & CRM reporting platform

own product · live

German-speaking sales teams run outbound out of spreadsheets that stop working a few thousand rows in, and rented CRMs that do not match how they report. This platform replaces both: B2B outreach and CRM reporting with five workspace views — lead list, companies, appointments, follow-ups and closed deals — company cards with shared notes, saved filter views and campaign attribution stamped at send time.

A closed-pool warm-up system and a pre-send verification engine sit in front of every send, and mailboxes connect through the client’s own domains or a bring-your-own OAuth client with encrypted credential storage; the platform’s Google OAuth verification was submitted to and approved by Google Trust & Safety. After diagnosing and fixing a live data-loss incident affecting tens of thousands of lead records, the platform gained a durable save queue, SQLite WAL mode and automated backups. Per-account feature toggles allow staged rollout of new work, and virtual scrolling keeps large lists usable. It runs live in production.

Node.js · Express · SQLite · React · Vite · cPanel/Passenger

Mailmerge platform

own build · live

A mail merge platform built from scratch on the Gmail API: campaigns composed against a contact list and sent through the sender’s own mailbox. Production taught it the hard lessons — OAuth token-exchange failures on shared hosting were diagnosed and fixed, and the database was moved outside the app folder so a redeploy cannot destroy data. Backups run automatically with 14-day retention. It is live.

React · Node.js · SQLite · Gmail API

Two Chrome extensions

own builds · in production use

Lead research has two recurring bottlenecks: getting structured data out of LinkedIn Sales Navigator, and getting verified contact data off German Impressum pages. Two Manifest V3 Chrome extensions remove them. The first extracts lead data from Sales Navigator result pages. The second scrapes Impressum pages for name, email, phone — normalised to E.164 — and company, with per-row state persistence, skip/resume logic and TSV export. Both are in production use in ongoing list-building work.

Chrome Manifest V3 · JavaScript

Qualification & data projects

client work · described by sector

Client work, described by sector — client names do not appear on this site. ICP qualification and list preparation delivered for DACH companies in industrial heat pumps, robotic welding software, battery storage, workplace consulting, smart heating, SAP consulting, wind energy and OEM diagnostics. The pattern is consistent: the ICP is extracted from the kick-off call transcript, prospects are classified Fit / Partial fit / Not fit with competitors flagged, and lists are delivered in versioned rounds with an approval gate at each one.

Apollo.io · Clay · Python · pandas

Tell me what you are trying to reach.