I take a manual business process and make software do it.

End to end, in production, for businesses that are not technical. A roofer who cannot answer his phone on a roof. A sales team exporting CSVs to work out how last month went. A list of 2,277 companies that has to become the forty worth calling.

I have built the system and sold the thing the system does, so I can sit with a non-technical owner, work out what they actually do all day, and ship the integration that replaces it.

Cape Town, South Africa · UTC+2 GitHub malvin@musanhi.com LinkedIn

Work

Musanhi — AI phone receptionist

Live · paying clients

Retell · Twilio · Zapier · cal.com · Next.js · Vercel · Supabase · Pipedrive

A voice agent that answers inbound calls for UK roofing contractors, qualifies the caller, books the job into a live calendar, and sends the owner a written summary after the call. Sold at £395/month.

The problem. A roofing contractor is thirty feet up with his hands full. The phone rings, and a missed call is a lost job — not a lost lead, a lost job, worth more than the software costs in a year. Voicemail does not fix it, because nobody leaves one.

Decisions worth naming Hear it answer a call at musanhi.com

CloudTalk MCP server

Python · 20 tools

Python · MCP SDK 2.x · httpx · SQLite · HTTP Basic auth

An MCP server over the CloudTalk REST API, so call history, agent activity and conversation-intelligence data can be queried in plain language from a Claude chat — plus a standalone CLI that runs from cron.

The problem. CloudTalk ships no official MCP server, and the third-party wrappers expose only contact and activity CRUD — not call history, recordings, or the AI layer. Answering "how did outbound go last month" meant exporting CSVs by hand, every month.

Decisions worth naming

UK roofer lead pipeline

Node · 6 stages

Node.js · Apify (Google Maps) · Companies House API · Pipedrive API

Scrapes UK roofing contractors from Google Maps, enriches them against Companies House, scores them for missed-call propensity, and pushes the ones worth calling into the Pipedrive Leads Inbox with a call brief attached. 2,277 businesses in, 1,577 through the filters, ranked.

The problem. The product is sold on "a missed call is a lost job", so the target is not a roofer — it is a roofer who demonstrably cannot answer his phone. No list you can buy encodes that, so the ranking had to be built rather than bought.

Decisions worth naming

Funnel, calculator and revenue plumbing

TypeScript · server-side events

Next.js App Router · TypeScript · Vercel · Supabase · Pipedrive · Meta Pixel + Conversions API

The marketing site behind all of it: an interactive revenue-leak calculator, a gated assessment funnel writing through /api/lead to Supabase and on into Pipedrive with UTM and fbclid carried through, and instrumentation designed so the numbers can be trusted.

The problem. Ad platforms optimise on the events you send them. A real share of conversions never reach a browser pixel because of ad blockers, so the platform learns from a biased sample and the funnel cannot be diagnosed honestly.

Decisions worth naming

What I'm good at

Voice and AI agents

Retell and Twilio in production on a live line. Prompt and knowledge-base design, post-call summarisation, and the handoffs that only show up once real callers are on it.

Integration against hostile APIs

CloudTalk, Companies House, Pipedrive, Apify, Meta Conversions API, cal.com. Rate limits, wrong documentation, fields that lie, and local caching layers when the API cannot be the query layer.

MCP and tooling

Wrote an MCP server from scratch against an API that had none — 20 tools, four hosts, a SQLite mirror, and a smoke test that reports which capabilities an account actually exposes.

Revenue plumbing

CRM engineering, lead scoring, deduplication and suppression, server-side conversion tracking, funnel instrumentation, and compliance screening on outbound.

Shipping to non-technical users

Everything above runs for people who will not read a log. Human review gates before irreversible steps, dry runs before spend, and verification commands that say exactly what is wrong.

Talking to the customer

Years of cold outbound and closing before any of this. I can run the discovery call, hear the actual process under the stated one, and scope the build from it.

Background

Founder / Engineer, Musanhi — June 2025 to now. Built, sold and run the product end to end. Selling it myself is where the product decisions came from: the callable demo and the post-call summary both exist because of objections raised on real calls with sceptical owners.

Client acquisition, Closing Consulting — May to August 2026. Outbound for a consultancy that builds and runs the sales operation for coaching and agency businesses doing $30K–$1M a month. Their systems layer — CRM configuration, KPI tracking, end-of-day reporting — is the same job the CloudTalk server above does.

Freelance web development — 2024 to 2025. Built and sold sites to six clients sourced entirely through cold outbound, running the outreach, the close and the delivery.

The commercial years aren't a detour from the engineering. They're why the software gets built around what a business actually loses money on, rather than around what's interesting to build.