Location Lisbon, Portugal
menubar mix
Bluetooth lambert's airpods ✓
now building: Kai 9:41 AM
Notes

Growth, Website, SEO, Email, Video · 2026

Growth on Kai, from the first hackathon to the Product Hunt launch

Kai is an AI executive assistant for solopreneurs, freelancers and startup founders. I've done growth on it since February 2026: the pages, the SEO library and the backlinks, the product films, lifecycle email, and the Product Hunt launch on 13 October.

Kai campaign poster on pale blue. A man naps on a sofa, drawn in ink line work, while the green Kai character peeks over the cushion behind him. The headline reads "Go be human... I'll handle this."
kai-poster-go-be-human-dave-officer.webp · Poster by Dave Officer (Doodlejuice), from the Kai brand system.

Introduction

Kai is an AI executive assistant for solopreneurs, freelancers and startup founders. Jim Hartung settled that wording with David in September, after taking every customer group through the positioning cascade. The product has been in early access since June, sign-up opened to everyone on 12 August, and the Product Hunt launch is on 13 October. More than 200 people joined the waitlist before the gates opened, and more than 600 have used the product since.

I've done growth at Kai since February 2026, starting the week the team rented an apartment in Zurich to build the first public surface. Jim leads growth. Dave Officer, who runs Doodlejuice, designed the brand, the mascot and the posters, including the one at the top of this page. Lo edits the top-of-funnel reels. I own the pages, the SEO library and the backlinks under it, the product films, lifecycle email, and the October launch.

My role

Growth in an AI-native company, Kai by Morgen, February 2026 to now. Jim Hartung is Head of Growth and sets the strategy. What sits with me is the marketing site, SEO and backlinks, the product films, lifecycle email in Intercom, and the Product Hunt launch in October.

I've built almost every page on hirekai.ai, and the homepage has been mine since the filmed version shipped in late August. The three homepages before it were Jim's: the orb page, the Daily Drop page and the one-brain page. He challenged every version of the work, mine included, and the site still sits under him.

What follows runs in order, including the parts that didn't work. A waitlist that opened with an AI phone call nobody needed. Four months of SEO that ranked nothing. A social channel with reach and no signups. Paid search with no angle validated yet.

Zurich, February: the first hackathon

In February 2026 the team rented an apartment on Lake Zurich for five days and built Omnia's public launch surface. Jim scoped the week and handed me three missions: a chat-style homepage prototype, five feature pages (meetings, email, daily planning, action items, calendar) and a referral waitlist. My first commit on the project is dated 23 February. The waitlist was taking real rows by the 26th, and app 0.0.1 shipped on 10 March.

Jim took the coach marketplace, the navigation, the pricing page and the final integration. Kamila built the programmatic SEO pages and the first article pipeline. David scaffolded the guest-mode chat app and wrote the voice-call prompt the waitlist opened with. Jim and I designed the referral incentives together.

I also brought a camera. Those clips are the only footage of that week, and they're where Kai's short-form content starts. Locking the whole team in a house has been the pattern ever since.

The chat-style Omnia homepage prototype built on the first day of the Zurich hackathon
zurich-prototype-feb-2026.webp · The prototype I built on 23 February, recovered from git. It never went live.

A waitlist built from scratch

I built the waitlist: email, a queue number and a personal referral link, then SendGrid confirmation and milestone emails on their own IP pool, a progress bar, and an admin layer with fraud flags and UTM capture. The first version opened with an AI voice call David had designed. It cost 10 to 20 hours and we cut it. The plain form is what worked.

On 1 April I filtered internal traffic out of the table and found 10 real signups in 80 rows, none of them carrying a UTM. That put UTMs on every post and started a weekly growth report. More than 200 people joined before Jim replaced the waitlist with the Daily Drop on 8 June, and most of the June lift came from his dormant-Morgen emails and the Chrome extension's launch day.

One person referred 25 classmates. Sign-up opened to everyone on 12 August. More than 600 people have used the product to date.

The first site, and five free tools

From 3 March I rebuilt the hackathon feature pages inside the Next.js landing app, with data-driven cards, an FAQ and interactive demo blocks. Then the Kai vs Otter, Granola and Fyxer comparison pages with a monthly refresh automation, /llms.txt and /for-ai, a four-tier pricing page, a secure contact page and a brick-breaker 404. Jim owned the landing app, the infrastructure and the homepage, which he shipped around an interactive AI demo on 24 March.

In April I ported the free-tools playbook I'd built at Morgen onto Jim's free-tools doc: a meeting cost calculator, a time-blocking template, an Eisenhower matrix, an agenda generator and a minutes generator, all loginless, all in two weeks. They barely ranked. By June, How We Grow #005 called these pages outdated in message and in design, which is what set up the rebuild.

The meetings feature page in its March 2026 purple Omnia design
kai-web-meetings.webp · The meetings page in March 2026, on the Omnia brand.

SEO attempt one: volume that didn't rank

Kai's first blog came out of the same February week. Kamila built an AI pipeline that researched and drafted review, pricing, vs and alternatives pages, and the 11 articles dated 25 February carry her byline. I took SEO content in April. My pre-indexing audit on 10 April found the site unindexed, zero organic keywords, no domain rating, so I added a 24-rule eval gate, two pillar pieces (ai-executive-assistant and how-to-write-meeting-minutes) and 11 articles of my own by the end of June.

It didn't rank. That first library earned 26,014 impressions and 18 clicks in three months. My 29 June diagnostic found no page-one rankings anywhere, a best position of 33, and 86% of our backlinks coming from one sitewide link on morgen.so. We reset the target from 10,000 organic visits a month to 500 non-branded ones, and I stopped publishing on volume.

Chart of impressions climbing while clicks stay flat near zero across the first article library
seo-impressions-vs-clicks.webp · Impressions against clicks for the first library, from How We Grow #007.

Omnia becomes Kai

Before Dave Officer, Kai was Omnia: dark surfaces, a pulsing purple orb, Faktum and Inter. Jim and David brought Dave in and signed him on 22 March, Jim ran the project, and the name Kai and the hirekai.ai domain landed in mid-April. Dave's system is cream #F4F0E1, ink and Kai green #4FA55B, three typefaces, a block mascot with 25 states and five campaign posters. The identity is his. The project was Jim's.

My part was the rollout. Inside Jim's PR #133 I swept /waitlist, /compare, /pricing, /contact, the feature panels and the FAQ cards onto the new look, wrote the brand book's web UI patterns doc, and added a Lighthouse CI gate after a slower build shipped. The June audit counted about 10,600 lines of per-page CSS against 500 shared ones, which is the codebase we had all been feeding.

Inside his system I made the company and team LinkedIn banners, the OG cards for the free tools, and the poster CTAs that still run across the blog.

The interim purple app icon beside Dave Officer's green Kai logo with eyes The interim purple app icon beside Dave Officer's green Kai logo with eyes
brand-logo-before-omnia.webp · brand-logo-after-kai.webp · Left, the purple interim icon. Right, Dave Officer's Kai logo.
The purple orb homepage from April 2026 beside the current cream hirekai.ai homepage The purple orb homepage from April 2026 beside the current cream hirekai.ai homepage
homepage-before-orb-april-2026.webp · homepage-today.webp · Jim's orb-era homepage in April 2026, and hirekai.ai today.
Poster of the Kai design system: cream and green palette, typefaces and mascot states
brand-system-poster.webp · Dave's identity, laid out for the How We Grow issue I wrote about the rebrand.

Short-form from zero on TikTok and Instagram

I opened Kai's TikTok on 16 April and posted a founder-story cut of David the next day, edited by hand in Final Cut Pro. Instagram disabled two fresh brand accounts, so my own dormant one became @hirekai_. Until July I ran TikTok, Instagram and LinkedIn alone, roughly four hours of editing per build-in-public video.

In July I turned it into a system: an editorial row for every post, a Content Lab dashboard, a competitor hook bank collected with Claude in Chrome, an index of the team's raw footage, and a retention read that changed how long I cut. Then Lo joined, and her Caparica reels did numbers mine never did. From 20 July she owned top of funnel and I kept middle and bottom.

Reach didn't convert. By late July no paying user had come from social, and most of our TikToks sat between 100 and 999 views. Social left my projects at the 31 August postmortem and passes to Jonathan on 25 September.

Grid of early Kai Instagram reels, mostly raw hackathon clips
instagram-grid.webp · The Kai grid in the early months, my own edits, before Lo joined.
Table of competitor video hooks collected inside the Content Lab dashboard
social-hook-bank.webp · The competitor hook bank inside Content Lab.

The transcriber, Chrome, and Product Hunt

At the second hackathon, Zurich again, 4 to 8 May, I owned the free meeting transcriber: a loginless web tool where Whisper runs in your browser and Gemini writes the notes. The Chrome extension got its own repo on 11 May and went live on the Web Store on the 23rd. David killed the paywall three days after it shipped, and he was right.

I ran the Product Hunt launch on 4 June from my own maker profile: listing, assets, maker comment, and a day of replies from my phone while travelling. About 90 upvotes, number 20 of the day. hirekai.ai took 280 visitors, about eleven times a normal day, and 62 signups, our best day so far, shared with a dormant-user email Jim sent the same morning.

Kai for Chrome is at 8,622 users today. It still has no mobile support, and Whisper kept writing sentences over silence until I guarded against it.

The loginless Kai meeting transcription tool mid-recording in a browser
transcriber-tool.webp · The web tool mid-recording. Capture committed by Jim for How We Grow #003.
kai-producthunt.mp4 · Launch day, 4 June 2026.

How We Grow, weekly with Jim

I wrote the series spec on 21 May, and we recorded the first one a week later. Since then Jim and I sit down every week, and the debrief becomes an issue on hirekai.ai, a YouTube episode and a Spotify one. Fourteen issues between 31 May and 19 September, seven under my byline. I learned the Riverside post-production on #002 and have done it since.

The byline says who hosted, not whose work it was. Designing the site without Figma and the backlink push run under Jim's name and describe mine. The sprint system and positioning run under mine and describe his, the second one his work with David. We don't publish it for reach. It's a written record of what we tried each week and what it cost.

How We Grow podcast show art on the Kai brand
how-we-grow-show-art.webp · Show art from Jim's pipeline, on Dave Officer's brand.

Every feature page rebuilt, no Figma

PR #356 went in on 26 June: a features hub, Ask Kai, Email, Daily Planning, Meetings, /integrations, the information architecture with /calendar redirected to /daily-planning, a new site-wide navbar and a full mobile pass. 149 commits, all mine, and no Figma file anywhere. I worked in Claude Code with parallel git worktrees running the same brief, then merged the best pieces.

The first attempt missed its deadline and I reset it on 19 June. I'd built a design system before the navigation and the messaging were settled, and every page came out looking the same. Ten days in the end, against a plan of four or five. I kept the tokens, parked the blocks, and closed the system on 7 July with a decisions ledger and a pre-push gate that rejects hard-coded hex.

Those pages score 98 and 99 on desktop PageSpeed today. On mobile they sit in the high 70s, because the app bundle loads on the marketing site, and that is the next thing on my list. The homepage wasn't mine then: Jim owned it until the filmed version in late August.

The old cream Kai feature page stamped OUTDATED with callouts on its value proposition and design
site-before-outdated.webp · The before, marked up for How We Grow #005.
email-page.mp4 · The Email page after the rebuild.

SEO, attempt two: first-hand articles

Jim called quality before scale on 11 June, and my diagnostic at the end of the month agreed: no page-one rankings, and a domain with almost no links of its own. So I rebuilt the pipeline around what only I could say. /next-article picks the row, /article scopes it against live Ahrefs data and interviews me for half an hour, Claude drafts, I add my own screenshots, then the eval gate runs last. Three a week instead of ten.

Twenty-eight articles carry my byline, plus refreshes of older pages that already ranked, including the Granola review, which still shows Kamila's name. The gate went from 24 rules to 36.

Organic search went from about 30 visitors a week in June to 147 in the week of 7 September. The August audit moved the problem from ranking to click-through, so the cadence became one new article and one refresh a week. A review that spikes on a launch is back to nothing three weeks later, and my own spam audit caught pages of ours ranking Kai first without saying so.

Weekly organic-search visitors to hirekai.ai, flat until spring then climbing through the summer
seo-organic-visitors.webp · Organic-search visitors to hirekai.ai, per week.
Diagram of the rebuilt content pipeline showing Claude's steps, my steps and three gates
content-pipeline-human-loop.webp · The rebuilt pipeline, Claude's steps against mine. Drawn for How We Grow #007 in July, when the gate ran 26 rules.

Trading Morgen's authority for links

It started on Morgen's own blog. In April I placed dofollow links to Kai by hand in five of Morgen's seven highest-traffic posts, added Crunchbase and Wellfound, then found Peerlist's links were nofollow. Since then I don't claim a link until I've verified it.

From 30 June it became a trade: a partner gets a contextual link from morgen.so and places one on hirekai.ai. I built the CRM, the qualification rules and link_check.py, which refetches every placed link and flags the ones that quietly disappear. About 20 minutes a day, 229 rows so far, and roughly 90% of partners come to me, mostly through LinkedIn.

Domain Rating went from 29 in June to 43 this month, across 55 live links on 49 domains, and most of that move landed in a single day on 1 September. Most of the links aren't mine either: 34 arrived unsolicited and 7 came through an agency exchange Jim ran. Links moved DR. I can't show they moved rankings, and Jim's paid retainer was running the whole time. Jim wrote the programme up in How We Grow #011, and the CRM, the qualification rules and the checker are written up on my blog.

Line chart of hirekai.ai's Ahrefs Domain Rating climbing from zero in February 2026 to 31 in August, with the start of the link exchange marked on the curve
domain-rating-curve.webp · hirekai.ai's Domain Rating through 2026.

Caparica, use cases and paid search

Six days in a house in Caparica, in July. I shipped the /use-cases hub with four recipes, each one shown as a real recording of Kai doing the thing rather than a claim about it. The Granola and memory import I built the same week never merged, and this week I pulled the promise out of two articles that still mentioned it.

Jim runs Kai's ads program. Inside it I wrote the Search scope, the playbook and the campaign config, built the campaign builders and a zero-write simulation against the live account, and launched the angle-split campaigns on 23 July. Three of the five paid landing pages are mine, one per positioning angle, built on the worksheets Jim and David wrote. When Google disapproved the whole account for malware on 30 August, I filed the appeal and had it back on 1 September.

No angle is validated yet. The read on the refreshed pages is set for 6 October.

The use-cases hub on hirekai.ai, four recipes each shown as a recording
use-cases-hub.webp · The use-cases hub. Every recipe is shown as a recording of Kai doing it.

Six onboarding emails, no holdout

David made me owner of Kai's email in late August: onboarding, churn, retention. The first piece was the gap I'd named myself in How We Grow #010, days one to seven after signup. Six emails, designed in Canva on Dave Officer's illustrations, rebuilt in email-safe HTML with animated scenes and deep links into the app, live in Intercom on 19 August with David as launch gate.

Then I read it back. Email one earns its place. Emails five and six got no clicks. There's no activation lift to see either, because almost everyone who activates does it minutes after first opening Kai, long before email one lands. I respaced the journey and asked for a holdout.

The one I'm proudest of is the trial-limit email at 90% of the credits, written after reading nine competitors' upgrade emails in my own inbox. It cleared all five steps of the team's exit bar. It also hasn't been clicked once.

Header of the first onboarding email: the Kai mascot dancing on an open hand on a cream background, with the Kai wordmark
email-onboarding-hero.webp · Email one of the onboarding journey. Illustration by Dave Officer, composition mine in Canva.
Header of the trial-limit email: 'Your trial is 90% used', a green 'Keep me running' button, and a man asleep on a sofa with Kai peeking out from behind a cushion
email-trial-limit.webp · The 90% trial email, live since 1 September. Same method: Dave's illustration, my composition and HTML.

Films instead of screen recordings

On 27 August Jim told me he couldn't tell what the product physically was from the homepage. I ruled out a motion designer, ruled out Screen Studio, and built /film: a Claude Code skill that rebuilds the app as a film set, storyboards real stills before it renders anything, and shoots a desktop cut and a phone cut of each story.

Six films and nine cuts in the first two weeks, and two I pulled: a hand-drawn one that failed a 42-defect audit, and a phone cut that recorded a 404 page for an hour. The method is written up on my blog.

The filmed hero went into an A/B on 28 August, and from 1 September arm B was the whole redesigned page. B led on CTA clicks, 5.75% against 3.85%, at p = 0.083. I shipped it on 8 September as a direction rather than proof: two thirds of the sample came from one creator push of Jim's, and B changed headline and layout too.

hero-wide.mp4 · The homepage film, shot on the film set. It still shows a tile that came off the homepage on 17 September.
homepage-film-phone.mp4 · The phone cut of the same story. Every film ships in both shapes.

Next: the Product Hunt launch

Kai launches on Product Hunt on 13 October, and running it is mine. The scope is written, the run of show covers D-30 to D+7, and Product Hunt approved the relaunch on 15 September.

I benchmarked what the top of the leaderboard actually ships, then modelled our supporter circles from the bottom up. They fall short of the bar for number one, which reopened the question of whether number one is the target. David and I are writing the launch film.

Results

600+ people have used Kai
8,622 Kai for Chrome users
55 live backlinks on 49 domains
28 articles under my byline
+49% CTA clicks on the filmed homepage
10 days to rebuild every feature page
6 product films, 9 cuts, two weeks
14 How We Grow issues

Domain Rating went from 29 in June to 43 in September. The +49% on the filmed homepage is a direction rather than proof: p = 0.083, and two thirds of the sample arrived from a single creator campaign.

What I learned

These came out of the chapters above, mostly out of the parts that failed.

  1. The plain version won. The AI voice call on the waitlist cost 10 to 20 hours of build time and got cut. An email field, a queue number and a referral link did the job.
  2. Volume doesn't rank on a young domain. Four months of AI-drafted comparison pages earned 18 clicks. First-hand articles with my own screenshots ranked, and then the bottleneck moved from ranking to click-through.
  3. Settle nav and messaging first, build the design system last. The first week of the rebuild went on blocks that made every page look the same. The pages only moved once the information architecture was decided.
  4. Views aren't a funnel. Instagram's biggest week was Lo's, and it didn't move signups. Reach and acquisition turned out to be two different projects.
  5. Measure the measurement. The first waitlist report counted crawlers and my own visits as people. A bot later inflated a conversion goal several times over until we replaced it with CTA clicks.
  6. Say what small traffic can and can't prove. The homepage test came back at p = 0.083, so I shipped it as a direction. Confirming it needs about 1,990 visitors per arm, which we didn't have.
  7. Links move Domain Rating before they move traffic. Verify dofollow before claiming a link, and never credit a DR move to one placement. Ahrefs still estimated about 50 organic visits a month while DR climbed.
  8. No holdout, no proof. Almost everyone who entered the onboarding journey had activated before email 1 arrived, so the journey can't claim the activation it sits next to.
  9. Unplanned builds cost planned work. A playable 404 page took the slot of an article, and the homepage ended up taking six to eight weeks against the sprint it was scoped for.

How I work

Most of what I ship runs through Claude Code skills I wrote. /next-article reads the editorial roadmap and picks the row to write. /article scopes it against live Ahrefs data and interviews me for twenty to thirty minutes before anything gets drafted. /film rebuilds the app as a film set and shoots a desktop cut and a phone cut of the same story. /whats-new-clip does that for a release and is a team skill now. /changelog-sync drafts the What's New page and the card the app shows, from the same data.

Three checks run without me. The blog eval gate applies 36 rules to every draft and blocks anything that reads like a model wrote it. A pre-push hex gate rejects hard-coded colours so the design system stays the only source. link_check.py fetches every link we've placed and tells me which partners quietly removed theirs.

All of it sits on foundations Jim built: the sprint system we run on, the analytics hub every number here comes out of, and the /how-we-grow skill that turns each weekly recording into an issue, a YouTube episode and a Spotify one.

  • Claude Code
  • Cursor
  • Ahrefs
  • Plausible
  • Intercom
  • Final Cut Pro
  • Webflow
  • Canva
  • Higgsfield
  • Google Ads
  • Riverside