Kaj Alftan · London

I've spent 18 years selling data to banks and asset managers. In my own time, I build software with AI.

Most recently that's ESG data at ISS, where the job is helping clients meet strict requirements with evidence that's fuzzy, incomplete or unclear. This page is the other half of the picture: what I've actually built, working with Claude Code, Codex and my own MCP servers. Finance and regulation projects come first, because that's where the two halves meet.

Everything below is mine, start to finish. Status is stated honestly: live means real people use it, in build means it's not out yet, parked means I stopped.

01

Finance, ESG and regulation

Each of these exists because I kept running into the same thing at work: a judgment that has to be made over and over, on messy evidence, and stood behind afterwards. The strip under each project names that judgment.

Engagement Intel

Prototype, parked

Investors talk to the companies they own all the time, about emissions, pay, board seats. The record of those conversations is scattered across stewardship reports, filings and news, and almost impossible to compare. I built a platform that reads those documents and files every engagement the same way: who started it, how hard they pushed, what it was about, what they asked for, and whether anything checkable came of it.

It has an ingestion service, an operations console and a client portal. The first market was going to be European oil and gas, for investor relations teams, asset managers and regulators.

FIVE-VECTOR CLASSIFICATION InitiatorIntensityTopicAskOutcome ENGAGEMENT RECORD INITIATORAsset-manager coalitionINTENSITY3 of 4 · escalated to the boardTOPICMethane reportingASKAbsolute targets by 2027OUTCOMEVerifiable · commitment published VERIFIED illustrative
2025 to Feb 2026 · Python, spaCy, React, PostgreSQL · parked
The judgment inside it Did anything verifiable come out of this engagement? yes / no Then the records roll up into stewardship reporting under SFDR and PRI.

Engagement Tracker

Next up

The same problem as Engagement Intel, turned around. Instead of reading an investor's report on whom they engaged, you start from the company: which investors have been at it, about what, how hard, and whether anything came of it. One page per company, with every engagement aimed at it laid out on a timeline.

It reuses the five-way classification from Engagement Intel, so each engagement arrives already sorted by who started it, how intense it was, the topic, the ask and the verifiable outcome. For an investor relations team it answers "who is coming for us and why"; for an asset manager, "who else is pushing on this".

COMPANY VIEW Example Energy plc 14 engagements · 6 investors · 2024 to 2026 202420252026 WHO HAS BEEN ENGAGING Nordic pension fund5UK asset manager4Dutch insurer2US index fund2Faith-based investor group1 Climate Pay Board illustrative
2026 · planned · builds on the Engagement Intel pipeline
The judgment inside it Does this document describe an engagement with this company? By whom, on what, and did it change anything? yes / no · choice Then each engagement lands on the company's timeline, and the picture builds up over time.

Proxy voting assistant

In use

I wrote down how I want to vote the shares I hold: strong on climate, sceptical of oversized pay, generally supportive of shareholder proposals. Codex reads each meeting notice and proxy statement against that and recommends a vote on every item, with its reasons.

For one 2026 AGM it spotted an accounting restatement and a weakness in internal controls, and recommended voting against the audit committee nominees, the auditor and the pay package.

ANNUAL GENERAL MEETING · AGENDA MY VOTE 1aElect director, audit chairAGAINST1bElect directorFOR1cElect directorFOR2Ratify the auditorAGAINST3Advisory vote on payAGAINST4Shareholder proposal: lobbyingFOR WHY, ITEM 1a Prior-year accountsrestated. Materialweakness in internalcontrols disclosed.Principle: auditaccountability. The agent recommends. I review and cast. illustrative
2026 · Codex, a preferences database, PDF reading
The judgment inside it For, against or abstain, item by item. choice Then I read the reasons and cast the vote myself.

Trading agent

In build

An agent that trades spread bets through the Capital.com API. It watches live prices across the whole investable universe it's allowed to touch, reads a bank of news and macro APIs, and a language model says whether a setup is worth taking. It never places the trade itself: a separate piece of ordinary code sets the size and the limits and decides whether anything is executed at all. It runs in three modes, shadow, demo and live, with a dashboard that mirrors what it's doing.

Everything it sees and does goes into a large persistent memory. Before each session it reads its own history back and reflects on what worked, so the strategy improves from evidence rather than from me fiddling with it. Next to it sits a Trading 212 connection, so I can review my own portfolio from an AI assistant.

SETUP CLASSIFIER · SHADOW MODE RISK GATE setup? yes · p 0.81 MODE SHADOW DEMOLIVE Code decides size, limits and whether to execute. MEMORY 3,412 notes last reflection 06:40 WHAT WORKED Fade gaps into the US open Skip the first 5 min of news FEEDS 6 live UNIVERSE Indices, FX, commodities,large-cap equities illustrative
2026 · Python, Next.js, WebSocket dashboard
The judgment inside it Is this a real setup? Which instrument, long or short, and how confident? What did the last hundred trades like it teach? yes / no · choice · score Then code, not the model, decides size, limits and whether to execute. The outcome goes back into memory.

Tonus

Prototype

A 90-second audio briefing for compliance teams, out every morning at 07:00 CET: what the European regulators published overnight (ESMA, the FCA, BaFin, FIN-FSA, the AFM), in 13 languages. Each episode gets a severity score from Calm to Acute, which sets the running order and even the music under the voice.

SEVERITY INDEX · TODAY 0.68 ELEVATED CalmAcute EPISODE · 07:00 CET · 90 s ESMA: guidance withdrawnFCA: consultation closesBaFin: circular amendedFIN-FSA: statistics releaseAFM: speech 13 languages · the score picks the music illustrative
Apr 2026 · Next.js, Supabase, OpenRouter · front end complete, back end specified
The judgment inside it How serious is today's regulatory news, from 0 to 1? score Then the score sets the order, the label and the tone of the briefing.

Routerouter

Concept · preview built

LLM routers promise to send your request to the best model for the price. Nobody checks. Routerouter would: did the router actually use the model it claimed, what did you really pay per successful answer, and how does it behave when a provider has an outage. Independent by design: retail access only, no vendor money, a public methodology and an open-source test harness.

Every token you send passes through a hive you cannot see.Independent measurement of AI routers
preview build

The landing page is built and you can click through it. The numbers on it are placeholders and say so; no router has been measured yet.

Jul 2026 · research, business plan, landing page · routerouter.com secured, not yet live
The judgment inside it Was this answer really produced by the model the router claimed? yes / no Then results publish to a public benchmark with versioned methods.
02

Live sites

Things real people use today. Each card links to the site.

Live
GlideVideo Studio: every Glide tool in one local app14 tools · Windows · nothing leaves your PC

GlideVideo Studio

glidevideo.com

Fourteen video tools in one Windows app: convert, join, caption, upscale, reframe, clean up audio and more. Everything runs on your own PC, including the speech recognition and the upscaling. One-time purchase.

~15 apps on the Microsoft Storealso on itch.io
Live
Find a name that feels rightNames, a vibe check, domains and handles in one search

TheVibeNamer

thevibenamer.com

Describe a business idea and get names, with a read on what each one evokes, and a check on the domain, the social handles and the Companies House register before you fall for one. Free, no account.

66 automated testsaffiliate funnel pays for it
Live
Turn any YouTube playlist into a bespoke course.Modules · per-lesson outcomes · quizzes

PlaylistDojo

playlistdojo.com

Paste a YouTube playlist and get a structured course out of it: modules, an outcome for each lesson, quizzes. You bring your own Gemini key, so it stays cheap to run.

free tier + Pro
Cited over 42,000 times a week in AI answers. Two reference sites I wrote to be read by AI assistants as much as by people, to see how much of a site's traffic can come from AI answers rather than search. One is the #1 cited source for country-code lookups; the other earns about 1 in 3 AI-answer citations on its topics. The API and hosted MCP server are extras that let agents query the data directly.
Live
Country calling codes made simple233 countries and territories · source-linked · API + MCP

countrycalling.codes

countrycalling.codes

A standards-first reference for international dialling codes: every code, 17 step-by-step guides for specific country pairs, and the source linked on each page. Search visits are up 57% and 79% of search visitors engage. The public API and MCP server are listed in the Official MCP Registry and APIs.guru.

~40,000 AI-answer citations a week#1 cited source for country-code lookups1 in 4 citations on its topicsreaders in 74 countries
Live
Ship global products with correct local formattingNumbers · currencies · dates · addresses · phones

localization.guide

localization.guide

A practical reference for formatting numbers, currencies, dates and phone numbers by locale, for developers shipping global products. Currency codes and symbols are its most-cited subject. It sits on page 1 of Google for its topics, at an average position of 8.2.

1 in 3 AI-answer citations on its topics2,860 a week12.6K search impressions a weekreaders in 87 countries
03

In build

Not out yet. Included because the interesting part is often the decisions before launch.

Card of One

In build cardof.one

Describe someone, and get a one-of-one greeting card: the picture and the words made by AI, printed and posted by hand, for £6.99 with the stamp included. The waitlist is live; the ordering flow and the Cloudflare back end are built.

Describe them. We'll make the card.One-of-one cards, painted by machine, posted by hand · £6.99, stamp included

The part I'd show anyone: before choosing an image provider I ran a blind bake-off. Forty briefs times four creative directions, so 160 test cases. The reviewer couldn't see which provider made which image. One case in the set is a request that should be refused, to check that it is. And nothing costs money until I type a confirm flag, so a bug can't run up a bill.

2026 · Cloudflare Workers, D1, KV · bake-off in node --test
The judgment inside it Which provider's image best fits this brief, judged blind? choice Then the winner becomes the default, and the corpus stays frozen so I can re-run it later.

SharePets

In build
sharepets.app · not deployed yet

A place to find, preview, make and share Codex pets, the small digital companions people build for their coding agents, with attribution, versions and licences on every entry. Research and brand work done; the domain is live and the app is not.

Fairoute

In build
no public URL yet

A group meetup planner that picks a place that's fair on travel effort for everyone, rather than the geographic midpoint that suits nobody.

04

Guidebooks

Nine practical guides to AI creator tools, published on Amazon under the pen name Astor Pemford. Each one is written the same way I build: try the tool properly, write down what actually works, ship.

Kindle and paperback · all nine in Kindle Unlimited · June 2025 onwards