Sjoerd
van Kersbergen
I build AI and automation that run on their own every day - and that I can explain and verify. Production, not demos.
Featured Work
Recent projects exploring AI workflows and practical applications.
Writing
Longer pieces on how I work with AI: build logs, lessons and background.
Build your own AI news curator
Pick your sources instead of your feed and let an AI summarize them. A step-by-step ladder from a light manual start to a fully automated version.
I swapped Claude for ChatGPT, in a single evening
In one evening I swapped Claude for ChatGPT as the engine behind my AI system. Almost everything kept working, because the knowledge, tasks and rules live outside the model.
How I keep my AI in check
Five rules that keep my AI systems accountable: measure instead of believe, the source beats the memory, and nothing goes live without a human gate.
My inbox has been clean for months, and I barely lift a finger
My inbox has been clean for months. An honest take on Cora, Every's AI inbox: two Briefs a day, drafts in my own voice, and the setup time that comes with it.
From idea to live
How an idea becomes a working feature - with checks at every step.
Growth Timeline
How the work compounds — completed tasks and growing skills.
Milestones
The YouTube reporting flow: fetch transcripts, per-video AI analysis, synthesis by email. The start of all automation — before this chart even begins.
The Knowledge Agent goes operational: system prompt, searchable knowledge base and live task management in Notion. Everything accelerates from here.
First version of this portfolio online, together with the Wire Spine album and process article.
Query and bulk-update webhooks give Kai write access to Notion — from advisor to operator.
1,188 AI conversations from four platforms distilled into a searchable wiki in Obsidian.
FileZilla out: one git push and the VPS publishes through an allowlist hook — safe by default.
One source in Notion, two languages live: I add the English alongside the Dutch and the site builds both versions by itself. The reach goes international.
From this day the site builds and ships itself: every morning it pulls new projects, changelog and stats from Notion and deploys them automatically — hands-off.
After my own benchmark, Anthropic's heaviest model now runs alongside the others. Not for everything: deep audits and full analyses it handles in a single run, and for targeted changes to this site it keeps enough overview to catch the connections between pages too. The model that fits the job, per job.
Changelog
What I build, learn and publish — a running log of momentum.
I built a project page about the media app for our kids: how one hub with only hand-picked videos, homemade games and our own album works, shown with demo screens without any real family data. The project card on the homepage now clicks through to the full story.
I turned my own AI assistant into a short talking clip: one photo and one spoken line become a speaking face. A hosted chain did the work, for a few cents - showing how low the barrier for this kind of video has become.
My entire task administration lives in an external app. I built a full daily copy on my own machine plus a test that pretends the app has disappeared and rebuilds everything from that copy. The test passed on every point: my system no longer depends on a single vendor.
Ik testte of het opsplitsen van een grote controleklus over meerdere AI-modellen goedkoper en beter is dan een zwaar model dat alles zelf doet. Goedkoper bleek het zeker: minder dan de helft. Beter niet, want wie alleen zijn eigen stukje ziet, mist het patroon dat over het geheel loopt.
A maintenance script had quietly overwritten 41 pages of my second brain with empty templates - a benchmark run by my own AI caught the bug after 17 days. Everything was restored from a backup, five missing pages were re-summarized by five cheaper AI models in parallel, and the script now has a guardrail with an automated test so this cannot happen again.
Share a page of my site on LinkedIn or X and it now shows a proper preview with its own image and title, instead of a bare link. I also built an automatic check, so a new page can never accidentally go live without such a card.
After eleven years of silence, my first LinkedIn post is scheduled again. I built a weekly routine that emails me a proposal with posts for the weeks ahead; I approve it in fifteen minutes and my AI assistant schedules the chosen post for the day and time it stands the best chance.
A customer expert, a market analyst and a strategy advisor, all three AI, tackled one question: what should I focus on in the coming months? The outcome now directly steers my content planning: one recognizable thread, and each of my channels got its own role.
I put a gallery of my own AI images online: fourteen of them, from cinematic scenes to abstract networks, with its own page and a tile on the homepage.
Five dead tiles on the homepage each got their own project page with its own identity: hero, approach, results and sources, in Dutch and English. Now every tile is clickable and every project tells its own story.
One evening instruction, no questions in between: finish my album article and log every assumption along the way. The next morning a complete result was waiting, decision log included; after one read-through it went live, with a copyable music workflow prompt for readers.
Every task now gets a source line: the article or reading tip that sparked it. One question brings back what I read, what I built with it and what is running now - ready-made material for what I share online.
I mapped out what happens if the vendor behind my personal AI system suddenly disappears. The main reassurance: all my data and automations live outside that single vendor, so I lose nothing. The one loose end I found was fixed on the spot, plus I wrote an emergency guide that lets me switch to another AI model within an afternoon.
I gave the whole site a more consistent look: clean drawn icons instead of emoji, my strongest projects featured with the rest in a tidy archive, and my weekly news reports now findable straight from the homepage.
The daily and weekly briefings an AI writes for me about the war in Ukraine and the tech world are now public on my site, and they refresh themselves. With an honest perspective disclaimer and source references included.
I built a coach that reconstructs my past week every Monday from hard data - completed tasks, publications, code - and holds it against the goals I set myself. Not flattering self-reporting, but evidence that confronts: it calls me out on my own pitfalls by name.
Four projects on my site only had a tile with a few sentences. Now each has its own page: my AI assistant, the searchable AI memory, the inventory app and the email reading advice. Every page shows how it works, what it delivers and what I learned along the way.
I wrote the story behind my personal AI system: how it grew in eleven months from loose experiments into something that helps plan and build my work, and what you can take from it if you want to build something similar. Now online in Dutch and English.
I now measure, without cookies and fully on my own server, who visits my website and which posts bring them in. Every Monday I automatically get a short weekly report in my mail: visitors, sources and which buttons people click. So I can see what my posts actually deliver instead of guessing.
My site can now show real articles: a large image, calm reading layout and links through to related work. The first piece is live - about how an assistant writes my posts and I approve them in fifteen minutes.
I gave my AI assistant a link to a paid add-on that creates collage animations, with one question: figure out how it works and whether it can be done for free. It studied the workflow, discovered that my existing image subscription includes the exact same models, and rebuilt the whole pipeline. Same result, zero extra cost.
My automated morning mail proposed my most important tasks every day, but with flat motivations that just repeated the scores. I rewrote the instructions so every choice is now properly argued: why today, what postponing costs, and which contradiction the numbers hide.
I had two Anthropic AI models, Fable and Sonnet, run the same large audit job on my own AI system and compared the results. For big jobs that need to be done in one go, I now use the model that proved best at it.
I built a check that automatically reviews every new portfolio text and blocks it as soon as it contains impenetrable jargon or internal codes. So everything you read on my site stays written for regular readers, without me having to police it by hand.
I had my knowledge agent convert every report into spoken Dutch using a Microsoft neural voice that is almost indistinguishable from a real one, with no subscription or fixed costs. An offline variant stands ready as a fallback.
My photo in the hero no longer sits still: a subtle 30-second loop lets it move gently — made with AI video generation, under 1 MB, and it automatically stays still for visitors who prefer no animation.
When an AI recommendation gets too long to take in at once, I now turn it into a clickable presentation automatically — always ending on the last slide with the core decision and the strongest counterargument laid out side by side.
Hundreds of ready-made AI "skills" are shared by others every week. I built a repeatable method to pick out exactly the ones that strengthen my own work — and deliberately skip the rest. A single pass across nine fields immediately surfaced a handful of concrete improvements, from image prompting to music and data analysis.
I built a tool that helps me decide whether a new tool is worth adopting — fully, partially, or not at all. The twist: a small checker verifies I actually did every step (do the claims hold up against the source? what does each "saving" really cost? does my own system already do this?) before a verdict is allowed.
I built an automatic check that verifies the data in my apps is actually locked down — so no one can accidentally access someone else's data. Every new app now runs through the same check, instead of me having to remember it by hand.
When I build with AI, the model keeps making the same kinds of mistakes — layouts that overflow on mobile, a bulk rename that breaks its own classes, a delete that doesn't refresh the list. I bundled the lessons from all those past sessions into a skill that blocks those mistakes upfront: small scripts that check the code and hard-stop on a known error — catching the bug before it goes live, instead of hoping the AI remembers the rule.
I put my entire knowledge vault under version control with transparent encryption (git-crypt) and pushed it to a private repo. The sensitive layers are unreadable on the server — the key stays with me alone. That gives me a secure backup and a foundation to one day work on projects from my phone, without exposing my knowledge to the cloud.
This site now updates itself daily from my task management in Notion. Completed projects and the growth timeline appear automatically once I release an item — no manual work.
Added LLM observability for the n8n/Gemini flows: latency, quality and cost per call are now visible instead of a blind spot.
The full story behind KAI: how a personal AI operating system grew from scattered experiments into a working whole that runs tasks, knowledge and automation.
The inventory app got an overview dashboard with separate survival KPIs for food and water, plus photo-first location management to organize stock by place.
Every project card on this site got its own screenshot — from the inventory app to the n8n flows, my AI assistant Kai, and this site itself.
My news reports on Ukraine and tech now store their data in a real database (Supabase + Notion) instead of Google Sheets — sturdier and easier to search.
Locked down my automations: every call now needs a key, with a cap on the number of requests.
This site is now bilingual — Dutch and English, both filled automatically from Notion. Wire Spine got a Dutch version too.
One source in Notion, two languages on the site: I add the English text alongside the Dutch, and the site builds both versions by itself.
One tool that manages files, builds the site, and does the front-end work — all from the terminal. My previous build tool (Antigravity) could go.
Projects, changelog and the tech overview now come straight from Notion. I update it there, the site follows — nothing is hand-coded anymore.
My AI assistant Kai now loads its working instructions in small pieces, only when it needs them — faster, cheaper, fewer mistakes.
Site updates now go live with a single command, instead of uploading files by hand.
New notes from Notion land in my knowledge base automatically every day, sorted and labelled right away.
Two years of AI conversations (Claude, ChatGPT, Gemini, Grok) turned into a searchable knowledge base of 51 topic pages — over 70% processed and all linked together.
I speak an idea out loud and it lands automatically as a task on my planning board — no steps in between.
Reorganised my knowledge base and linked it to my local project folder — the basis for one searchable knowledge layer.
Updated the server to the latest versions (Caddy, Docker, n8n) without anything going offline.
All my n8n automations now run on the stable version instead of the test version.
Saved posts from X (Twitter) are now analysed automatically and linked to tasks on my planning board.
Claude can now call my n8n automations directly — faster, without the detour.
Built a game together with my son — from idea to working prototype.
Automatic 'last updated' date on the portfolio via an n8n webhook.
This site now shows concrete, verifiable numbers instead of vague promises.
Worked out Gemini's price change and mapped what it means for my n8n automations.
The inventory app now automatically sends an email every two weeks with the current stock.
Platform comparison completed — Cowork, Claude Code and Antigravity systematically compared on strengths and routing.
Claude Skills explored and deployed — skills pattern evaluated for Kai integration.
Character assets created in Freepik — reusable characters for creative projects.
Inventory app bulk shelf entry via photo completed — jars without labels now recognizable.
Wire Spine website v2.0 live — Stitch-style redesign with video hero and compressed media.
System prompt modularized to save tokens — ~30% reduction per session.
Changelog webhook live — chronological session start replaces 5-6 MCP calls.
Smaug live — X bookmarks automatically archived to markdown via Claude Code.
Wire Spine Veyra Edition published on Suno — Part 2 of the AI concept album, made entirely with Suno Voice.
Children's book for my daughter finished — style, text, illustrations and layout fully AI-generated and printed.
Growth Timeline live on the portfolio — tasks and skills over time visualized as an interactive Chart.js graph.
n8n webhooks for Kai operational — query and bulk-update flows for filtered reads and writes in the Notion DB.
Wire Spine X article published — Part 1 process breakdown of the AI concept album.
Portfolio Content entry updated: 'Generative AI — image & music' replaced by Wire Spine as a full case study with a link to the process article.
First X Article published: a full process article on the making of Wire Spine. Announced via 'who Kers' post on @SjoerdvanKers.
Knowledge Agent Skills protocol live — 200+ tasks tagged, retroactive backfill completed.
Suno v5.5 introduces native Voices — custom voice cloning workflow no longer needed.
Suno Creator Agent V3 live — ElevenLabs Voice Design integrated into the song creation workflow.
Wire Spine process article published — full AI concept album workflow documented.
Inventory app verification check rebuilt — two-pass architecture fixes cross-device inconsistency.
Kennisrouter isolated in its own shielded setup — more stable AI flow architecture.
Website changelog section live — dynamic integration via n8n webhook as the next step.
Learned: flow connections optimized for more stable, safe and unattended background operations.
Kennisrouter migrated to a new 2-step architecture. Data pipeline improved for more stable output.
Cleaning input before the LLM call directly improves output quality.
Kennisrouter decoupled from unstable Gmail OAuth. New 2-step pipeline: IMAP catcher → Data Table buffer → Gemini processor. Better input cleaning, more stable output.
Inventory app extended with camera input and AI product recognition. Faster check flow for mobile use.
Server and container configuration updated to tightened security best practices.
20 n8n flows fully documented in Notion and synced locally to markdown.
Toolkit
The tools and technologies I use to build AI solutions.
Let's build something.
I\'m open to new opportunities and collaborations. Feel free to reach out if you want to talk about practical AI and how to keep it explainable.