Why you're getting this: Why you're getting this: You've interacted with Haven or AdTribe before, and this is my weekly-ish update on my journey to building an AI-native agency. Zero pressure to stick around, just click unsubscribe if you don't want to get it.

Alright, let’s get into it.

Data is the new gold

Earlier this week I got approached by a company that buys data from small and mid-sized businesses and sells it to Claude, OpenAI, and other LLM providers.

They need messy, real-world business environments to train their models on. Every Slack message, every email, every Asana task, every Figma file, every CRM entry. All of it has value now.

For context: they pay between $100K and $1.2M just for a dataset.

That would've been the easiest $100K I could make. I turned them down.

Here's my thinking: data is only going to get more expensive. The more you collect, the more valuable your business becomes. It's not just an asset anymore. It's a moat.

I'm not selling the moat of my business for $100K when I can build something much more valuable with it.

Long term, data becomes scarce. Companies that build that data layer will be worth millions. Acquirers won't just buy agencies for their client list or revenue. They'll buy them for their data. That's a higher multiple than a regular agency gets.

Something to think about if you're running any kind of services business.

Claude Teams

We rolled out Claude Teams accounts for every media buyer on the team.

(For context: until two weeks ago we were all sharing one account for $20/month. Very AI-native of us haha)

Here's the setup: we have one organization account that holds all our shared skills, documents, and SOPs. Each specialist gets their own working account underneath it. Think of it like MCC structure in Google Ads.

Why this matters:

  • Everyone can connect their own Slack, Fathom, Airtable to their account

  • We can push shared skills and files from the org level to everyone

  • Personal chats stay private, but org-level resources are accessible to all

  • When someone's on vacation, we can still pull context on any client

The real unlock is context. The more we feed Claude about a client, the better the output.

Which brings us to where that context actually lives.

GitHub + Claude Code

Every media buyer on the team is required to learn Claude Code. Not optional, not "when you have time." It's now part of how we work.

Here's the actual setup: each client has a private GitHub repo named client-[brand]. Inside it: onboarding form, call transcripts, Slack threads, KPIs, ad account IDs, Looker links, hypotheses we're testing. One repo per client, nothing mixed between them.

Claude Code connects directly to those repos. When a buyer opens a client, all that context is already loaded. They don't brief Claude from scratch. It already knows the client.

The workflow is simpler than it sounds. To onboard a new client you type: "Run the client-onboarding skill" and paste the onboarding form. The skill pulls the budget, targets, and account IDs from Airtable automatically. Anything it can't find, it flags as missing. It never makes up numbers.

For weekly reports: "Run the weekly-report skill for the last 7 days and post to Slack." That's the whole command. Claude reads the Meta and Google account IDs from the repo, pulls the data, formats it in our standard layout, and posts it directly to the client's Slack channel. The report also saves to GitHub automatically, so every client has a full archive going back to day one.

When a specialist leaves, we remove them from the GitHub org in one click. All client knowledge stays in the repos. The new buyer opens the client in Claude Code, types "summarize this client," and gets a full brief. Nothing walks out the door with the person.

Still early, but this is a huge step toward building an actual AI-native agency. Not just using AI tools here and there, but rebuilding how we operate from the ground up.

Talk soon,

Dmitry

Keep Reading