<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Matt Warren</title>
	<atom:link href="https://www.mattwarren.co/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.mattwarren.co</link>
	<description>Co-founder of Psychedelic Water. Building companies with AI.</description>
	<lastBuildDate>Sun, 31 May 2026 21:42:23 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/01/favicon-512-1.png?fit=32%2C32&#038;ssl=1</url>
	<title>Matt Warren</title>
	<link>https://www.mattwarren.co</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">88282061</site>	<item>
		<title>Can AI Build a Production SaaS? The Save.Cooking Experiment</title>
		<link>https://www.mattwarren.co/2026/05/can-ai-build-a-production-saas-save-cooking/</link>
		
		<dc:creator><![CDATA[Matt]]></dc:creator>
		<pubDate>Sun, 31 May 2026 21:42:23 +0000</pubDate>
				<category><![CDATA[AI & Automation]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[ai-agents]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[software development]]></category>
		<guid isPermaLink="false">https://www.mattwarren.co/?p=10475</guid>

					<description><![CDATA[At the beginning of 2026, AI coding tools had crossed an important line. They were no longer just autocomplete. They could write real features, move around a codebase, debug build errors, reason through deployment problems, and take a vague product idea surprisingly far. But there was still a more interesting question: Could AI help build [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">At the beginning of 2026, AI coding tools had crossed an important line.</p>



<p class="wp-block-paragraph">They were no longer just autocomplete. They could write real features, move around a codebase, debug build errors, reason through deployment problems, and take a vague product idea surprisingly far.</p>



<p class="wp-block-paragraph">But there was still a more interesting question:</p>



<p class="wp-block-paragraph">Could AI help build an actual production application?</p>



<p class="wp-block-paragraph">Not a landing page. Not a toy demo. Not a vibe-coded prototype that works once on localhost and falls apart the moment a real user touches it.</p>



<p class="wp-block-paragraph">A real product, with accounts, data, imports, SEO, public pages, deployment, edge cases, and enough polish that it felt like software instead of an experiment.</p>



<p class="wp-block-paragraph">That was the real question behind <a href="https://save.cooking">Save.Cooking</a>.</p>



<p class="wp-block-paragraph">I wrote the original launch post as <a href="https://www.mattwarren.co/2026/01/how-a-holiday-tech-support-call-turned-into-a-full-stack-ai-project/">a holiday tech support story</a>. Six months later, the more useful version is not really about recipes. It is about what AI was good at, where it was misleading, and what the project taught me about the future of software development.</p>



<figure class="wp-block-image"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/05/save-cooking-homepage.jpg?ssl=1" alt="Save.Cooking homepage"/></figure>



<h2 class="wp-block-heading">The project started with a small real problem</h2>



<p class="wp-block-paragraph">The original problem was simple: my parents had years of recipes trapped in MasterCook, an old recipe application that was being decommissioned. They needed a way to move that archive somewhere else.</p>



<p class="wp-block-paragraph">That could have been a utility script. It could have been a one-time migration. Instead, it became a full recipe-management app because AI made the cost of building the bigger version feel dramatically lower.</p>



<p class="wp-block-paragraph">That is one of the first lessons.</p>



<p class="wp-block-paragraph">AI changes the perceived cost of trying things. When implementation feels cheaper, bigger ideas become tempting. Sometimes that is great. Sometimes it is dangerous.</p>



<p class="wp-block-paragraph">Save.Cooking became a useful proof point because it went far beyond the “make me an app” demo. It had legacy imports, public recipe pages, user accounts, search, recipe browsing, sharing, structured content, and a Chrome extension for saving recipes from other sites. It looked and behaved like a real product.</p>



<p class="wp-block-paragraph">But the more interesting question is not “what features did it have?”</p>



<p class="wp-block-paragraph">The more interesting question is: which parts did AI actually help with, and which parts still required human judgment?</p>



<h2 class="wp-block-heading">AI was excellent at implementation drag</h2>



<p class="wp-block-paragraph">The biggest win was momentum.</p>



<p class="wp-block-paragraph">A production app is mostly the boring middle: weird data formats, metadata, fallbacks, layouts, permissions, routes, configuration files, deployment failures, and the hundred small details that make the difference between a demo and something people can use.</p>



<p class="wp-block-paragraph">AI was genuinely helpful there.</p>



<p class="wp-block-paragraph">A good example was the MasterCook import problem. MasterCook’s export format was not a clean, well-documented modern API. It was an old file format that needed to be inspected, guessed at, parsed, tested, and mapped into a database-oriented structure.</p>



<p class="wp-block-paragraph">That could have become a deep manual time sink. Instead, the AI could open the files, look for patterns, infer the structure, write parsing code, test assumptions, and iterate until the recipes imported correctly.</p>



<p class="wp-block-paragraph">That is exactly the kind of work where AI feels like magic. Not because it has product taste, but because it is willing to grind through the messy mechanical parts faster than a human wants to.</p>



<p class="wp-block-paragraph">The same was true for a lot of SEO plumbing.</p>



<p class="wp-block-paragraph">With the right prompting, I could push the AI into implementing things like structured recipe data, clean HTML, alternate markdown-style recipe formats, Open Graph metadata, canonical URLs, and even the small operational files like <code>robots.txt</code> that help search engines understand what to crawl.</p>



<p class="wp-block-paragraph">Those are not glamorous features. They are also not optional if the goal is a public content-driven application.</p>



<p class="wp-block-paragraph">AI made them cheap enough to do.</p>



<figure class="wp-block-image"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/05/save-cooking-recipe-detail.jpg?ssl=1" alt="Save.Cooking recipe detail page"/></figure>



<h2 class="wp-block-heading">But AI did not magically know what “good SEO” meant</h2>



<p class="wp-block-paragraph">This is where the nuance matters.</p>



<p class="wp-block-paragraph">If you naively ask an AI system for “SEO,” you will usually get shallow advice: use headings, write good titles, add keywords, make sure the page has structured HTML.</p>



<p class="wp-block-paragraph">That is not wrong, but it is not enough.</p>



<p class="wp-block-paragraph">For a recipe site, real SEO includes things like Recipe schema, canonical pages, social metadata, crawl behavior, internal linking, public indexable pages, image metadata, and content formats that machines can understand. You need to know enough to ask for those things, or at least to recognize them when the model points in that direction.</p>



<p class="wp-block-paragraph">The AI was helpful once the target was clear. It was much less useful when the target was vague.</p>



<p class="wp-block-paragraph">That is a pattern I keep seeing with AI software work. The model can produce a lot of code, but the quality of the result depends heavily on whether the operator knows the language of the domain.</p>



<p class="wp-block-paragraph">You do not need to personally write every line anymore. But you still need enough background to ask for the right system.</p>



<h2 class="wp-block-heading">AI was too optimistic about the business</h2>



<p class="wp-block-paragraph">The part AI did not help with was strategic judgment.</p>



<p class="wp-block-paragraph">It never really pushed back on whether a recipe website was a good business idea.</p>



<p class="wp-block-paragraph">And in hindsight, that is the obvious weak spot.</p>



<p class="wp-block-paragraph">In the age of AI, why does someone need a recipe website for many everyday cooking use cases? If you need a Caesar salad for two people, you can ask ChatGPT, Claude, Gemini, or whatever assistant is sitting on your phone and get a custom answer instantly.</p>



<p class="wp-block-paragraph">The entire category of recipe websites is getting squeezed from multiple directions: search changes, AI answers, Pinterest fatigue, ad overload, and the fact that on-demand generation is often more convenient than browsing.</p>



<p class="wp-block-paragraph">That does not mean recipe tools have no future. But it does mean the default “recipe site with public pages and SEO traffic” strategy is much less attractive than it used to be.</p>



<p class="wp-block-paragraph">AI did not steer me away from that.</p>



<p class="wp-block-paragraph">It was happy to help build the thing. It was not especially good at saying, “This category might be structurally declining, and the business case is weaker than the implementation plan makes it feel.”</p>



<p class="wp-block-paragraph">That distinction matters.</p>



<p class="wp-block-paragraph">AI can make the cost of building something much lower. It does not automatically make the thing worth building.</p>



<h2 class="wp-block-heading">The human job moved up a layer</h2>



<p class="wp-block-paragraph">The real lesson from Save.Cooking is not that AI can write code. That part is increasingly obvious.</p>



<p class="wp-block-paragraph">The lesson is that AI can tackle meaningful software problems, but the operator still needs to know what to ask for, what to inspect, and what “good” looks like.</p>



<p class="wp-block-paragraph">A non-technical person can absolutely get further than ever before. That is real. AI can fill in gaps, explain concepts, write scaffolding, and produce working software from plain-English direction.</p>



<p class="wp-block-paragraph">But production code contains a lot of “you don’t know what you don’t know.”</p>



<p class="wp-block-paragraph">Security. Data modeling. SEO. Deployment. Background jobs. Auth. Permissions. Crawlability. Performance. Observability. Error handling. Content formats. Migration paths. Maintainability.</p>



<p class="wp-block-paragraph">If you do not know those categories exist, you may never ask for them. If the AI gives you a plausible answer, you may not know whether it is actually right.</p>



<p class="wp-block-paragraph">That is why software engineering experience still matters. Computer science still matters. Product judgment still matters. The value moves from typing code to directing systems.</p>



<p class="wp-block-paragraph">This is also why I have been thinking more about <a href="https://www.mattwarren.co/2026/05/agentic-first-development/">agentic-first development</a>. As agents become more capable, the bottleneck becomes less about whether a model can implement a function and more about whether a human can structure the work, define the right boundaries, and keep the system coherent.</p>



<h2 class="wp-block-heading">The codebase got bigger than one person should want</h2>



<p class="wp-block-paragraph">There is another uncomfortable lesson here.</p>



<p class="wp-block-paragraph">AI can generate an order of magnitude more code than one person would normally choose to write and maintain.</p>



<p class="wp-block-paragraph">That sounds like productivity. And it is.</p>



<p class="wp-block-paragraph">But it also creates a new maintenance problem.</p>



<p class="wp-block-paragraph">If one person can produce the surface area of a small team, someone still has to understand that surface area later. Someone has to debug it, refactor it, secure it, migrate it, update dependencies, handle production issues, and decide what should be removed.</p>



<p class="wp-block-paragraph">In a world where AI keeps accelerating software creation, I do not think we need fewer software engineers.</p>



<p class="wp-block-paragraph">We may need more of them.</p>



<p class="wp-block-paragraph">Not necessarily more people typing boilerplate from scratch, but more people who can keep AI-built systems working. More people who understand architecture, tradeoffs, debugging, production reliability, and how to translate a business problem into the right technical shape.</p>



<p class="wp-block-paragraph">The job changes. It does not disappear.</p>



<h2 class="wp-block-heading">Six months later</h2>



<p class="wp-block-paragraph">Looking back, Save.Cooking feels like a snapshot of a specific moment in AI development.</p>



<p class="wp-block-paragraph">At the time, building a full-stack product this way felt like a frontier experiment. Six months later, the tools are already better and the expectations are higher.</p>



<p class="wp-block-paragraph">The takeaway is not “everyone should build a recipe app.”</p>



<p class="wp-block-paragraph">The takeaway is that AI can now absorb a massive amount of implementation drag. It can reverse engineer old formats. It can scaffold real products. It can implement complicated technical requirements when the operator knows how to describe them. It can help a single builder push far beyond what would have been reasonable a few years ago.</p>



<p class="wp-block-paragraph">But it still needs direction.</p>



<p class="wp-block-paragraph">It still needs judgment.</p>



<p class="wp-block-paragraph">It still needs someone who knows when the answer is plausible but shallow, when the architecture is getting messy, when a feature is technically correct but strategically pointless, and when the business problem has changed underneath the software.</p>



<p class="wp-block-paragraph">Save.Cooking may have started as a recipe project, but the real experiment was bigger than recipes.</p>



<p class="wp-block-paragraph">It was a test of what happens when AI turns implementation from the bottleneck into raw material.</p>



<p class="wp-block-paragraph">That is powerful. But it makes taste, experience, and technical judgment more important, not less.</p>

]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10475</post-id>	</item>
		<item>
		<title>Agentic-First Development: Build Software Agents Can Actually Use</title>
		<link>https://www.mattwarren.co/2026/05/agentic-first-development/</link>
		
		<dc:creator><![CDATA[Matt]]></dc:creator>
		<pubDate>Fri, 29 May 2026 16:14:08 +0000</pubDate>
				<category><![CDATA[AI & Automation]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[ai-agents]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[software development]]></category>
		<guid isPermaLink="false">https://www.mattwarren.co/?p=10463</guid>

					<description><![CDATA[Most software teams are about to run into a weird problem: they are going to ask for “agent support” and nobody is going to know what that means. Not the product manager. Not the developer. Not even the AI model doing half the implementation. The word agent is still too fluid. Sometimes it means a [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Most software teams are about to run into a weird problem: they are going to ask for “agent support” and nobody is going to know what that means.</p>



<p class="wp-block-paragraph">Not the product manager. Not the developer. Not even the AI model doing half the implementation.</p>



<p class="wp-block-paragraph">The word agent is still too fluid. Sometimes it means a chatbot. Sometimes it means a background job with an LLM call in the middle. Sometimes it means a coding assistant with tools. Sometimes it means a workflow that can make decisions, call APIs, and keep going without a human clicking every button.</p>



<p class="wp-block-paragraph">That makes it hard to build software for agents.</p>



<p class="wp-block-paragraph">If you tell a coding agent, “make this more agentic,” you will often get something vague. Maybe it adds an API endpoint. Maybe it adds a prompt. Maybe it writes a README. Maybe it creates a single hard-coded instruction like “analyze this data and return insights.”</p>



<p class="wp-block-paragraph">That is not enough.</p>



<p class="wp-block-paragraph">The better question is more practical:</p>



<p class="wp-block-paragraph">How would an agent actually use this feature five minutes after it was built?</p>



<p class="wp-block-paragraph">That question changes the development loop.</p>



<h2 class="wp-block-heading">The old loop is too human-centered</h2>



<p class="wp-block-paragraph">Most application development still assumes a human user.</p>



<p class="wp-block-paragraph">You build a feature. You open the browser. You click around. You see if the form works. You check the page. You fix the obvious bugs. Eventually you may add API endpoints, documentation, admin commands, or automation hooks around the edges.</p>



<p class="wp-block-paragraph">That works if the primary user is a person with a screen, patience, and enough context to infer what the software is supposed to do.</p>



<p class="wp-block-paragraph">Agents are different.</p>



<p class="wp-block-paragraph">An agent does not “just know” that the button in the top-right corner starts the workflow. It does not automatically understand which endpoint is safe, what order commands should run in, which fields are optional, or how to recover from a partial failure.</p>



<p class="wp-block-paragraph">A human can poke around and build a mental model.</p>



<p class="wp-block-paragraph">An agent needs that mental model handed to it.</p>



<p class="wp-block-paragraph">That is why <a href="https://www.mattwarren.co/2026/01/claude-code-first-development-building-ai-operable-systems/">building AI-operable systems</a> is not just about exposing a few commands. The software has to be shaped so an agent can discover it, operate it, verify its work, and recover when something goes wrong.</p>



<h2 class="wp-block-heading">Agentic-first development means testing with an agent immediately</h2>



<p class="wp-block-paragraph">The loop I have been using is simple:</p>



<ol class="wp-block-list">
<li>Build the feature.</li>
<li>Build the API, CLI command, or skill that describes how an agent should use it.</li>
<li>Ask an agent to use the feature immediately.</li>
<li>Watch where it gets confused.</li>
<li>Improve the feature, the interface, and the skill together.</li>
</ol>



<p class="wp-block-paragraph">The important part is timing.</p>



<p class="wp-block-paragraph">Do not wait until the feature is “done” and then bolt agent support onto it later. The best feedback happens while the implementation context is still fresh. The model knows what was just built. The developer knows what tradeoffs were made. The rough edges are still visible.</p>



<p class="wp-block-paragraph">So after a feature lands, ask the agent something like:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Use the feature you just implemented as if you were an agent trying to complete a real task. Do not explain how it should work. Actually exercise it. Tell me where the interface, API, command output, docs, or skill file made your job harder.</p></blockquote>



<p class="wp-block-paragraph">That prompt surfaces a different class of bug.</p>



<p class="wp-block-paragraph">Not just “does the endpoint return 200?”</p>



<p class="wp-block-paragraph">More like:</p>



<ul class="wp-block-list">
<li>Could the agent find the right command?</li>
<li>Did the command output include enough context?</li>
<li>Was the failure mode understandable?</li>
<li>Did the skill explain the safe path?</li>
<li>Was there a dry-run option before a destructive action?</li>
<li>Did the agent know how to verify success?</li>
<li>Did the API require hidden knowledge from the developer’s head?</li>
</ul>



<p class="wp-block-paragraph">That is the kind of feedback normal QA often misses.</p>



<h2 class="wp-block-heading">The skill is part of the feature</h2>



<p class="wp-block-paragraph">This is the part that took me a while to appreciate.</p>



<p class="wp-block-paragraph">If an agent is going to use your software, the skill file is not documentation after the fact. It is part of the product surface.</p>



<p class="wp-block-paragraph">A human-facing feature might include:</p>



<ul class="wp-block-list">
<li>UI</li>
<li>copy</li>
<li>error messages</li>
<li>onboarding</li>
<li>docs</li>
</ul>



<p class="wp-block-paragraph">An agent-facing feature needs its own equivalent:</p>



<ul class="wp-block-list">
<li>tool descriptions</li>
<li>command examples</li>
<li>safe operating rules</li>
<li>expected outputs</li>
<li>verification steps</li>
<li>known pitfalls</li>
<li>recovery instructions</li>
<li>examples of good and bad usage</li>
</ul>



<p class="wp-block-paragraph">That context is not decorative. It is how the agent becomes competent.</p>



<p class="wp-block-paragraph">This is the same pattern behind <a href="https://www.mattwarren.co/2026/04/bring-your-own-agent/">bring your own agent</a>. The useful part is rarely one magical prompt. The useful part is the accumulated operating system around the work: the tools, memory, examples, rubrics, and habits that let an agent perform reliably in a specific environment.</p>



<p class="wp-block-paragraph">So when you build a feature, build the skill at the same time.</p>



<p class="wp-block-paragraph">If the feature has an admin command, the skill should explain when to use it, which flags matter, what a successful result looks like, and what to do if it fails.</p>



<p class="wp-block-paragraph">If the feature has an API, the skill should show real request and response examples.</p>



<p class="wp-block-paragraph">If the feature triggers background work, the skill should explain how to check job status, inspect logs, and retry safely.</p>



<p class="wp-block-paragraph">If the feature can modify production data, the skill should include dry-run behavior and warnings.</p>



<p class="wp-block-paragraph">The skill is the agent’s onboarding document.</p>



<p class="wp-block-paragraph">Write it like the next user has no memory of the conversation that created the feature. Because usually, that is exactly what will happen.</p>



<h2 class="wp-block-heading">Fresh-context testing is where this gets useful</h2>



<p class="wp-block-paragraph">The first version of this loop can happen in the same chat where the feature was built.</p>



<p class="wp-block-paragraph">That is useful, but it is not enough.</p>



<p class="wp-block-paragraph">The agent that just wrote the feature has a huge amount of implicit context. It remembers the architecture discussion. It remembers the files it edited. It remembers the assumptions. It may know how to use the feature because it just created it.</p>



<p class="wp-block-paragraph">A real future agent will not have that advantage.</p>



<p class="wp-block-paragraph">A better test is to create an isolated subagent and give it only the skill plus the repo or application access it would normally have.</p>



<p class="wp-block-paragraph">Then ask it to complete a task.</p>



<p class="wp-block-paragraph">For example:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Spawn a fresh subagent. Give it the new skill and no extra explanation. Ask it to use the feature to accomplish a realistic task. Report where it got stuck, what context was missing, and what would have made the skill easier to use.</p></blockquote>



<p class="wp-block-paragraph">That isolation is valuable.</p>



<p class="wp-block-paragraph">It simulates the reboot problem. It shows what happens after the development context disappears and all that remains is the actual product surface you created for agents.</p>



<p class="wp-block-paragraph">If the subagent can use the feature from the skill alone, you probably have something durable.</p>



<p class="wp-block-paragraph">If it cannot, that is not a failure of the agent. That is product feedback.</p>



<h2 class="wp-block-heading">Build the context harness, not just the prompt</h2>



<p class="wp-block-paragraph">There is a second side to agentic-first development: building software that contains agents as features.</p>



<p class="wp-block-paragraph">This is where the terminology gets even less helpful.</p>



<p class="wp-block-paragraph">If you ask a coding agent to “add an agent that audits this data,” it may create a function with a prompt like:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Analyze this data and return recommendations.</p></blockquote>



<p class="wp-block-paragraph">That is not an agent. That is a sentence.</p>



<p class="wp-block-paragraph">A useful internal agent needs the same thing a new employee would need: context, instructions, examples, constraints, access to the right data, and a definition of good work.</p>



<p class="wp-block-paragraph">The framing that works better is this:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Build this as if we are delegating the task to a smart junior employee who is new to the company. Give them enough context to act like a senior employee. Do not be afraid of a large prompt. Use dynamic, templated context pulled algorithmically from the application where possible.</p></blockquote>



<p class="wp-block-paragraph">That produces a different implementation.</p>



<p class="wp-block-paragraph">Instead of a tiny hard-coded prompt, you start building a context harness:</p>



<ul class="wp-block-list">
<li>current user or account context</li>
<li>relevant records from the database</li>
<li>recent activity</li>
<li>available tools and actions</li>
<li>policy or brand rules</li>
<li>examples of high-quality output</li>
<li>domain-specific terminology</li>
<li>constraints and safety rules</li>
<li>scoring rubric or acceptance criteria</li>
<li>exact output schema</li>
</ul>



<p class="wp-block-paragraph">Some of that context should be static. Some should be templated. Some should be pulled from the application at runtime.</p>



<p class="wp-block-paragraph">The important distinction is that context assembly should be mostly algorithmic, not another vague agentic step. The software should know where to retrieve the account details, prior activity, relevant documents, and configuration. Then the LLM receives a rich work packet instead of a bare instruction.</p>



<p class="wp-block-paragraph">Modern LLM context windows can hold a lot. That does not mean you should dump everything in blindly, but it does mean developers should stop being afraid of giving the model enough information to do the job well.</p>



<p class="wp-block-paragraph">A one-sentence prompt is rarely delegation.</p>



<p class="wp-block-paragraph">It is more like shouting a task at somebody as they walk past your desk.</p>



<h2 class="wp-block-heading">Treat agents like employees, not magic functions</h2>



<p class="wp-block-paragraph">The employee analogy keeps helping.</p>



<p class="wp-block-paragraph">If you hired a junior employee and said, “audit this customer account,” you would not expect great work unless you also gave them:</p>



<ul class="wp-block-list">
<li>what the company does</li>
<li>what the customer is trying to accomplish</li>
<li>what tools they can use</li>
<li>what good and bad accounts look like</li>
<li>where to find the data</li>
<li>what risks to watch for</li>
<li>what format the answer should take</li>
<li>when to escalate</li>
</ul>



<p class="wp-block-paragraph">Agents need the same treatment.</p>



<p class="wp-block-paragraph">This does not make them human. It just gives developers a better abstraction.</p>



<p class="wp-block-paragraph">A function needs parameters.</p>



<p class="wp-block-paragraph">An agent needs context.</p>



<p class="wp-block-paragraph">A function returns a value.</p>



<p class="wp-block-paragraph">An agent performs work against a goal, using judgment inside constraints.</p>



<p class="wp-block-paragraph">If you build the feature as if the agent were a function, you tend to under-specify the work. If you build it as if you were delegating to a new employee, you naturally include the missing context.</p>



<p class="wp-block-paragraph">That is the difference between “LLM integration” and an actually useful agentic feature.</p>



<h2 class="wp-block-heading">Two kinds of agentic-first software</h2>



<p class="wp-block-paragraph">There are really two related ideas here.</p>



<p class="wp-block-paragraph">The first is software an agent can use.</p>



<p class="wp-block-paragraph">That means APIs, CLI tools, skills, structured outputs, safe commands, dry runs, logs, and verification steps. It means the application is operable by an AI assistant in the same way it is operable by a human.</p>



<p class="wp-block-paragraph">The second is software that uses agents internally.</p>



<p class="wp-block-paragraph">That means LLM-powered audits, cleanup jobs, recommendations, workflows, summaries, monitors, and decision-support features. It means the application itself can delegate pieces of work to model-driven components.</p>



<p class="wp-block-paragraph">Those are different design problems, but they reinforce each other.</p>



<p class="wp-block-paragraph">When you make a feature easier for an external agent to operate, you often make it easier for your internal agents to call safely too. When you build richer internal context harnesses, you often expose clearer concepts that external agents can use.</p>



<p class="wp-block-paragraph">This is where <a href="https://www.mattwarren.co/2026/02/adversarial-agents/">agent teams and adversarial review loops</a> become more than a creative workflow. The same idea can apply inside software development: one agent builds, another exercises, another reviews, and the product improves because the agents are forced to use the thing rather than merely describe it.</p>



<h2 class="wp-block-heading">What this looks like in practice</h2>



<p class="wp-block-paragraph">A practical agentic-first feature might ship with a checklist like this:</p>



<ol class="wp-block-list">
<li>Human UI works.</li>
<li>API endpoint exists.</li>
<li>CLI command or tool wrapper exists.</li>
<li>Command output is structured and includes enough context.</li>
<li>Errors include recovery suggestions.</li>
<li>Destructive actions support dry-run.</li>
<li>A skill explains how and when an agent should use the feature.</li>
<li>A fresh subagent can complete a realistic task using only that skill.</li>
<li>The built-in LLM prompt uses a rich context harness, not a one-line instruction.</li>
<li>Verification steps prove the work succeeded.</li>
</ol>



<p class="wp-block-paragraph">That checklist is not complicated.</p>



<p class="wp-block-paragraph">But it changes what “done” means.</p>



<p class="wp-block-paragraph">Done is no longer only “a person can click it.”</p>



<p class="wp-block-paragraph">Done becomes “a person can click it, an agent can operate it, and the application’s own agents have enough context to use it intelligently.”</p>



<h2 class="wp-block-heading">The terminology will catch up later</h2>



<p class="wp-block-paragraph">Right now, everyone is still inventing words for this.</p>



<p class="wp-block-paragraph">Agentic support. AI-native software. Agent-operable systems. LLM-powered workflows. Human-in-the-loop automation. Delegated intelligence.</p>



<p class="wp-block-paragraph">The names are messy because the category is still forming.</p>



<p class="wp-block-paragraph">That is why the practical loop matters more than the vocabulary.</p>



<p class="wp-block-paragraph">Build the feature. Build the skill. Ask an agent to use it. Isolate the test. Watch where it fails. Improve the interface and the context harness. Repeat.</p>



<p class="wp-block-paragraph">That loop creates better software even if nobody agrees on the perfect terminology.</p>



<p class="wp-block-paragraph">The applications that win in the next phase will not just have AI sprinkled on top. They will be designed around the reality that some users are human, some users are agents, and some features are agents doing work on behalf of both.</p>



<p class="wp-block-paragraph">That is what agentic-first development means in practice.</p>



<p class="wp-block-paragraph">Not “add an agent.”</p>



<p class="wp-block-paragraph">Build the application so agents can understand it, operate it, and meaningfully participate in the work.</p>

]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10463</post-id>	</item>
		<item>
		<title>How to Make AI Watch Your Most Important Business Numbers</title>
		<link>https://www.mattwarren.co/2026/04/how-to-make-ai-watch-your-most-important-business-numbers/</link>
		
		<dc:creator><![CDATA[Matt]]></dc:creator>
		<pubDate>Mon, 13 Apr 2026 13:22:53 +0000</pubDate>
				<category><![CDATA[AI & Automation]]></category>
		<category><![CDATA[Entrepreneurship]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[productivity]]></category>
		<guid isPermaLink="false">https://www.mattwarren.co/2026/04/how-to-make-ai-watch-your-most-important-business-numbers/</guid>

					<description><![CDATA[Most businesses don’t have a data problem. They have an attention problem. The numbers are already somewhere — Shopify, Triple Whale, Looker, a spreadsheet somebody updates on Fridays, a finance model only one person fully understands. The issue is not access. It’s whether anyone is still looking at the right number often enough to matter. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Most businesses don’t have a data problem.</p>



<p class="wp-block-paragraph">They have an attention problem.</p>



<p class="wp-block-paragraph">The numbers are already somewhere — Shopify, Triple Whale, Looker, a spreadsheet somebody updates on Fridays, a finance model only one person fully understands. The issue is not access. It’s whether anyone is still looking at the right number often enough to matter.</p>



<p class="wp-block-paragraph">That’s where AI can be useful.</p>



<p class="wp-block-paragraph">Not as a replacement for judgment.
Not as some magic strategy layer.
Just as a way to keep one important business number visible every day, without relying on memory or good intentions.</p>



<p class="wp-block-paragraph">That sounds small.</p>



<p class="wp-block-paragraph">It isn’t.</p>



<p class="wp-block-paragraph">In an operating business, the difference between “we noticed it early” and “we noticed it too late” can be expensive.</p>



<h2 class="wp-block-heading">The real problem is drift</h2>



<p class="wp-block-paragraph">Here’s what usually happens.</p>



<p class="wp-block-paragraph">When a company is small, the important numbers are close enough to the surface that you can feel them.</p>



<p class="wp-block-paragraph">Spend goes up. Sales move. Repeat orders change. Margins tighten. You can usually tell when something is off.</p>



<p class="wp-block-paragraph">Then the company gets more complex.</p>



<p class="wp-block-paragraph">More channels. More campaigns. More SKUs. More meetings. More people touching the numbers. More noise.</p>



<p class="wp-block-paragraph">The KPI doesn’t disappear. It just gets crowded out.</p>



<p class="wp-block-paragraph">That’s when drift becomes costly.</p>



<p class="wp-block-paragraph">CAC creeps up for a few weeks before anyone reacts.
Retention softens, but revenue still looks fine.
Margins compress in a way that seems temporary until it isn’t.</p>



<p class="wp-block-paragraph">Usually it’s not one dramatic mistake.</p>



<p class="wp-block-paragraph">It’s a series of ordinary misses that compound because nobody stayed close enough to the basics.</p>



<p class="wp-block-paragraph">That’s the opportunity here: use AI to make the important number harder to ignore.</p>



<h2 class="wp-block-heading">A concrete example: CAC-to-90-day-LTV at Psychedelic Water</h2>



<p class="wp-block-paragraph">At Psychedelic Water, one useful workflow is a daily Slack report on one relationship:</p>



<p class="wp-block-paragraph"><strong>CAC to 90-day LTV</strong></p>



<p class="wp-block-paragraph">That number tells you whether growth is healthy or just getting more expensive.</p>



<p class="wp-block-paragraph">If CAC rises while 90-day LTV stays flat, the business is becoming less efficient.
If LTV improves while CAC stays stable, you have room to push.
If both move the wrong way, you want to know immediately.</p>



<p class="wp-block-paragraph">So instead of relying on someone to remember to check it, we automated the update.</p>



<p class="wp-block-paragraph">AI pulls the relevant numbers, formats a short summary, and posts it in Slack. It follows the same logic behind <a href="https://www.mattwarren.co/2024/04/mini-ai-automations/">mini AI automations</a>: automate the repetitive part, then make the output easy for a human to use.</p>



<p class="wp-block-paragraph">Not a dashboard with ten charts.
Not a memo nobody reads.
Not a raw data dump.</p>



<p class="wp-block-paragraph">Just the metric, the comparison, and a plain-English note about what changed.</p>



<p class="wp-block-paragraph">That’s the point.</p>



<p class="wp-block-paragraph">AI isn’t “running the business” here. It’s protecting the operating rhythm around one number that matters. It is really an example of <a href="https://www.mattwarren.co/2026/01/claude-code-first-development-building-ai-operable-systems/">building AI-operable systems</a> instead of relying on isolated prompts.</p>



<h2 class="wp-block-heading">Why this works better than another dashboard</h2>



<p class="wp-block-paragraph">Dashboards are passive.</p>



<p class="wp-block-paragraph">They wait for someone to remember to check them.</p>



<p class="wp-block-paragraph">A daily AI report is active.</p>



<p class="wp-block-paragraph">It shows up on its own.</p>



<p class="wp-block-paragraph">That small difference changes behavior.</p>



<p class="wp-block-paragraph">A metric buried in a dashboard competes with everything else on someone’s list. A metric that lands in Slack becomes part of the daily environment. It stays visible. It stays discussable. It has a better chance of shaping decisions while there’s still time to do something about it.</p>



<p class="wp-block-paragraph">Most businesses don’t fail from a lack of information.</p>



<p class="wp-block-paragraph">They fail because the right information never becomes part of the operating cadence.</p>



<p class="wp-block-paragraph">The best system is usually the one people actually see, trust, and use.</p>



<p class="wp-block-paragraph">For one team, that might be Slack. For another, email, a text summary, a Notion page, or a morning note in a leadership channel.</p>



<p class="wp-block-paragraph">The channel matters less than the habit.</p>



<h2 class="wp-block-heading">Start with one KPI, not a reporting empire</h2>



<p class="wp-block-paragraph">If you want to build something like this, don’t start by monitoring everything.</p>



<p class="wp-block-paragraph">Start with one KPI that genuinely matters.</p>



<p class="wp-block-paragraph">A good test is simple:</p>



<p class="wp-block-paragraph">If this number moved against you for two weeks and nobody noticed, would that create a real business problem?</p>



<p class="wp-block-paragraph">If the answer is yes, you’ve got a candidate.</p>



<p class="wp-block-paragraph">Depending on the business, that KPI might be:</p>



<ul class="wp-block-list">
<li>CAC</li>
<li>90-day LTV</li>
<li>Churn</li>
<li>Gross margin</li>
<li>Fill rate</li>
<li>Conversion rate</li>
<li>Inventory weeks on hand</li>
<li>Average order value</li>
<li>Contribution margin by channel</li>
</ul>



<p class="wp-block-paragraph">The right KPI is not the one that sounds smartest in a meeting.</p>



<p class="wp-block-paragraph">It’s the one that changes your decisions.</p>



<p class="wp-block-paragraph">That’s the number worth putting in front of the team every day.</p>



<h2 class="wp-block-heading">What the report should actually include</h2>



<p class="wp-block-paragraph">A useful daily AI report should be short enough to read in under a minute.</p>



<p class="wp-block-paragraph">At minimum, it should answer three questions:</p>



<ol class="wp-block-list">
<li>
<p><strong>What happened?</strong><br/>
   Show the current number.</p>
</li>
<li>
<p><strong>How does it compare?</strong><br/>
   Show yesterday, last week, or the relevant baseline.</p>
</li>
<li>
<p><strong>Why does it matter?</strong><br/>
   Add one line of plain-English context.</p>
</li>
</ol>



<p class="wp-block-paragraph">For example:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>CAC-to-90-day-LTV today: 2.8x<br/>
7-day average: 3.1x<br/>
Driver: higher paid social CAC while repeat purchase rate held flat<br/>
Action: watch closely if this trend continues</p>
</blockquote>



<p class="wp-block-paragraph">That’s enough.</p>



<p class="wp-block-paragraph">The goal is not a polished memo.</p>



<p class="wp-block-paragraph">The goal is to reduce friction, keep the number visible, and catch drift early.</p>



<h2 class="wp-block-heading">The hidden value is discipline</h2>



<p class="wp-block-paragraph">The obvious benefit of this kind of system is speed.</p>



<p class="wp-block-paragraph">The less obvious benefit is discipline.</p>



<p class="wp-block-paragraph">Once the report exists, the business has a daily moment of truth.</p>



<p class="wp-block-paragraph">Nobody has to remember to pull the numbers manually. Nobody has to stitch together an update from four tabs. Nobody gets to say, “I hadn’t looked at that in a while.” I wrote recently in <a href="https://www.mattwarren.co/2026/02/what-youre-really-avoiding-isnt-the-work/">what you’re really avoiding isn’t the work</a> about how visibility lowers the friction around hard operational work. The same thing happens here.</p>



<p class="wp-block-paragraph">That sounds boring. It is boring.</p>



<p class="wp-block-paragraph">But boring is underrated.</p>



<p class="wp-block-paragraph">A lot of expensive business problems start small:</p>



<ul class="wp-block-list">
<li>a metric slips a little</li>
<li>the slip gets rationalized</li>
<li>the team waits for more data</li>
<li>the delay becomes normal</li>
<li>the habit becomes a miss</li>
</ul>



<p class="wp-block-paragraph">A daily AI report interrupts that sequence.</p>



<p class="wp-block-paragraph">And in an operating business, earlier is usually cheaper.</p>



<h2 class="wp-block-heading">The part people skip: the basics</h2>



<p class="wp-block-paragraph">This is where a lot of AI projects go sideways.</p>



<p class="wp-block-paragraph">People get excited about prompts, agents, and automation before they’ve handled the operating basics.</p>



<p class="wp-block-paragraph">Those basics matter more than the tooling:</p>



<ul class="wp-block-list">
<li>Is the KPI defined clearly?</li>
<li>Is there one trusted source of truth?</li>
<li>Does the report arrive at the same time every day?</li>
<li>Is it short enough that people will read it?</li>
<li>Is there a clear owner when the number moves the wrong way?</li>
<li>Is there a threshold that triggers action?</li>
</ul>



<p class="wp-block-paragraph">If those basics are weak, AI doesn’t fix the process.</p>



<p class="wp-block-paragraph">It scales the mistake.</p>



<p class="wp-block-paragraph">A broken reporting process with AI attached can feel sophisticated while making the business slower and sloppier. The number gets delivered every day, but it’s the wrong number, the wrong definition, or the wrong interpretation.</p>



<p class="wp-block-paragraph">That’s worse than no automation.</p>



<p class="wp-block-paragraph">AI should strengthen a clear operating system, not cover up a messy one. That is also why <a href="https://www.mattwarren.co/2026/01/building-a-personal-knowledge-base-how-i-created-a-semantic-search-engine-over-everything-ive-ever-made/">making the right context easy to surface</a> matters so much: retrieval only helps when the underlying source of truth is clear.</p>



<h2 class="wp-block-heading">A simple setup any operator can copy</h2>



<p class="wp-block-paragraph">If you want to build this, keep it simple.</p>



<h3 class="wp-block-heading">1. Choose one KPI</h3>



<p class="wp-block-paragraph">Pick the number that matters most right now.</p>



<h3 class="wp-block-heading">2. Define the source of truth</h3>



<p class="wp-block-paragraph">Make sure the report pulls from one reliable place, not three competing versions of reality.</p>



<h3 class="wp-block-heading">3. Decide the comparison window</h3>



<p class="wp-block-paragraph">Use yesterday, a 7-day average, last week, or target. Pick the benchmark that helps people make better decisions.</p>



<h3 class="wp-block-heading">4. Keep the output tight</h3>



<p class="wp-block-paragraph">One metric. One comparison. One short explanation. One action note if needed.</p>



<h3 class="wp-block-heading">5. Deliver it where the team already works</h3>



<p class="wp-block-paragraph">Slack is great if that’s where attention lives. If not, use the place people already check.</p>



<h3 class="wp-block-heading">6. Add an action rule</h3>



<p class="wp-block-paragraph">If the KPI crosses a threshold, who gets pulled in? What gets reviewed? What decision gets made?</p>



<p class="wp-block-paragraph">That’s the system.</p>



<p class="wp-block-paragraph">You do not need a giant AI initiative to make this useful.</p>



<p class="wp-block-paragraph">You need a reliable loop around one important business number.</p>



<h2 class="wp-block-heading">The broader takeaway</h2>



<p class="wp-block-paragraph">The best AI workflows in an operating business are usually not the flashy ones.</p>



<p class="wp-block-paragraph">They are the ones that quietly keep the company close to reality.</p>



<p class="wp-block-paragraph">They make it harder to miss the obvious.
They reduce the lag between signal and response.
They protect attention around the basics.</p>



<p class="wp-block-paragraph">And the basics matter more than people want to admit.</p>



<p class="wp-block-paragraph">Most businesses don’t lose because they lacked advanced tools.</p>



<p class="wp-block-paragraph">They lose because they stopped watching the number that would have told them something important was changing.</p>



<p class="wp-block-paragraph">So the useful question is not:</p>



<p class="wp-block-paragraph"><strong>How can AI help with everything?</strong></p>



<p class="wp-block-paragraph">It’s this:</p>



<p class="wp-block-paragraph"><strong>What is the one number this business cannot afford to stop watching?</strong></p>



<p class="wp-block-paragraph">Start there.</p>



<p class="wp-block-paragraph">Then use AI to make forgetting it much harder.</p>



<h2 class="wp-block-heading">Reader exercise</h2>



<p class="wp-block-paragraph">Take 10 minutes and write down:</p>



<ul class="wp-block-list">
<li>the one KPI that matters most in your business right now</li>
<li>where that number currently lives</li>
<li>how often it is actually checked</li>
<li>who needs to see it</li>
<li>what should happen if it moves the wrong way</li>
</ul>



<p class="wp-block-paragraph">Then answer one final question:</p>



<p class="wp-block-paragraph"><strong>What is the simplest daily AI report that would make this number hard to ignore?</strong></p>



<p class="wp-block-paragraph">If you can answer that clearly, you’re probably closer to a useful AI workflow than you think.</p>

]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10432</post-id>	</item>
		<item>
		<title>From BYOD to BYOA: The New Workplace Shift Nobody&#8217;s Naming Yet</title>
		<link>https://www.mattwarren.co/2026/04/bring-your-own-agent/</link>
		
		<dc:creator><![CDATA[Matt]]></dc:creator>
		<pubDate>Fri, 03 Apr 2026 19:28:16 +0000</pubDate>
				<category><![CDATA[AI & Automation]]></category>
		<category><![CDATA[Entrepreneurship]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[ai-agents]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[productivity]]></category>
		<guid isPermaLink="false">https://www.mattwarren.co/2026/04/from-byod-to-byoa-the-new-workplace-shift-nobodys-naming-yet/</guid>

					<description><![CDATA[Work has been offloading its infrastructure onto workers for years. First the commute. Then the device. Then the office. Now the next shift is starting to emerge: bring your own agent. Ten years ago, bring your own device was a workplace trend. Employers increasingly expected people to have their own phone, their own laptop, and [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Work has been offloading its infrastructure onto workers for years.</p>



<p class="wp-block-paragraph">First the commute. Then the device. Then the office.</p>



<p class="wp-block-paragraph">Now the next shift is starting to emerge: bring your own agent.</p>



<p class="wp-block-paragraph">Ten years ago, bring your own device was a workplace trend. Employers increasingly expected people to have their own phone, their own laptop, and their own hardware wrapped into the company&#8217;s workflow.</p>



<p class="wp-block-paragraph">Then remote work pushed the idea further. For a lot of people, it effectively became bring your own office. Your internet. Your desk. Your extra monitor. Your spare bedroom. Your heat. Your coffee. The company still got the output, but more of the working environment moved onto the employee.</p>



<p class="wp-block-paragraph">If you go back even further, you can find older versions of the same pattern. In some industries, even getting to work used to be part of the system. Over time that became your car, your gas, your commute, your problem.</p>



<p class="wp-block-paragraph">That is why bring your own AI matters.</p>



<p class="wp-block-paragraph">Not because it is a catchy acronym, but because it fits a long-running pattern: productive assets keep moving outward from the company and into the hands of the worker.</p>



<p class="wp-block-paragraph">And unlike a laptop or a phone, an agent stack is not just a tool. It is accumulated capability.</p>



<h2 class="wp-block-heading">This is more than “use ChatGPT at work”</h2>



<p class="wp-block-paragraph">A lot of people still think AI adoption means opening a chatbot and asking it a few questions.</p>



<p class="wp-block-paragraph">That is the beginner version.</p>



<p class="wp-block-paragraph">The real edge starts when someone builds a private operating system around their work:</p>



<ul class="wp-block-list">
<li>prompt libraries refined over months</li>
<li>little scripts that clean data, generate reports, or move work between tools</li>
<li>retrieval systems and notes that give the model better context</li>
<li>review workflows for checking accuracy, tone, and quality</li>
<li>persistent agents that can wake up, monitor things, and keep moving</li>
<li>multi-agent setups where different models play different roles</li>
</ul>



<p class="wp-block-paragraph">That stack compounds.</p>



<p class="wp-block-paragraph">I&#8217;ve written before about <a href="https://www.mattwarren.co/2026/01/how-i-use-ai-to-write-and-publish-blog-posts/">how I use AI to write and publish blog posts</a> and about <a href="https://www.mattwarren.co/2026/01/claude-code-first-development-building-ai-operable-systems/">building AI-operable systems instead of isolated prompts</a>. The same pattern keeps showing up: the value is rarely in one prompt. The value is in the system around it.</p>



<p class="wp-block-paragraph">When somebody builds that system on their own time, on their own machine, with their own habits and history baked into it, they are not just bringing labor to a company anymore.</p>



<p class="wp-block-paragraph">They are bringing infrastructure.</p>



<h2 class="wp-block-heading">The moat is not the model. It is the context.</h2>



<p class="wp-block-paragraph">This is where bring your own agent gets much more interesting than bring your own software.</p>



<p class="wp-block-paragraph">Software licenses are easy to understand. A company can buy a seat and hand it to anyone.</p>



<p class="wp-block-paragraph">An agent stack is different because the most valuable part is often personal.</p>



<p class="wp-block-paragraph">The memory lives in your account. The prompt files live in your folders. The judgment about how to scope a task, which tools to call, what good output looks like, and how to audit the result lives in a thousand small decisions you have already made.</p>



<p class="wp-block-paragraph">Even the context itself becomes an asset.</p>



<p class="wp-block-paragraph">A personal AI system gets better when it has access to your notes, your past work, your frameworks, your examples, your definitions of quality, and the patterns you have trained yourself to follow. That is part of why I built <a href="https://www.mattwarren.co/2026/01/building-a-personal-knowledge-base-how-i-created-a-semantic-search-engine-over-everything-ive-ever-made/">a personal knowledge base over everything I&#8217;ve made</a>. The context is not a side detail. It is the advantage.</p>



<p class="wp-block-paragraph">That creates a strange boundary.</p>



<p class="wp-block-paragraph">If an employee becomes dramatically more productive because of a personal agent stack, how much of that should transfer to the employer? Should the company expect access to the whole system? The prompt library? The memory? The scripts? The evaluation harnesses? The accumulated context?</p>



<p class="wp-block-paragraph">That is not a normal software procurement question. It starts to look more like asking someone to show up with their own miniature company attached.</p>



<h2 class="wp-block-heading">In software, this is already happening</h2>



<p class="wp-block-paragraph">The clearest example is coding.</p>



<p class="wp-block-paragraph">A growing number of AI-assisted developers are no longer staring at code in the old way all day. They are orchestrating systems that can:</p>



<ul class="wp-block-list">
<li>write code</li>
<li>explain code</li>
<li>edit code across multiple files</li>
<li>run tests and interpret failures</li>
<li>audit for security, style, and performance</li>
<li>generate documentation</li>
<li>compare different implementation paths</li>
<li>review each other and challenge each other</li>
</ul>



<p class="wp-block-paragraph">I&#8217;ve written about <a href="https://www.mattwarren.co/2026/02/lets-talk-about-the-open-claw-in-the-room/">persistent agents needing a heartbeat</a> and about <a href="https://www.mattwarren.co/2026/02/adversarial-agents/">adversarial agents improving the quality of creative and analytical work</a>. Once you start using these systems seriously, it stops feeling like one person with one tool and starts feeling like one person directing a small team.</p>



<p class="wp-block-paragraph">That matters.</p>



<p class="wp-block-paragraph">Because when a company hires that person, it is not only hiring judgment and taste. It is hiring the ability to mobilize an entire stack of capability on demand.</p>



<p class="wp-block-paragraph">And this is not going to stay inside software.</p>



<p class="wp-block-paragraph">Marketing teams will bring campaign-generation systems. Salespeople will bring prospecting and follow-up agents. Operators will bring reporting workflows. Researchers will bring literature-review agents. Writers will bring editorial pipelines. Scientists will bring experiment design and analysis harnesses.</p>



<p class="wp-block-paragraph">Whatever the domain is, the pattern is the same.</p>



<p class="wp-block-paragraph">The worker who knows how to build and run agents does not arrive alone.</p>



<h2 class="wp-block-heading">Better systems create an awkward compensation problem</h2>



<p class="wp-block-paragraph">From the worker&#8217;s side, this is obviously powerful.</p>



<p class="wp-block-paragraph">If one person can produce the output of five or ten people because they have better systems, that is a real hiring advantage. It creates independence. It creates negotiating power. It changes what one person can realistically promise to deliver.</p>



<p class="wp-block-paragraph">But from the employer&#8217;s side, it creates a compensation problem.</p>



<p class="wp-block-paragraph">If an employee brings 10x output but gets paid on a normal salary band, most of that upside is captured by the company.</p>



<p class="wp-block-paragraph">And in many cases the worker is paying part of the bill.</p>



<p class="wp-block-paragraph">They may be covering model subscriptions. They may be covering API costs. They may have spent hundreds of hours building the prompts, scripts, notes, and workflows that make the system useful. They may even be floating the cost for a while and getting reimbursed later, imperfectly, or not at all.</p>



<p class="wp-block-paragraph">That is what makes BYOA different from an ordinary productivity tip.</p>



<p class="wp-block-paragraph">What looks like a simple efficiency story is also a story about ownership.</p>



<p class="wp-block-paragraph">Who paid to build the system? Who owns the context? Who keeps the prompts? Who captures the gains?</p>



<h2 class="wp-block-heading">BYOA fits freelancing better than salaried work</h2>



<p class="wp-block-paragraph">This is why I think bring your own agent will push more people toward freelancing, consulting, and one-person businesses.</p>



<p class="wp-block-paragraph">If your real moat is a personal stack of AI systems, then selling outcomes starts to make more sense than selling hours.</p>



<p class="wp-block-paragraph">A freelancer can say: here is the result, here is the speed, here is the quality, and here is the price.</p>



<p class="wp-block-paragraph">That framing fits AI-powered work much better than a salary band does.</p>



<p class="wp-block-paragraph">It also gives the worker a cleaner way to protect the asset.</p>



<p class="wp-block-paragraph">Instead of donating their entire operating system into an employer&#8217;s workflow, they can keep the system private and sell the output. They can price in the tooling costs. They can improve the stack over time and keep more of the upside for themselves.</p>



<p class="wp-block-paragraph">This does not mean normal jobs disappear overnight. But it does mean the center of gravity shifts.</p>



<p class="wp-block-paragraph">If companies are trying to hire fewer people and get more output from each one, and if high-performing workers are building private agent systems that dramatically raise what they can do, the natural meeting point is not always full-time employment. Often it is some form of entrepreneurial freelancing.</p>



<p class="wp-block-paragraph">That may end up being one of the most important second-order effects of AI at work.</p>



<h2 class="wp-block-heading">Companies should get ahead of this now</h2>



<p class="wp-block-paragraph">Most businesses are still treating AI adoption like a tooling question.</p>



<p class="wp-block-paragraph">Should we buy seats? Which model should we use? What policy should we write?</p>



<p class="wp-block-paragraph">Those questions matter, but they are not the whole thing.</p>



<p class="wp-block-paragraph">The deeper questions are organizational:</p>



<ul class="wp-block-list">
<li>What should be company-owned versus worker-owned?</li>
<li>Are employees expected to use personal agent stacks?</li>
<li>If so, who pays for them?</li>
<li>If someone builds a workflow that makes them radically more productive, how should that show up in compensation?</li>
<li>Should critical workflows live in personal accounts and private folders at all?</li>
<li>What happens when the most productive person on the team leaves with the entire system in their backpack?</li>
</ul>



<p class="wp-block-paragraph">Those questions are going to get louder.</p>



<p class="wp-block-paragraph">Because BYOA is not just a work habit. It is a form of capital formation at the edge of the company.</p>



<p class="wp-block-paragraph">The employee is accumulating productive assets outside the business, then deciding how much of that power to rent back in.</p>



<h2 class="wp-block-heading">The shift nobody is naming yet</h2>



<p class="wp-block-paragraph">Bring your own device felt normal. Then bring your own office started to feel normal. Bring your own agent sounds strange today, but probably not for long.</p>



<p class="wp-block-paragraph">The people who will create outsized value over the next few years will not just be good at AI.</p>



<p class="wp-block-paragraph">They will know how to build agents, manage context, collect tools, define evaluation loops, and orchestrate systems that keep getting better.</p>



<p class="wp-block-paragraph">In other words, they will have built a private factory for thought work.</p>



<p class="wp-block-paragraph">That is an amazing opportunity for workers.</p>



<p class="wp-block-paragraph">It is also a warning sign.</p>



<p class="wp-block-paragraph">Because if people are expected to show up with their own devices, their own office, and now their own agent infrastructure, the obvious next question is this:</p>



<p class="wp-block-paragraph">Why rent all of that capability to an employer at a discount?</p>



<p class="wp-block-paragraph">The real question is not whether people will bring their own agents to work.</p>



<p class="wp-block-paragraph">It is who pays for them, who owns them, and who captures the upside when they do.</p>

]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10429</post-id>	</item>
		<item>
		<title>Executive Coaching Is Expensive. Daily Accountability Doesn&#8217;t Have to Be</title>
		<link>https://www.mattwarren.co/2026/03/executive-coaching-is-expensive-daily-accountability-doesnt-have-to-be/</link>
		
		<dc:creator><![CDATA[Matt]]></dc:creator>
		<pubDate>Tue, 24 Mar 2026 01:00:14 +0000</pubDate>
				<category><![CDATA[AI & Automation]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Accountability]]></category>
		<category><![CDATA[Executive Coaching]]></category>
		<category><![CDATA[productivity]]></category>
		<guid isPermaLink="false">https://www.mattwarren.co/2026/03/executive-coaching-is-expensive-daily-accountability-doesnt-have-to-be/</guid>

					<description><![CDATA[One of the most useful things for personal productivity isn&#8217;t a to-do app. It isn&#8217;t a new notebook, a better calendar, or a more elaborate morning routine either. It&#8217;s having someone ask good questions on a regular basis. That&#8217;s the real value of executive coaching. A good coach helps you decide what matters, pushes back [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">One of the most useful things for personal productivity isn&#8217;t a to-do app.</p>



<p class="wp-block-paragraph">It isn&#8217;t a new notebook, a better calendar, or a more elaborate morning routine either.</p>



<p class="wp-block-paragraph">It&#8217;s having someone ask good questions on a regular basis.</p>



<p class="wp-block-paragraph">That&#8217;s the real value of executive coaching. A good coach helps you decide what matters, pushes back when your priorities drift, notices your patterns, and creates enough accountability that you actually follow through.</p>



<p class="wp-block-paragraph">The problem is that real executive coaching is expensive. Really expensive.</p>



<p class="wp-block-paragraph">For a lot of founders, operators, and ambitious people working on their own stuff, it&#8217;s hard to justify spending thousands of dollars for occasional calls, even if the upside is obvious.</p>



<p class="wp-block-paragraph">So I started with a simple question: what if AI could deliver even 20% of the value?</p>



<p class="wp-block-paragraph">Not by pretending to be a perfect human executive coach. Just by handling some of the repeatable parts well enough to matter.</p>



<h2 class="wp-block-heading">What I actually wanted from a coach</h2>



<p class="wp-block-paragraph">I wasn&#8217;t looking for motivational speeches.</p>



<p class="wp-block-paragraph">I wanted help with the things that quietly break productivity over time:</p>



<ul class="wp-block-list">
<li>picking the wrong priorities for the day</li>
<li>letting uncomfortable tasks slide for too long</li>
<li>spending time on interesting work instead of important work</li>
<li>losing sight of quarterly goals in the chaos of a normal week</li>
<li>repeating the same self-defeating habits without noticing</li>
</ul>



<p class="wp-block-paragraph">A strong coach is useful because they create a rhythm around all of this. There&#8217;s a cadence. A check-in. A follow-up. A little bit of pressure. A little bit of perspective.</p>



<p class="wp-block-paragraph">That seemed reproducible.</p>



<h2 class="wp-block-heading">The first step was research, not code</h2>



<p class="wp-block-paragraph">Before building anything, I asked AI to go research executive coaching properly.</p>



<p class="wp-block-paragraph">Not the vague internet version. The actual practice.</p>



<p class="wp-block-paragraph">I had it pull together material on:</p>



<ul class="wp-block-list">
<li>coaching best practices</li>
<li>common question frameworks</li>
<li>behavioral science and accountability research</li>
<li>how executive coaches structure sessions and follow-up</li>
<li>the difference between good coaching and generic advice</li>
</ul>



<p class="wp-block-paragraph">What came back was a much more structured picture than I expected. The useful parts of coaching are not mysterious. A lot of it comes down to repeatable practices:</p>



<ul class="wp-block-list">
<li>daily check-ins</li>
<li>honest prioritization</li>
<li>regular self-scoring and reflection</li>
<li>end-of-day accountability</li>
<li>weekly and quarterly reviews</li>
<li>pattern recognition over time</li>
</ul>



<p class="wp-block-paragraph">That became the foundation for the system.</p>



<h2 class="wp-block-heading">What made it work was not the intelligence. It was the design.</h2>



<p class="wp-block-paragraph">The breakthrough wasn&#8217;t simply &#8220;build a chatbot.&#8221;</p>



<p class="wp-block-paragraph">Plenty of chatbots are smart enough to answer questions. That is not the hard part.</p>



<p class="wp-block-paragraph">The hard part is creating the conditions where accountability feels real.</p>



<p class="wp-block-paragraph">Three design choices mattered a lot.</p>



<h3 class="wp-block-heading">1. It had to live in chat</h3>



<p class="wp-block-paragraph">I already knew from building other systems that a normal chat interface has a very different feel from opening a blank browser tab.</p>



<p class="wp-block-paragraph">If something lives in Telegram, it comes with you. It&#8217;s on your phone. It&#8217;s in the same place as real conversations. You don&#8217;t have to remember to open the app that is supposed to help you. It shows up where you already are.</p>



<p class="wp-block-paragraph">That sounds minor. It isn&#8217;t.</p>



<p class="wp-block-paragraph">A lot of self-improvement software fails because it depends on you having enough discipline to go use it at exactly the moment you&#8217;re least likely to want to. If you&#8217;re avoiding something, you&#8217;re not going to voluntarily open the accountability dashboard.</p>



<p class="wp-block-paragraph">A message in chat changes that dynamic.</p>



<h3 class="wp-block-heading">2. It had to be proactive</h3>



<p class="wp-block-paragraph">This was the second big insight. The system couldn&#8217;t just wait for me to ask a question.</p>



<p class="wp-block-paragraph">It needed a heartbeat.</p>



<p class="wp-block-paragraph">I&#8217;ve written before about how persistent agents become more interesting when they can wake themselves up and check in rather than sitting dormant between prompts. That&#8217;s the same idea I covered in <a href="https://www.mattwarren.co/2026/02/lets-talk-about-the-open-claw-in-the-room/">Let&#8217;s Talk About the Open CLAW in the Room</a>. The value isn&#8217;t just intelligence. It&#8217;s continuity.</p>



<p class="wp-block-paragraph">So I built the coach around proactive outreach:</p>



<ul class="wp-block-list">
<li>a morning stand-up</li>
<li>occasional midday follow-up when something time-sensitive was mentioned</li>
<li>an end-of-day recap</li>
<li>scoring and reflection</li>
<li>longer review cycles over time</li>
</ul>



<p class="wp-block-paragraph">That one change made the whole thing feel less like software and more like a process.</p>



<h3 class="wp-block-heading">3. It had to remember</h3>



<p class="wp-block-paragraph">Without memory, a coaching bot is just a clever prompt.</p>



<p class="wp-block-paragraph">With memory, it starts to become useful.</p>



<p class="wp-block-paragraph">A real coach remembers what you said last week. They remember the thing you promised to do and didn&#8217;t do. They notice when the same excuse keeps showing up in a different form.</p>



<p class="wp-block-paragraph">That memory layer ended up being one of the most important parts of the whole system. It let the coach connect today&#8217;s priorities to older conversations, recurring friction, and longer-term goals.</p>



<p class="wp-block-paragraph">That&#8217;s when the pushback started getting good.</p>



<h2 class="wp-block-heading">What the conversations actually look like</h2>



<p class="wp-block-paragraph">Most mornings start with a simple stand-up:</p>



<p class="wp-block-paragraph">What are the three most important things today?</p>



<p class="wp-block-paragraph">That&#8217;s not a revolutionary question. But it becomes powerful when something is going to ask you about it later.</p>



<p class="wp-block-paragraph">Sometimes the coach just captures the plan. Sometimes it pushes back.</p>



<p class="wp-block-paragraph">If I list something that should obviously be delegated, it asks why I&#8217;m still doing it myself.</p>



<p class="wp-block-paragraph">If I fill the day with low-value tasks, it asks whether any of them are actually connected to revenue or the highest-leverage goal.</p>



<p class="wp-block-paragraph">If I keep postponing something important, it notices.</p>



<p class="wp-block-paragraph">And the memory makes the confrontation sharper than I expected.</p>



<p class="wp-block-paragraph">It can say things like:</p>



<ul class="wp-block-list">
<li>this is the second time you&#8217;ve pushed off writing that marketing email</li>
<li>you keep making room for side projects when the main project still needs attention</li>
<li>you said this meeting was important yesterday, so what changed?</li>
</ul>



<p class="wp-block-paragraph">That kind of feedback is useful because it cuts through the story you tell yourself in the moment.</p>



<p class="wp-block-paragraph">I&#8217;ve written before that <a href="https://www.mattwarren.co/2025/02/goals-and-goal-setting/">goals work better when they turn into measurable daily actions</a>. This system effectively enforces that translation every day. Big intentions have to become concrete commitments.</p>



<h2 class="wp-block-heading">The surprising part: even AI can create accountability</h2>



<p class="wp-block-paragraph">This is the part that surprised me most.</p>



<p class="wp-block-paragraph">On paper, it sounds silly. It&#8217;s just software. It&#8217;s not a real human being. Why should it create any accountability at all?</p>



<p class="wp-block-paragraph">But accountability is not only about authority. It&#8217;s also about having a witness.</p>



<p class="wp-block-paragraph">Once the coach lives in a real chat, checks in proactively, follows up later, and complains a little when you ignore it, the interaction starts to create social pressure. Not the same pressure as a great human coach, obviously, but enough to change behavior.</p>



<p class="wp-block-paragraph">That matters.</p>



<p class="wp-block-paragraph">Because a lot of productivity problems are not really knowledge problems. They&#8217;re avoidance problems. They&#8217;re friction problems. They&#8217;re &#8220;I know what I should do, but nobody is making me face it&#8221; problems.</p>



<p class="wp-block-paragraph">That&#8217;s very similar to the pattern I wrote about in <a href="https://www.mattwarren.co/2026/02/what-youre-really-avoiding-isnt-the-work/">What You&#8217;re Really Avoiding Isn&#8217;t the Work</a>. The obstacle is often not inability. It&#8217;s the gap between knowing and doing.</p>



<p class="wp-block-paragraph">A coaching loop helps close that gap.</p>



<h2 class="wp-block-heading">It also taught me something about my own habits</h2>



<p class="wp-block-paragraph">The strongest value wasn&#8217;t just that the coach reminded me to do things.</p>



<p class="wp-block-paragraph">It showed me my patterns.</p>



<p class="wp-block-paragraph">The same weak spots kept coming up:</p>



<ul class="wp-block-list">
<li>a tendency to drift toward side projects</li>
<li>reluctance to delegate certain work</li>
<li>the habit of postponing tasks that feel important but uncomfortable</li>
<li>confusing activity with meaningful progress</li>
</ul>



<p class="wp-block-paragraph">That sort of pattern recognition is useful because it turns vague guilt into something concrete.</p>



<p class="wp-block-paragraph">Once a behavior gets named, it becomes easier to interrupt.</p>



<p class="wp-block-paragraph">That is where this starts to overlap a little bit with therapy or journaling. Not because the bot is a therapist, but because repeated reflection makes your own habits harder to ignore.</p>



<p class="wp-block-paragraph">And if you are trying to build structure into your work, that kind of reflection compounds over time. I&#8217;ve written about the importance of <a href="https://www.mattwarren.co/2018/08/creating-structure/">creating structure</a> and the need for small daily wins to <a href="https://www.mattwarren.co/2015/05/how-to-maintain-momentum/">maintain momentum</a>. This system is basically a machine for both.</p>



<h2 class="wp-block-heading">From a pile of scripts to a real product</h2>



<p class="wp-block-paragraph">I ran the first version as a bundle of scripts on my own computer for several weeks.</p>



<p class="wp-block-paragraph">It was rough, but it worked.</p>



<p class="wp-block-paragraph">Under the hood it combined three things:</p>



<ul class="wp-block-list">
<li>coaching research and prompting</li>
<li>a memory system</li>
<li>proactive messaging throughout the day</li>
</ul>



<p class="wp-block-paragraph">That was enough to prove the concept.</p>



<p class="wp-block-paragraph">Once I saw the benefit personally, it became obvious that it should turn into a real application. Part of the reason is practical: if a coaching system is going to be proactive, something has to stay running. There needs to be a process alive in the background checking time, tracking context, and deciding when to reach out.</p>



<p class="wp-block-paragraph">So I rebuilt it as an installable desktop app.</p>



<p class="wp-block-paragraph">That turned into its own fun little experiment. At one point I had AI migrate the application into Rust in basically one shot. I don&#8217;t know Rust, which made that entertaining, but the result is that the app now compiles cleanly into native desktop software and lives in the taskbar like a normal application.</p>



<p class="wp-block-paragraph">It runs on Mac and Windows. No server required on my side. Users bring their own API key, which keeps the economics simple and avoids the usual problem of somebody burning through shared credits.</p>



<h2 class="wp-block-heading">Where I think the value actually is</h2>



<p class="wp-block-paragraph">I don&#8217;t think this replaces a great human executive coach.</p>



<p class="wp-block-paragraph">A great coach can read nuance better, challenge you more deeply, and bring lived experience that software cannot fully match.</p>



<p class="wp-block-paragraph">But that&#8217;s not the standard that matters.</p>



<p class="wp-block-paragraph">The real question is whether a persistent AI coach can deliver enough value to justify existing.</p>



<p class="wp-block-paragraph">I think the answer is clearly yes.</p>



<p class="wp-block-paragraph">If a human coach costs hundreds of dollars an hour and maybe shows up once a week, there is a large middle ground between &#8220;nothing&#8221; and &#8220;premium executive coaching.&#8221; A system that asks strong questions every morning, follows up in the afternoon, remembers your patterns, and keeps your priorities honest can be enormously valuable even if it only captures part of the full experience.</p>



<p class="wp-block-paragraph">Personally, I think I&#8217;m going to get far more than $49 worth of value out of it just from better prioritization and fewer days lost to drift.</p>



<h2 class="wp-block-heading">If this sounds useful, it&#8217;s available now</h2>



<p class="wp-block-paragraph">After running it for weeks, I decided to make it available as a real product.</p>



<p class="wp-block-paragraph">It&#8217;s called AI Executive Coach, and it&#8217;s available here:</p>



<p class="wp-block-paragraph"><a href="https://www.mattwarren.co/ai-executive-coach/">Read the full AI Executive Coach page here</a>.</p>



<p class="wp-block-paragraph">For the first 100 users, it&#8217;s a one-time purchase of $49.</p>



<p class="wp-block-paragraph">That&#8217;s intentionally simple. No server dependency on my end. No complicated subscription decision upfront. Just install it, add your own API key, and use it.</p>



<p class="wp-block-paragraph">If you&#8217;re the kind of person who knows what to do but still benefits from having someone, or something, force a little honesty into the day, you&#8217;ll probably get it immediately.</p>



<h2 class="wp-block-heading">Final thought</h2>



<p class="wp-block-paragraph">The biggest thing executive coaching provides is not advice.</p>



<p class="wp-block-paragraph">It&#8217;s cadence.</p>



<p class="wp-block-paragraph">Someone asks what matters. Someone checks whether it happened. Someone notices the pattern when it doesn&#8217;t.</p>



<p class="wp-block-paragraph">That loop is expensive in human form. It doesn&#8217;t have to be expensive in software.</p>



<p class="wp-block-paragraph">And for a lot of people, that may be enough to make the difference between a day that felt busy and a day that actually moved something forward.</p>

]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10425</post-id>	</item>
		<item>
		<title>Lessons From a Decade of Programmatic SEO</title>
		<link>https://www.mattwarren.co/2026/03/lessons-from-a-decade-of-programmatic-seo/</link>
		
		<dc:creator><![CDATA[Matt]]></dc:creator>
		<pubDate>Thu, 12 Mar 2026 16:46:12 +0000</pubDate>
				<category><![CDATA[AI & Automation]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[seo]]></category>
		<guid isPermaLink="false">https://www.mattwarren.co/2026/03/lessons-from-a-decade-of-programmatic-seo/</guid>

					<description><![CDATA[This is the final post in a three-part series on programmatic SEO. Part one covered what it is and whether it&#8217;s worth your time. Part two walked through the simplest way to get started. This post is the retrospective — what I&#8217;ve learned from building programmatic SEO projects since 2014, what actually works, and what&#8217;s [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">This is the final post in a three-part series on programmatic SEO. <a href="https://www.mattwarren.co/2026/03/what-is-programmatic-seo-and-is-it-worth-your-time/">Part one</a> covered what it is and whether it&#8217;s worth your time. <a href="https://www.mattwarren.co/2026/03/the-simplest-programmatic-seo-you-can-build-today/">Part two</a> walked through the simplest way to get started. This post is the retrospective — what I&#8217;ve learned from building programmatic SEO projects since 2014, what actually works, and what&#8217;s coming next.</p>



<h2 class="wp-block-heading">Lesson 1: Google Always Catches Up</h2>



<p class="wp-block-paragraph">In 2014, my Automatic Blog Machine product was making money. Article spinning worked. Keyword stuffing worked. Building a hundred sites with rotated content and pointing links between them worked. For about six months.</p>



<p class="wp-block-paragraph">Then Google&#8217;s Panda update got smarter, and everything I&#8217;d built evaporated. Rankings disappeared overnight. Revenue went to zero. The sites were worthless.</p>



<p class="wp-block-paragraph">Every generation of programmatic SEO has its version of this story. Somebody finds a technique that games the algorithm, it works for a while, and then Google closes the loophole. Article spinning died. Exact-match domain networks died. Private blog networks died. Thin template pages with swapped city names and nothing else — those died too.</p>



<p class="wp-block-paragraph">The lesson isn&#8217;t that Google is unbeatable. It&#8217;s that any approach built on fooling the algorithm has an expiration date. The only programmatic SEO that survives long-term is the kind that would still make sense if Google didn&#8217;t exist — pages that people actually want to read.</p>



<h2 class="wp-block-heading">Lesson 2: The Quality Bar Keeps Rising</h2>



<p class="wp-block-paragraph">What counted as &#8220;good enough&#8221; in 2014 would get you penalized today. And what&#8217;s acceptable today will probably look thin in three years.</p>



<p class="wp-block-paragraph">In the article spinning era, uniqueness was the bar. If the text didn&#8217;t trigger a duplicate content check, it was &#8220;good enough.&#8221; Nobody was reading these pages — they existed to rank, not to serve readers.</p>



<p class="wp-block-paragraph">In the template era, usefulness was the bar. If the page had real data — actual business listings, real product specs, genuine local information — it could rank even with a formulaic template. The information was valuable even if the presentation was boring.</p>



<p class="wp-block-paragraph">Now, in the AI era, the bar is comprehensive quality. The page needs real data, good writing, proper formatting, useful structure, internal links, and a design that doesn&#8217;t scream &#8220;this was generated.&#8221; Readers expect the same quality from a programmatic page that they&#8217;d expect from a hand-written one.</p>



<p class="wp-block-paragraph">This isn&#8217;t Google being arbitrary. It&#8217;s reflecting what users actually want. Every time people complain about search quality — and they complain a lot — Google tightens the screws. The sites that survive each tightening are the ones that were already over-delivering on quality.</p>



<p class="wp-block-paragraph">The practical takeaway: build to a quality standard that&#8217;s higher than what currently ranks. If the top results for your target query are mediocre, don&#8217;t match them — beat them. That margin is your insurance against the next algorithm update.</p>



<h2 class="wp-block-heading">Lesson 3: Small Sites Can Win Specific Niches</h2>



<p class="wp-block-paragraph">The biggest misconception about programmatic SEO is that you need to be Yelp or Zapier to succeed. You don&#8217;t. Those companies succeed because they operate at massive scale across broad categories. But scale and breadth aren&#8217;t the only ways to win.</p>



<p class="wp-block-paragraph">Small, focused sites win by going deeper than the big players bother to. A mega-site might have a page for &#8220;plumbing in Austin&#8221; but it won&#8217;t have a page about Austin&#8217;s specific water hardness regulations and what they mean for residential plumbing maintenance. That level of specificity is where the opportunity lives.</p>



<p class="wp-block-paragraph">The best small-site programmatic SEO projects share three traits:</p>



<p class="wp-block-paragraph"><strong>Deep niche expertise.</strong> The creator knows the subject well enough to spot what&#8217;s missing from existing content. They&#8217;re not just generating pages — they&#8217;re filling genuine information gaps.</p>



<p class="wp-block-paragraph"><strong>Specificity that big sites can&#8217;t match.</strong> A large directory has breadth but not depth. They can&#8217;t afford to write 2,000-word deep dives for every long-tail variation. You can — especially with AI handling the research and drafting.</p>



<p class="wp-block-paragraph"><strong>Willingness to maintain and update.</strong> Most programmatic sites get published and abandoned. The ones that win long-term keep their data fresh. If your competitor pages reference 2023 pricing, update yours to 2026 pricing. If a local regulation changed, update your city page. This sounds obvious, but almost nobody does it.</p>



<h2 class="wp-block-heading">Lesson 4: Internal Linking Is the Multiplier</h2>



<p class="wp-block-paragraph">I underestimated internal linking for years. Then I saw the data.</p>



<p class="wp-block-paragraph">A set of programmatic pages with no links between them behaves like a hundred isolated blog posts. Google crawls them independently, doesn&#8217;t understand the relationship between them, and treats each page as a standalone piece of content competing on its own merits.</p>



<p class="wp-block-paragraph">The same set of pages with intentional internal linking becomes a content hub. Google understands the topical relationship. Authority flows between pages. When one page ranks well, it lifts the others. The whole is genuinely greater than the sum of its parts.</p>



<p class="wp-block-paragraph">For programmatic SEO specifically, the linking structure should be systematic:</p>



<ul class="wp-block-list"><li><strong>Every page links to the hub</strong> — the main topic page that anchors the entire collection</li><li><strong>Related pages link to each other</strong> — city pages in the same state, comparison pages in the same category, FAQ pages on related topics</li><li><strong>The hub links to its best-performing spokes</strong> — as you learn which pages rank, link from your strongest page to support the weaker ones</li><li><strong>External content links in too</strong> — your blog posts, your about page, your other site content should all link to relevant programmatic pages</li></ul>



<p class="wp-block-paragraph">When I added systematic internal linking to a set of pages I&#8217;d published months earlier, some of them jumped from page 3 to page 1 within weeks. The content hadn&#8217;t changed. The links made Google understand what it was looking at.</p>



<h2 class="wp-block-heading">Lesson 5: Failures Teach More Than Successes</h2>



<p class="wp-block-paragraph">I want to be honest about the projects that didn&#8217;t work, because the failure modes are instructive.</p>



<p class="wp-block-paragraph"><strong>The 10,000-page experiment (2024).</strong> After writing about programmatic SEO as a concept, I decided to test it at scale. Build a large site, publish thousands of pages, see what happens. The content was AI-generated with some data enrichment, but the quality was inconsistent. Some pages were genuinely useful. Many were thin. Google&#8217;s March 2024 core update hit the site hard. Traffic dropped 70% in a week. The lesson: volume without consistent quality is a liability, not an asset.</p>



<p class="wp-block-paragraph"><strong>The comparison site (2023).</strong> I built a site with product comparison pages using early ChatGPT-generated content. The information was plausible but not always accurate. Some product features were hallucinated. Some pricing was wrong. Readers complained in comments. Google noticed the bounce rates. The site never gained traction. The lesson: AI content without real data sourcing produces pages that look right but aren&#8217;t. Readers can tell.</p>



<p class="wp-block-paragraph"><strong>The directory that worked (2025).</strong> On the other hand, a small directory project — fewer than 100 pages — that aggregated genuinely hard-to-find local information performed well from day one. Each page took longer to produce because the data required real research. But because the information wasn&#8217;t available elsewhere in a consolidated format, the pages ranked quickly and stayed ranked. The lesson: less content, more value per page, wins.</p>



<p class="wp-block-paragraph">The pattern across every failure was the same: I prioritized quantity over quality. Every success came from the opposite decision.</p>



<h2 class="wp-block-heading">Lesson 6: The Maintenance Problem Is Real</h2>



<p class="wp-block-paragraph">Here&#8217;s something nobody talks about in programmatic SEO guides: what happens after you publish?</p>



<p class="wp-block-paragraph">Content decays. Prices change. Businesses close. Regulations update. Links break. Data goes stale. A page that was accurate when you published it becomes misleading six months later — and misleading content eventually gets outranked by something fresher.</p>



<p class="wp-block-paragraph">For hand-written blog posts, this is manageable. You have 50 posts, you review them periodically, you update what&#8217;s outdated. For 500 programmatic pages, the maintenance burden is significant.</p>



<p class="wp-block-paragraph">The solutions I&#8217;ve found:</p>



<p class="wp-block-paragraph"><strong>Build refresh into the pipeline.</strong> If your data comes from scrapeable sources, schedule regular re-scrapes. Have the AI compare new data to old data and flag pages that need updates. Automate the parts that can be automated.</p>



<p class="wp-block-paragraph"><strong>Prioritize maintenance by traffic.</strong> Not every page needs to be updated on the same schedule. Your top 20% of pages by traffic deserve monthly reviews. The rest can be quarterly or annual. Focus your attention where it has the most impact.</p>



<p class="wp-block-paragraph"><strong>Design for easy updates.</strong> If your page template separates structured data from narrative content, updating the data is easy — just refresh the numbers. If every fact is buried in flowing prose, updating requires rewriting paragraphs. Think about maintainability when you design your template.</p>



<p class="wp-block-paragraph"><strong>Remove pages that can&#8217;t be maintained.</strong> If a category of pages depends on data you can no longer source reliably, it&#8217;s better to remove those pages than to let them go stale. A smaller, accurate site outperforms a larger, unreliable one.</p>



<h2 class="wp-block-heading">Lesson 7: AI Changed Everything (But Not How You Think)</h2>



<p class="wp-block-paragraph">The biggest shift in programmatic SEO isn&#8217;t that AI can write content. It&#8217;s that AI can do research.</p>



<p class="wp-block-paragraph">Content generation was always the easy part. Even before AI, you could spin articles, fill templates, generate text. The hard part was getting accurate, specific, useful information for each page. That required actual research — visiting sources, extracting data, cross-referencing facts, understanding context.</p>



<p class="wp-block-paragraph">What&#8217;s different now is that AI agents can do that research at scale. <a href="https://www.mattwarren.co/2026/01/growth-engineering-with-claude-code-why-your-next-marketing-platform-is-a-code-editor/">Claude Code</a> can browse the web, read source documents, extract specific data points, and compile them into structured content — for every row in your spreadsheet. That&#8217;s not just faster writing. That&#8217;s faster research, which was always the bottleneck.</p>



<p class="wp-block-paragraph">This changes the economics completely. A project that would have required weeks of manual research to populate with real data can now be researched in hours. The constraint shifts from &#8220;can I gather enough information?&#8221; to &#8220;is this information worth publishing?&#8221;</p>



<p class="wp-block-paragraph">But here&#8217;s the nuance: AI research still needs human judgment. The AI doesn&#8217;t know which sources are trustworthy for your niche. It doesn&#8217;t know when a fact is technically accurate but misleading in context. It doesn&#8217;t know the difference between a useful page and a page that merely looks useful. That judgment is still yours — and it&#8217;s what separates programmatic SEO that works from programmatic SEO that gets penalized.</p>



<h2 class="wp-block-heading">Where This Is All Heading</h2>



<p class="wp-block-paragraph">Three trends are shaping the future of programmatic SEO:</p>



<p class="wp-block-paragraph"><strong>AI search is changing the game.</strong> Google&#8217;s AI Overviews, ChatGPT&#8217;s search, Perplexity — these tools synthesize information from across the web and present it directly to the user. If an AI can answer the query by reading your page and summarizing it, the user might never visit your site. This means programmatic pages need to offer something beyond summarizable facts — interactive tools, downloadable resources, visual comparisons, or depth that can&#8217;t be condensed into a snippet.</p>



<p class="wp-block-paragraph"><strong>E-E-A-T matters more than ever.</strong> Google&#8217;s emphasis on Experience, Expertise, Authoritativeness, and Trustworthiness is a direct response to the flood of AI-generated content. Sites with a real author, real expertise, and real experience behind them get preferential treatment. For programmatic SEO, this means connecting your template pages to your broader brand — author bios, links to your other work, evidence that a real person stands behind the content.</p>



<p class="wp-block-paragraph"><strong>The bar for &#8220;unique value&#8221; keeps climbing.</strong> Aggregating publicly available information into a cleaner format used to be enough. Increasingly, the winning programmatic sites add something genuinely new — original analysis, proprietary data, interactive tools, expert commentary layered on top of the aggregated data. The template is just the delivery mechanism. The unique value is what gets the page ranked.</p>



<h2 class="wp-block-heading">The Only Rule That Never Changes</h2>



<p class="wp-block-paragraph">After a decade of building, failing, rebuilding, and occasionally succeeding at programmatic SEO, one principle has held constant through every algorithm update, every technology shift, and every competitive wave:</p>



<p class="wp-block-paragraph"><strong>If the page helps the reader, it will eventually rank. If it doesn&#8217;t, it eventually won&#8217;t.</strong></p>



<p class="wp-block-paragraph">Every technical decision — the template structure, the data sources, the publishing pace, the internal linking, the AI tooling — is in service of that one question. Would a real person find this page useful?</p>



<p class="wp-block-paragraph">Build for that standard, and the algorithm updates become opportunities instead of threats. The sites that survive Google&#8217;s crackdowns are always the ones that were building for readers, not for robots.</p>



<p class="wp-block-paragraph">The tools have never been better. AI can research, write, and publish at a scale that was unimaginable even two years ago. But the strategic question is the same one it&#8217;s always been: are you creating something of value, or are you just creating more noise?</p>



<p class="wp-block-paragraph">If you&#8217;ve read all three posts in this series, you have everything you need to answer that question for yourself. Start with the <a href="https://www.mattwarren.co/2026/03/what-is-programmatic-seo-and-is-it-worth-your-time/">concept</a>. Build with the <a href="https://www.mattwarren.co/2026/03/the-simplest-programmatic-seo-you-can-build-today/">simplest approach</a> that works. And keep the long view in mind — because the sites that win in programmatic SEO are the ones that are still useful five years from now.</p>



<p class="wp-block-paragraph">For more on building AI-powered content workflows, check out <a href="https://www.mattwarren.co/2026/01/how-i-use-ai-to-write-and-publish-blog-posts/">how I use AI to write and publish blog posts</a>. And if you want to see the original post that started this whole series, that&#8217;s <a href="https://www.mattwarren.co/2024/08/programmatic-seo/">here</a>.</p>

]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10391</post-id>	</item>
		<item>
		<title>The Simplest Programmatic SEO You Can Build Today</title>
		<link>https://www.mattwarren.co/2026/03/the-simplest-programmatic-seo-you-can-build-today/</link>
		
		<dc:creator><![CDATA[Matt]]></dc:creator>
		<pubDate>Thu, 12 Mar 2026 00:08:17 +0000</pubDate>
				<category><![CDATA[AI & Automation]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[seo]]></category>
		<guid isPermaLink="false">https://www.mattwarren.co/2026/03/the-simplest-programmatic-seo-you-can-build-today/</guid>

					<description><![CDATA[In the last post, I explained what programmatic SEO is and when it&#8217;s worth pursuing. The short version: it&#8217;s creating web pages using templates and data instead of writing every page by hand. But knowing what it is and actually building it are different things. Most guides jump straight to complex tech stacks — custom [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In the <a href="https://www.mattwarren.co/2026/03/what-is-programmatic-seo-and-is-it-worth-your-time/">last post</a>, I explained what programmatic SEO is and when it&#8217;s worth pursuing. The short version: it&#8217;s creating web pages using templates and data instead of writing every page by hand.</p>



<p class="wp-block-paragraph">But knowing what it is and actually building it are different things. Most guides jump straight to complex tech stacks — custom databases, headless CMS platforms, expensive plugins — and lose 90% of readers before they publish a single page.</p>



<p class="wp-block-paragraph">The reality in 2026 is that AI has collapsed most of those steps. You don&#8217;t need to manually copy-paste pages from a spreadsheet. You don&#8217;t need to learn a page builder plugin. You can start with an AI assistant, a WordPress site, and a clear idea of what pages you want to create.</p>



<h2 class="wp-block-heading">Step 1: Let AI Build Your Data Set</h2>



<p class="wp-block-paragraph">Every programmatic SEO project starts with a list of pages. The old advice was to sit down with a spreadsheet and fill in rows by hand. That still works — but why would you?</p>



<p class="wp-block-paragraph">Instead, start by telling an AI assistant what you&#8217;re trying to build. Be specific about your niche and what kind of pages you want. For example:</p>



<p class="wp-block-paragraph">&#8220;Give me a list of 50 cities in Texas with populations over 50,000, along with their county, population, and top three industries.&#8221;</p>



<p class="wp-block-paragraph">Or: &#8220;Research and list every competitor in the meal prep delivery space, with their pricing, delivery areas, and key differentiators.&#8221;</p>



<p class="wp-block-paragraph">Or: &#8220;What are the 30 most common questions people ask about home solar installation, organized by stage of the buying process?&#8221;</p>



<p class="wp-block-paragraph">The AI generates your seed data in seconds. Export it to a Google Sheet or CSV file, and you&#8217;ve got the skeleton of your project. Each row is a potential page. Each column is a variable that changes between pages.</p>



<p class="wp-block-paragraph">Here&#8217;s where the multiplication happens. Say you have 20 cities and 5 services. That&#8217;s 100 potential pages — &#8220;[service] in [city]&#8221; — generated from two simple lists. Add industries, and you&#8217;ve got another dimension. The data set grows fast.</p>



<p class="wp-block-paragraph"><strong>Keep a local copy of everything.</strong> Download your research, cache your data sources, save reference material to your computer. You don&#8217;t want to re-fetch the same information every time you work on the project. A local folder with your spreadsheets, source documents, and reference data becomes your project&#8217;s knowledge base.</p>



<h2 class="wp-block-heading">Step 2: Design Your Template</h2>



<p class="wp-block-paragraph">Before you generate a single page, you need to know what a good page looks like. This is the most important step, and it&#8217;s worth spending real time on.</p>



<p class="wp-block-paragraph">Pick one row from your data set — one city, one product, one question — and build the best possible page for it. Not blindly with AI. By hand. Think about what someone searching for that query actually wants to know, and make sure the page delivers it. Your pages need to be good enough that people stay and read.</p>



<p class="wp-block-paragraph">This manual page becomes your template. Study it:</p>



<ul class="wp-block-list"><li>What headings did you use?</li><li>What data points appear on every page versus what&#8217;s unique?</li><li>How long does it need to be to genuinely answer the question?</li><li>What internal links connect it to related pages in your set?</li></ul>



<p class="wp-block-paragraph">Once you&#8217;re happy with the template, describe it clearly — the structure, the sections, the tone, what goes where. This description becomes your prompt for generating every other page.</p>



<h2 class="wp-block-heading">Step 3: Establish Your Brand Guide Early</h2>



<p class="wp-block-paragraph">This is something most programmatic SEO guides skip entirely, and it&#8217;s why so many pSEO sites feel like they were stamped out of a factory.</p>



<p class="wp-block-paragraph">Before you generate content at scale, decide on your brand voice and visual identity. Write it down. These decisions are hard to change later, and consistency is what separates a site that feels trustworthy from one that feels like spam.</p>



<p class="wp-block-paragraph"><strong>For writing voice, decide:</strong></p>



<ul class="wp-block-list"><li>First person or third person?</li><li>Authoritative and expert, or friendly and conversational?</li><li>Technical language or plain English?</li><li>What phrases or patterns does your brand use? What does it avoid?</li></ul>



<p class="wp-block-paragraph">Feed this brand guide to your AI as context for every page it generates. The difference between &#8220;write a page about solar installation in Austin&#8221; and &#8220;write a page about solar installation in Austin using this voice guide&#8221; is enormous. Without it, every page will sound like generic AI output. With it, they&#8217;ll sound like they came from the same knowledgeable author.</p>



<p class="wp-block-paragraph"><strong>For visual identity, decide:</strong></p>



<ul class="wp-block-list"><li>What style of images will you use? AI-generated, stock photos, custom graphics?</li><li>Pick a specific image style and dial in the prompt so it&#8217;s consistent across all pages</li><li>Choose a color palette and typography that carries through the site</li><li>Decide on a layout template before you start publishing</li></ul>



<p class="wp-block-paragraph">Spend an afternoon getting your image generation prompt right. Test it on 5-10 variations and make sure the results feel cohesive. A site where every hero image looks like it belongs to the same brand signals quality. A site where every image looks randomly generated signals the opposite.</p>



<h2 class="wp-block-heading">Step 4: Generate and Publish With AI</h2>



<p class="wp-block-paragraph">Here&#8217;s where modern tools change the game entirely. You don&#8217;t need to manually create pages one by one, and you don&#8217;t need an expensive import plugin to do it for you.</p>



<p class="wp-block-paragraph">An AI coding assistant like Claude Code can take your spreadsheet, your template, and your brand guide and do the heavy lifting:</p>



<ol class="wp-block-list"><li><strong>Research each row</strong> — For every entry in your data set, the AI can search the web, pull real information from multiple sources, and compile facts that are specific to that page. A page about &#8220;plumbing services in Austin&#8221; shouldn&#8217;t contain generic plumbing advice — it should reference Austin&#8217;s actual building codes, local licensing requirements, and water quality specifics.</li><li><strong>Write the content</strong> — Using your template structure and brand voice, the AI drafts each page. Because it&#8217;s working from real research rather than generating from memory, the content is grounded in verifiable facts.</li><li><strong>Publish directly</strong> — Tools like the WordPress REST API let AI publish pages directly to your site, complete with formatting, categories, tags, and featured images. No copying and pasting between tools.</li><li><strong>Review each page</strong> — And this is the step you never skip. Read every page before it goes live, especially in the beginning. Check that the facts are accurate, the voice is consistent, and the page would pass the quality test from the last post: would a real person feel their time was respected?</li></ol>



<p class="wp-block-paragraph">For the first 10-20 pages, review every single one. As you get confident that your template and prompts produce reliable output, you can shift to reviewing a sample — but never stop reviewing entirely.</p>



<h2 class="wp-block-heading">Start Slow, Accelerate Later</h2>



<p class="wp-block-paragraph">There&#8217;s a temptation to use these tools to publish hundreds of pages in a weekend. Resist it.</p>



<p class="wp-block-paragraph">When a new site suddenly appears with 500 pages, Google notices. And not in a good way. A brand-new domain with a flood of content looks exactly like the kind of spam site that Google&#8217;s algorithms are designed to catch — regardless of how good the content actually is.</p>



<p class="wp-block-paragraph">The better approach is to start with a handful of pages and grow steadily:</p>



<p class="wp-block-paragraph"><strong>Week 1-2:</strong> Publish 5-10 of your best pages. Obsess over quality. Make sure every fact is right, every image looks good, every internal link works.</p>



<p class="wp-block-paragraph"><strong>Week 3-6:</strong> Add 3-5 pages per week. Monitor which pages get indexed and start appearing in search. Pay attention to what Google seems to like.</p>



<p class="wp-block-paragraph"><strong>Month 2-3:</strong> If pages are getting indexed and attracting some traffic, increase your pace. Maybe 10 pages per week. Keep reviewing quality.</p>



<p class="wp-block-paragraph"><strong>Month 3+:</strong> If the signal is positive, you can ramp up further. But always tie the pace to the quality you can maintain.</p>



<p class="wp-block-paragraph">This gradual approach does two things. It gives Google time to build trust in your domain. And it gives you time to learn what&#8217;s working — which page structures perform best, which topics attract traffic, and which ones fall flat. That feedback loop is worth more than a thousand pages published blind.</p>



<h2 class="wp-block-heading">Picking Your First Project</h2>



<p class="wp-block-paragraph">The hardest part isn&#8217;t the technology. It&#8217;s choosing what to build.</p>



<p class="wp-block-paragraph">Here are five proven patterns that work well for a first project, ordered from simplest to most ambitious:</p>



<p class="wp-block-paragraph"><strong>1. FAQ pages for your niche.</strong> Take the 20-30 most-asked questions in your field and create a dedicated page for each one. Have AI research the best current answer for each, pulling from authoritative sources. This is the lowest-risk starting point because each page targets a specific long-tail query with clear search intent.</p>



<p class="wp-block-paragraph"><strong>2. Comparison pages.</strong> &#8220;[Product A] vs [Product B]&#8221; for every meaningful combination in your space. AI can research current pricing, features, and reviews for each product. The data changes, so keep local copies and plan to refresh these periodically.</p>



<p class="wp-block-paragraph"><strong>3. Location + service pages.</strong> &#8220;[Service] in [city]&#8221; combinations. This is the classic multiplication approach — 10 services across 20 cities gives you 200 pages. AI can research city-specific details (regulations, demographics, local competitors) to make each page genuinely useful rather than just swapping the city name.</p>



<p class="wp-block-paragraph"><strong>4. Tool or resource directories.</strong> Curate every tool, service, or resource in a specific category. AI can research pricing, features, and user reviews from across the web, then present it in a consistent format. The value is in the consolidation — saving the reader from visiting 30 different websites.</p>



<p class="wp-block-paragraph"><strong>5. Data-driven analysis pages.</strong> Turn public datasets into readable insights. Government databases, industry reports, and public APIs contain enormous amounts of information that nobody has bothered to make accessible. AI can process raw data and present it in plain language for specific audiences.</p>



<p class="wp-block-paragraph">Pick one. Build 10 pages. See what happens.</p>



<h2 class="wp-block-heading">Common Mistakes to Avoid</h2>



<p class="wp-block-paragraph">Having tried (and failed at) programmatic SEO more than once, here are the mistakes that kill projects:</p>



<p class="wp-block-paragraph"><strong>Starting too big.</strong> Don&#8217;t plan 1,000 pages before you&#8217;ve proven 10 work. Build the smallest possible version, see if it gets traffic, then scale what works.</p>



<p class="wp-block-paragraph"><strong>Skipping the brand guide.</strong> Without a consistent voice and visual identity, your site will feel like a content farm even if the information is good. Invest the time upfront.</p>



<p class="wp-block-paragraph"><strong>No quality review.</strong> Publishing AI-generated pages without reading them is how sites get penalized. Review every page early on. Spot-check as you scale. Never publish blind.</p>



<p class="wp-block-paragraph"><strong>Thin content.</strong> If your template produces pages with 200 words of generic text and a data table, that&#8217;s not enough. Each page needs to genuinely answer the searcher&#8217;s question. If you can&#8217;t make a page useful, don&#8217;t create it.</p>



<p class="wp-block-paragraph"><strong>Ignoring internal linking.</strong> A hundred orphan pages with no links between them won&#8217;t perform. Every page should link to related pages in your set, and your set should link back to your main site content. Build the web of connections from day one.</p>



<p class="wp-block-paragraph"><strong>Sloppy images.</strong> Inconsistent or obviously AI-generated images with different styles on every page undermine trust. Pick one style, refine the prompt, and stick with it across the entire site.</p>



<p class="wp-block-paragraph"><strong>Going too fast on a new domain.</strong> Publishing hundreds of pages on a fresh domain in your first week is a red flag to Google. Start slow, build trust, accelerate when you see positive signals.</p>



<h2 class="wp-block-heading">What to Do This Week</h2>



<p class="wp-block-paragraph">If this approach sounds interesting, here&#8217;s a concrete starting point:</p>



<ol class="wp-block-list"><li><strong>Pick a pattern</strong> from the five options above that fits your expertise or business</li><li><strong>Ask an AI assistant</strong> to generate your seed data — cities, competitors, questions, whatever your pattern requires</li><li><strong>Build one perfect page by hand</strong> — this becomes your template and quality benchmark</li><li><strong>Write your brand guide</strong> — voice, tone, image style, what to avoid</li><li><strong>Search for your target queries</strong> and compare your template page to what&#8217;s already ranking</li></ol>



<p class="wp-block-paragraph">If your page is better than what&#8217;s currently out there, you&#8217;ve found your project. The tools to scale it are available right now — and most of them are free or close to it.</p>



<p class="wp-block-paragraph">In the <a href="https://www.mattwarren.co/2024/08/programmatic-seo/">next post</a>, I&#8217;ll share lessons from a decade of building programmatic SEO projects — what actually works long-term, what gets penalized, and where this is all heading as AI gets more capable. For more on how AI fits into content workflows, check out <a href="https://www.mattwarren.co/2024/03/copy-my-ai-assisted-content-strategy/">my AI-assisted content strategy</a>. And if you&#8217;re a builder looking for the technical deep dive, <a href="https://www.mattwarren.co/2026/01/growth-engineering-with-claude-code-why-your-next-marketing-platform-is-a-code-editor/">growth engineering with Claude Code</a> covers the pipeline side in detail.</p>



<p class="wp-block-paragraph">But start with the pattern and the brand guide. Everything else follows from those two decisions.</p>

]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10388</post-id>	</item>
		<item>
		<title>What Is Programmatic SEO (And Is It Worth Your Time?)</title>
		<link>https://www.mattwarren.co/2026/03/what-is-programmatic-seo-and-is-it-worth-your-time/</link>
		
		<dc:creator><![CDATA[Matt]]></dc:creator>
		<pubDate>Wed, 11 Mar 2026 01:20:27 +0000</pubDate>
				<category><![CDATA[AI & Automation]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[seo]]></category>
		<guid isPermaLink="false">https://www.mattwarren.co/2026/03/what-is-programmatic-seo-and-is-it-worth-your-time/</guid>

					<description><![CDATA[A decade ago, I launched a product called Automatic Blog Machine. The idea was simple: use natural language processing to find synonyms and rotate sentence structures so that scraped content wouldn&#8217;t get flagged as duplicate text. Spin a paragraph enough times and Google&#8217;s algorithms couldn&#8217;t tell it was the same article published across a hundred [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">A decade ago, I launched a product called Automatic Blog Machine. The idea was simple: use natural language processing to find synonyms and rotate sentence structures so that scraped content wouldn&#8217;t get flagged as duplicate text. Spin a paragraph enough times and Google&#8217;s algorithms couldn&#8217;t tell it was the same article published across a hundred different sites.</p>



<p class="wp-block-paragraph">It worked — for about six months. Then Google got smarter, the rankings disappeared, and I learned an expensive lesson about building on a foundation of trickery.</p>



<p class="wp-block-paragraph">That was my introduction to programmatic SEO. And while the tools have changed dramatically since then, the core question hasn&#8217;t: can you create content at scale without it being garbage?</p>



<h2 class="wp-block-heading">What Programmatic SEO Actually Is</h2>



<p class="wp-block-paragraph">Programmatic SEO is creating web pages using templates and data instead of writing every page by hand. That&#8217;s it. No magic, no dark art.</p>



<p class="wp-block-paragraph">Think about it this way. A real estate site with a page for every neighborhood in a city — those pages aren&#8217;t hand-written. They pull from a database: median home price, school ratings, walkability score, recent sales. The template is the same, but the data makes each page unique and useful.</p>



<p class="wp-block-paragraph">That&#8217;s programmatic SEO at its simplest. You define a pattern, plug in data, and generate pages that target specific search queries.</p>



<p class="wp-block-paragraph">Some real-world examples that are probably already in your life:</p>



<ul class="wp-block-list"><li><strong>Yelp</strong> has a page for every &#8220;best [restaurant type] in [city]&#8221; combination</li><li><strong>Zapier</strong> has integration pages for every app pairing — thousands of them</li><li><strong>NerdWallet</strong> has comparison pages for financial products across every category</li><li><strong>Tripadvisor</strong> has pages for every hotel, restaurant, and attraction in every city on Earth</li></ul>



<p class="wp-block-paragraph">These aren&#8217;t hand-crafted blog posts. They&#8217;re templates filled with structured data, and they drive millions of organic search visits every month.</p>



<h2 class="wp-block-heading">The Spectrum of Complexity</h2>



<p class="wp-block-paragraph">Here&#8217;s where people get intimidated. They hear &#8220;programmatic SEO&#8221; and picture a team of engineers building complex data pipelines. But the spectrum is much wider than that.</p>



<p class="wp-block-paragraph"><strong>The simple end:</strong> A Google Sheet with 50 rows of FAQ questions, turned into individual pages on a Wix or WordPress site. Each page targets a specific long-tail search query. No code required.</p>



<p class="wp-block-paragraph"><strong>The middle:</strong> A WordPress site with a template that pulls in data from a spreadsheet or simple database. Maybe you&#8217;re building city-specific landing pages for a local service, or comparison pages for products in your niche.</p>



<p class="wp-block-paragraph"><strong>The advanced end:</strong> A full pipeline that scrapes data sources, enriches it with AI, generates unique content for each page, and publishes automatically. This is where tools like Claude Code come in — but you don&#8217;t need to start here.</p>



<p class="wp-block-paragraph">The point is that programmatic SEO isn&#8217;t binary. You don&#8217;t need a sophisticated tech stack to benefit from the approach. You need a repeatable pattern and data to fill it.</p>



<h2 class="wp-block-heading">A Decade of Cat and Mouse</h2>



<p class="wp-block-paragraph">My Automatic Blog Machine story isn&#8217;t unique. The history of programmatic SEO is really the history of people trying to create content at scale and Google trying to separate the valuable from the worthless.</p>



<p class="wp-block-paragraph"><strong>The early era (2010-2015):</strong> Article spinning, keyword stuffing, link farms. Content was generated to game algorithms, not to help readers. Google&#8217;s Panda and Penguin updates torched most of it. My product was part of this wave, and it deserved to get squashed.</p>



<p class="wp-block-paragraph"><strong>The template era (2016-2022):</strong> Smarter operators moved to database-driven templates. If you had genuinely useful structured data — business listings, product specs, local information — you could build pages that actually served a purpose. This worked better because there was real information behind each page, even if the presentation was formulaic.</p>



<p class="wp-block-paragraph"><strong>The early AI era (2023-2024):</strong> ChatGPT arrived, and suddenly everyone could generate &#8220;unique&#8221; text at scale. But GPT-2 and GPT-3 era content had obvious problems. The hallucinations were rampant. There was no way to connect the model to real data sources, so it would confidently make up facts, invent statistics, and fabricate references. If you read enough AI-generated content from that period, you developed a sixth sense for it — the same vague structure, the same filler phrases, the same lack of specificity.</p>



<p class="wp-block-paragraph">Some people tried to work around this. I experimented with using web search APIs to pull real content, then feeding it to ChatGPT to create summaries and rephrase things in a more natural way. It was better than pure hallucination, but still produced that unmistakable AI voice. And Google was getting better at detecting it.</p>



<p class="wp-block-paragraph"><strong>Where we are now (2025-2026):</strong> This is where things genuinely changed. The current generation of AI tools — particularly agent-based systems like Claude Code — can do something the earlier models couldn&#8217;t: go out on the internet, find ten real references for every claim, consolidate and synthesize that information, and present it in a way that actually helps the reader.</p>



<p class="wp-block-paragraph">That&#8217;s a fundamentally different value proposition than spinning synonyms or generating hallucinated text.</p>



<h2 class="wp-block-heading">The Real Turning Point</h2>



<p class="wp-block-paragraph">Here&#8217;s the thing that changed my mind about programmatic SEO after years of skepticism.</p>



<p class="wp-block-paragraph">When you can connect AI to real data sources — web scraping, APIs, databases, live search results — you&#8217;re not faking content anymore. You&#8217;re doing genuine research at scale. The AI becomes a research assistant that can:</p>



<ul class="wp-block-list"><li>Pull together information from dozens of sources for a single page</li><li>Take complicated language (legal documents, scientific papers, technical specs) and rephrase it for different audiences</li><li>Cross-reference facts across multiple sources to reduce hallucination</li><li>Tie together related concepts in ways that would take a human researcher hours</li></ul>



<p class="wp-block-paragraph">Could someone get this information by doing a Google search themselves? Maybe. Could they have a conversation with an AI chatbot and get similar answers? Possibly. But if the value you&#8217;re providing involves pulling together many sources, consolidating scattered information, and presenting it in a clear format — that&#8217;s real work, even if a machine is doing it.</p>



<p class="wp-block-paragraph">Think about a directory site that aggregates local business information from public records, review sites, and social media — then presents it in a clean, searchable format with plain-language summaries. That&#8217;s providing genuine value. The information exists on the internet already, but it&#8217;s scattered across dozens of sites in inconsistent formats. Consolidating it is the service.</p>



<p class="wp-block-paragraph">Or consider taking dense regulatory documents and creating simple, city-specific guides for small business owners. The source material is public, but it&#8217;s written in legal language that most people can&#8217;t easily parse. Making it accessible is the value.</p>



<h2 class="wp-block-heading">When Programmatic SEO Is Worth It</h2>



<p class="wp-block-paragraph">Not every site or business benefits from this approach. Here&#8217;s a honest framework for deciding.</p>



<p class="wp-block-paragraph"><strong>It&#8217;s probably worth exploring if:</strong></p>



<ul class="wp-block-list"><li>You can identify a clear pattern of search queries (like &#8220;[thing] in [place]&#8221; or &#8220;<div class="woocommerce "><ul class="products columns-4">
<li class="product type-product post-10394 status-publish first instock product_cat-ai product_tag-software has-post-thumbnail featured downloadable sold-individually taxable shipping-taxable purchasable product-type-simple">
	<a href="https://www.mattwarren.co/product/ai-executive-coach/" class="woocommerce-LoopProduct-link woocommerce-loop-product__link"><img fetchpriority="high" decoding="async" width="300" height="300" src="https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?resize=300%2C300&amp;ssl=1" class="attachment-woocommerce_thumbnail size-woocommerce_thumbnail" alt="AI Executive Coach - Hero" srcset="https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?resize=100%2C100&amp;ssl=1 100w, https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?zoom=2&amp;resize=300%2C300&amp;ssl=1 600w, https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?zoom=3&amp;resize=300%2C300&amp;ssl=1 900w" sizes="(max-width: 300px) 100vw, 300px" data-attachment-id="10393" data-permalink="https://www.mattwarren.co/?attachment_id=10393" data-orig-file="https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?fit=1365%2C768&amp;ssl=1" data-orig-size="1365,768" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="AI Executive Coach &amp;#8211; Hero" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?fit=1024%2C576&amp;ssl=1" /><h2 class="woocommerce-loop-product__title">AI Executive Coach</h2>
	<span class="price"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">&#36;</span>49.00</bdi></span></span>
</a><a href="https://www.mattwarren.co/product/ai-executive-coach/?add-to-cart=10394" aria-describedby="woocommerce_loop_add_to_cart_link_describedby_10394" data-quantity="1" class="button wp-element-button product_type_simple add_to_cart_button ajax_add_to_cart" data-product_id="10394" data-product_sku="COACH" aria-label="Add to cart: &ldquo;AI Executive Coach&rdquo;" rel="nofollow" data-success_message="&ldquo;AI Executive Coach&rdquo; has been added to your cart">Add to cart</a>	<span id="woocommerce_loop_add_to_cart_link_describedby_10394" class="screen-reader-text">
			</span>
</li>
</ul>
</div> vs <div class="woocommerce "><ul class="products columns-4">
<li class="product type-product post-10394 status-publish first instock product_cat-ai product_tag-software has-post-thumbnail featured downloadable sold-individually taxable shipping-taxable purchasable product-type-simple">
	<a href="https://www.mattwarren.co/product/ai-executive-coach/" class="woocommerce-LoopProduct-link woocommerce-loop-product__link"><img fetchpriority="high" decoding="async" width="300" height="300" src="https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?resize=300%2C300&amp;ssl=1" class="attachment-woocommerce_thumbnail size-woocommerce_thumbnail" alt="AI Executive Coach - Hero" srcset="https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?resize=100%2C100&amp;ssl=1 100w, https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?zoom=2&amp;resize=300%2C300&amp;ssl=1 600w, https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?zoom=3&amp;resize=300%2C300&amp;ssl=1 900w" sizes="(max-width: 300px) 100vw, 300px" data-attachment-id="10393" data-permalink="https://www.mattwarren.co/?attachment_id=10393" data-orig-file="https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?fit=1365%2C768&amp;ssl=1" data-orig-size="1365,768" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="AI Executive Coach &amp;#8211; Hero" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/www.mattwarren.co/wp-content/uploads/2026/03/hero.jpg?fit=1024%2C576&amp;ssl=1" /><h2 class="woocommerce-loop-product__title">AI Executive Coach</h2>
	<span class="price"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">&#36;</span>49.00</bdi></span></span>
</a><a href="https://www.mattwarren.co/product/ai-executive-coach/?add-to-cart=10394" aria-describedby="woocommerce_loop_add_to_cart_link_describedby_10394" data-quantity="1" class="button wp-element-button product_type_simple add_to_cart_button ajax_add_to_cart" data-product_id="10394" data-product_sku="COACH" aria-label="Add to cart: &ldquo;AI Executive Coach&rdquo;" rel="nofollow" data-success_message="&ldquo;AI Executive Coach&rdquo; has been added to your cart">Add to cart</a>	<span id="woocommerce_loop_add_to_cart_link_describedby_10394" class="screen-reader-text">
			</span>
</li>
</ul>
</div>&#8220;)</li><li>Structured data exists that could populate those pages (public databases, APIs, scraped information)</li><li>Each generated page would genuinely answer someone&#8217;s question</li><li>You&#8217;re willing to invest upfront in building the pipeline, knowing the payoff is gradual</li><li>You have some technical comfort, even if it&#8217;s just spreadsheets and a basic website builder</li></ul>



<p class="wp-block-paragraph"><strong>It&#8217;s probably not worth it if:</strong></p>



<ul class="wp-block-list"><li>Your topic requires deep original thought or personal experience on every page</li><li>The search queries you&#8217;d target are already dominated by massive sites with real authority</li><li>You can&#8217;t identify a repeatable template that works across many variations</li><li>You&#8217;re only interested in tricking Google rather than helping readers</li><li>You need results next week (programmatic SEO is a long game)</li></ul>



<p class="wp-block-paragraph"><strong>The honest truth:</strong> Most people who attempt programmatic SEO either give up before publishing enough pages to see results, or they cut corners on quality and get penalized. The sweet spot is finding a niche where you can provide genuine value at scale — and that niche is more specific than you think.</p>



<h2 class="wp-block-heading">The Quality Test</h2>



<p class="wp-block-paragraph">Before I invest time building programmatic pages for any topic, I apply a simple test:</p>



<p class="wp-block-paragraph"><strong>If a real person landed on this page from a Google search, would they feel like their time was respected?</strong></p>



<p class="wp-block-paragraph">Not &#8220;would they click around the site.&#8221; Not &#8220;would Google&#8217;s algorithm reward it.&#8221; Would an actual human being read this page and think, &#8220;Good, that&#8217;s what I needed to know&#8221;?</p>



<p class="wp-block-paragraph">If the answer is yes, the approach is sound regardless of how the content was created — by hand, by template, by AI, or by some combination. If the answer is no, no amount of technical sophistication will save it. Google is remarkably good at figuring out when people are disappointed by what they find.</p>



<p class="wp-block-paragraph">This is the real shift in programmatic SEO. It&#8217;s no longer about creating content that fools algorithms into thinking you&#8217;re providing value when you&#8217;re not. It&#8217;s about actually providing value — and using automation to do it at a scale that would be impossible manually.</p>



<h2 class="wp-block-heading">Where to Start</h2>



<p class="wp-block-paragraph">If you&#8217;re curious about programmatic SEO but don&#8217;t want to build a complex pipeline on day one, start here:</p>



<ol class="wp-block-list"><li><strong>Find your pattern.</strong> What questions do people search for in your space that follow a repeatable format? Use Google&#8217;s autocomplete, &#8220;People also ask&#8221; boxes, or a tool like AlsoAsked to spot templates.</li><li><strong>Check the competition.</strong> Search for a few variations of your pattern. If the top results are from massive sites with huge authority, pick a more specific niche. If the results are thin or unhelpful, you&#8217;ve found an opportunity.</li><li><strong>Build one page by hand.</strong> Before automating anything, manually create the best possible version of one page in your template. This becomes your quality benchmark.</li><li><strong>Then scale gradually.</strong> Start with 10-20 pages, not 1,000. See how they perform. Adjust your template based on what works. Only then consider building automation.</li></ol>



<p class="wp-block-paragraph">The tools available today — from simple no-code builders to full AI agent pipelines — make the scaling part easier than ever. But the strategic thinking that goes into choosing what to build? That&#8217;s still on you.</p>



<p class="wp-block-paragraph">I&#8217;ve written more about the technical side of building these pipelines in my post on <a href="https://www.mattwarren.co/2024/08/programmatic-seo/">programmatic SEO</a>, and if you&#8217;re interested in how AI fits into a broader content workflow, take a look at <a href="https://www.mattwarren.co/2026/01/how-i-use-ai-to-write-and-publish-blog-posts/">how I use AI to write and publish blog posts</a>. For the growth-minded builders, <a href="https://www.mattwarren.co/2026/01/growth-engineering-with-claude-code-why-your-next-marketing-platform-is-a-code-editor/">growth engineering with Claude Code</a> gets into the deeper technical possibilities.</p>



<p class="wp-block-paragraph">But honestly? Start with the pattern. Everything else follows from that.</p>

]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10385</post-id>	</item>
		<item>
		<title>I Built an AI Agent That Monitors Your Competitors While You Sleep</title>
		<link>https://www.mattwarren.co/2026/03/i-built-an-ai-agent-that-monitors-your-competitors-while-you-sleep/</link>
		
		<dc:creator><![CDATA[Matt]]></dc:creator>
		<pubDate>Sun, 08 Mar 2026 17:14:04 +0000</pubDate>
				<category><![CDATA[AI & Automation]]></category>
		<category><![CDATA[Entrepreneurship]]></category>
		<guid isPermaLink="false">https://www.mattwarren.co/2026/03/i-built-an-ai-agent-that-monitors-your-competitors-while-you-sleep/</guid>

					<description><![CDATA[Most e-commerce brands are flying blind on competitive intelligence. They rely on a team member manually checking a few competitor sites once a week — if they remember. A competitor drops prices on a Friday afternoon. The team doesn&#8217;t notice until Monday. That&#8217;s an entire weekend of lost sales to an alert you never got. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Most e-commerce brands are flying blind on competitive intelligence. They rely on a team member manually checking a few competitor sites once a week — if they remember. A competitor drops prices on a Friday afternoon. The team doesn&#8217;t notice until Monday. That&#8217;s an entire weekend of lost sales to an alert you never got.</p>



<p class="wp-block-paragraph">The manual approach doesn&#8217;t scale. It doesn&#8217;t run on weekends. And it can&#8217;t simultaneously watch pricing pages, Amazon listings, product catalogs, review trends, and ad activity across five competitors at once.</p>



<p class="wp-block-paragraph">That&#8217;s the problem this project set out to solve.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The Build Story</h2>



<p class="wp-block-paragraph">The Competitor Tracker Agent started as a personal frustration. Running a brand means constantly asking: what are competitors doing right now? Are they running a sale? Did they just launch something new? Are their reviews tanking — and is that an opening to capture market share?</p>



<p class="wp-block-paragraph">The only honest answer used to be: &#8220;I don&#8217;t know, and finding out takes too long to be worth it.&#8221;</p>



<p class="wp-block-paragraph">Here&#8217;s the thing — the data isn&#8217;t hidden. Competitor pricing is public. Amazon reviews are public. New product launches on Shopify stores are detectable. Google Ads transparency data is accessible. The problem isn&#8217;t access to the data. The problem is that gathering it, comparing it to what you saw last week, and then reasoning about what it means — that&#8217;s a full-time job.</p>



<p class="wp-block-paragraph">So the question became: what if an AI agent could do all of that automatically?</p>



<p class="wp-block-paragraph">Building small AI automations has been a recurring theme in this workflow — the insight from working on <a href="https://www.mattwarren.co/2024/04/mini-ai-automations/">mini AI automations</a> was that the highest-leverage moves are rarely the complex ones. You chain a few reliable steps together, automate the repetitive parts, and let the AI handle the reasoning layer. That&#8217;s exactly the architecture here.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">What the Agent Actually Does</h2>



<p class="wp-block-paragraph">The Competitor Tracker Agent runs on a 6-hour scan cycle, 24 hours a day. It monitors four intelligence pillars:</p>



<h3 class="wp-block-heading">Price Monitoring</h3>



<p class="wp-block-paragraph">Tracks competitor pricing across DTC websites and Amazon ASINs. Configurable thresholds mean you only get alerted when it actually matters (say, a change greater than 5%), not every minor fluctuation. It catches flash sales, coupon activity, and Buy Box changes.</p>



<h3 class="wp-block-heading">Product Intelligence</h3>



<p class="wp-block-paragraph">Detects new product launches before they&#8217;re announced publicly. Shopify stores expose their full product catalog via a public endpoint — a new SKU showing up there at 11pm on a Thursday gets flagged immediately. Discontinuations, variant expansions, and positioning copy changes are all tracked.</p>



<h3 class="wp-block-heading">Review and Sentiment Analysis</h3>



<p class="wp-block-paragraph">Monitors Amazon review counts and star ratings over time. When a competitor&#8217;s ratings start declining — say, dropping from 4.3 to 4.0 over 30 days — that&#8217;s a signal. It means customers are unhappy, and if you&#8217;re selling in the same category, that&#8217;s an opening. The agent surfaces these trends before they show up in your own sales data.</p>



<h3 class="wp-block-heading">Ad and Campaign Monitoring</h3>



<p class="wp-block-paragraph">Tracks competitor advertising activity via Google Ads Transparency Center and Amazon Sponsored placements. When a competitor pivots their messaging or launches a new campaign targeting terms they&#8217;ve never used before, that signals a strategic shift worth knowing about.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The Tech Behind It</h2>



<p class="wp-block-paragraph">The agent is built in Python with Claude AI as the reasoning layer. Here&#8217;s the stack:</p>



<ul class="wp-block-list">
<li><strong>Web scraping layer</strong> — Custom scrapers for competitor DTC sites, Shopify catalog endpoints, and Amazon product pages. Rotating request intervals to stay within reasonable limits.</li>
<li><strong>Amazon monitoring</strong> — ASIN-level tracking for pricing, review counts, BSR, and ad placements via public data and optional SP-API integration.</li>
<li><strong>Ad intelligence</strong> — SerpAPI for Google Shopping and Ads Transparency Center data; Amazon Sponsored Brands detection from search result pages.</li>
<li><strong>Claude AI for analysis</strong> — Raw data gets fed into Claude with context about what changed since the last scan. Claude reasons about whether a change is significant, what it likely means strategically, and what action to take. This is the part that makes it genuinely useful rather than just another data dump.</li>
<li><strong>Slack integration</strong> — Alerts fire within minutes of a significant change being detected. The daily briefing is a structured report generated every weekday at 8am.</li>
</ul>



<p class="wp-block-paragraph">The agent also maintains persistent memory across scans — tracking trends over weeks and months, not just comparing today against yesterday. That historical context is what lets it say things like &#8220;Acme&#8217;s prices are at a 6-month low&#8221; rather than just &#8220;price changed.&#8221;</p>



<p class="wp-block-paragraph">This fits into a broader pattern of thinking about AI as infrastructure rather than as a one-off tool. The post on <a href="https://www.mattwarren.co/2026/01/growth-engineering-with-claude-code-why-your-next-marketing-platform-is-a-code-editor/">growth engineering with Claude Code</a> explored this — when you treat AI as the reasoning engine inside a persistent automated system, you get compounding returns that a prompt-and-response workflow never will.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">What the Morning Briefing Looks Like</h2>



<p class="wp-block-paragraph">Every weekday at 8am, a structured report lands in a dedicated Slack channel. Here&#8217;s what a typical Friday briefing looks like:</p>



<p class="wp-block-paragraph"><strong>Price Intel:</strong> Acme Corp dropped Widget Pro from $34.99 to $27.99 (-20%). Flash sale, likely ends Sunday. Their lowest price in 6 months.</p>



<p class="wp-block-paragraph"><strong>Product Intel:</strong> BrandX quietly added &#8220;Pro Max Bundle&#8221; to their Shopify store. Not announced publicly. $89 price point — a new premium tier.</p>



<p class="wp-block-paragraph"><strong>Review Intel:</strong> No major rating changes. BrandX trending slightly down: 4.1 to 4.0 stars over 30 days.</p>



<p class="wp-block-paragraph"><strong>Ad Intel:</strong> Acme Corp added 3 new Google Shopping ads this week targeting &#8220;budget widget&#8221; and &#8220;affordable widget 2026&#8221; — consistent with their price drop strategy.</p>



<p class="wp-block-paragraph"><strong>Recommended Actions:</strong></p>



<ol class="wp-block-list">
<li>Consider a targeted counter-promotion this weekend while Acme&#8217;s prices are low — capture price-sensitive shoppers before they return to normal pricing.</li>
<li>Investigate BrandX&#8217;s Pro Max Bundle. If it gains traction, it could pressure mid-tier SKUs.</li>
<li>BrandX&#8217;s review decline is an opening — consider increasing PPC bids on their branded terms.</li>
</ol>



<p class="wp-block-paragraph">The key distinction is the recommendations section. Raw data is noise. The agent uses Claude to reason about what the data means in context and what to do about it. That&#8217;s the difference between a monitoring tool and actual intelligence.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The DIY Competitive Advantage</h2>



<p class="wp-block-paragraph">There&#8217;s a strong argument for building tools like this rather than buying off-the-shelf software. Enterprise competitive intelligence platforms like Crayon and Klue exist — but they&#8217;re built for B2B SaaS companies, start at $15,000+ per year, and track PR and content rather than pricing and Amazon reviews. They&#8217;re solving a different problem.</p>



<p class="wp-block-paragraph">The <a href="https://www.mattwarren.co/2025/05/why-doing-it-yourself-is-the-ultimate-competitive-advantage/">doing-it-yourself advantage</a> is that custom-built systems can be tuned exactly to the competitive landscape at hand. Which competitors matter. Which price changes actually warrant a response. Which product categories to watch. That specificity is what turns monitoring into actionable intelligence.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">What This Becomes</h2>



<p class="wp-block-paragraph">Competitive intelligence at this level of depth and automation wasn&#8217;t accessible to small and mid-size e-commerce brands before. It required a dedicated analyst, an expensive platform, or a lot of manual work that was never consistent enough to be reliable.</p>



<p class="wp-block-paragraph">The agent changes that calculus. Tell us who your competitors are, and we install a monitoring system tailored to your market in under two weeks. Scans run every 6 hours. Alerts arrive in real-time. The morning briefing is waiting before the team starts their day.</p>



<p class="wp-block-paragraph">The parallel to <a href="https://www.mattwarren.co/2026/02/adversarial-agents/">building AI agent systems that handle complex, multi-step reasoning tasks</a> is clear: the value isn&#8217;t in any single AI call, it&#8217;s in the architecture that chains intelligence together into something that runs continuously without human intervention.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Full Details and Demo</h2>



<p class="wp-block-paragraph">The full service page — including pricing, the complete feature breakdown, and a sample Slack report — is at <a href="https://www.mattwarren.co/competitive-intelligence/">mattwarren.co/competitive-intelligence</a>.</p>



<p class="wp-block-paragraph">If this is a problem your brand is dealing with, <a href="https://calendar.app.google/mwmhb7sfzbjjXKPX7">book a free 30-minute competitor audit</a>. Walk away with a competitive landscape snapshot whether you buy or not.</p>

]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10380</post-id>	</item>
		<item>
		<title>I Couldn&#8217;t Afford an Executive Coach, So I Built One</title>
		<link>https://www.mattwarren.co/2026/03/i-couldnt-afford-an-executive-coach-so-i-built-one/</link>
		
		<dc:creator><![CDATA[Matt]]></dc:creator>
		<pubDate>Tue, 03 Mar 2026 02:02:23 +0000</pubDate>
				<category><![CDATA[AI & Automation]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[autoblog samurai]]></category>
		<guid isPermaLink="false">https://www.mattwarren.co/2026/03/i-couldnt-afford-an-executive-coach-so-i-built-one/</guid>

					<description><![CDATA[Over the weekend I was talking with a high-level executive coach. Smart person. Real deal. Halfway through the conversation, they offered me a spot in their group program — a dozen people, regular group sessions, accountability framework, the whole package. I passed. Not because it wasn&#8217;t valuable. It clearly was. But the price point was [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Over the weekend I was talking with a high-level executive coach. Smart person. Real deal. Halfway through the conversation, they offered me a spot in their group program — a dozen people, regular group sessions, accountability framework, the whole package.</p>



<p class="wp-block-paragraph">I passed.</p>



<p class="wp-block-paragraph">Not because it wasn&#8217;t valuable. It clearly was. But the price point was higher than I wanted to commit to, and the weekly time requirement was more than my schedule could absorb right now. So I said thanks, thought about it for about 20 minutes, and then opened Claude Code.</p>



<p class="wp-block-paragraph">Here&#8217;s what I built instead.</p>



<h2 class="wp-block-heading">The idea that sparked it</h2>



<p class="wp-block-paragraph">The coaching conversation had been happening over text. Just back-and-forth messages, advice trickling in throughout the day. What struck me about that format wasn&#8217;t the content — it was the <em>delivery mechanism</em>.</p>



<p class="wp-block-paragraph">You don&#8217;t go get it. It comes to you.</p>



<p class="wp-block-paragraph">That&#8217;s a fundamentally different experience than opening ChatGPT and typing a question. When a message shows up on your phone unprompted, your brain processes it differently. There&#8217;s a social reflex that kicks in. Someone reached out. Someone is thinking about you and your goals. Even if intellectually you know it&#8217;s a bot, the messenger app context does something to the accountability equation that a browser tab simply doesn&#8217;t.</p>



<p class="wp-block-paragraph">So the question became: could an AI agent replicate that dynamic? Not just a chatbot that answers questions, but something that runs persistently, thinks about your situation in the background, and reaches out to you when it has something worth saying?</p>



<h2 class="wp-block-heading">The build: research first</h2>



<p class="wp-block-paragraph">The first thing I did was ask Claude Code to go do research. Not write code — just go learn things. I sent it out to find scientific papers, behavioral research, and business frameworks on what actually makes executive coaching effective. What questions do good coaches ask? How do they maintain accountability? What cadences work? How do you help someone stay focused on priorities without becoming a nag?</p>



<p class="wp-block-paragraph">It ran for about 20 minutes, pulling from multiple sources, organizing findings into a structured research document. The output was genuinely useful — not just &#8220;here are some coaching tips&#8221; but a breakdown of the behavioral psychology behind why coaching works, what distinguishes great coaches from mediocre ones, and the specific techniques that show up consistently in the research.</p>



<p class="wp-block-paragraph">That document became the knowledge base for everything that followed.</p>



<h2 class="wp-block-heading">From research to software plan</h2>



<p class="wp-block-paragraph">Once the research was solid, I asked it to turn those findings into a software plan. Here&#8217;s what that plan centered on:</p>



<p class="wp-block-paragraph"><strong>A Telegram bot as the interface.</strong> Not a web app. Not a new chat window you have to go find. A bot that lives in your existing messaging app, alongside your other conversations, and behaves like a contact in your phone. This was non-negotiable from the start — the whole point was that the interface creates accountability, and that only works if it&#8217;s somewhere you already check.</p>



<p class="wp-block-paragraph"><strong>Proactive scheduling.</strong> The research consistently highlighted a morning check-in as one of the highest-leverage interventions in any coaching relationship. What are your top three things to accomplish today? Simple question, but when asked by a person (or something that feels like a person), it creates a kind of micro-commitment that the end of the day will test. The bot would send this every morning, unprompted.</p>



<p class="wp-block-paragraph"><strong>Evening accountability.</strong> Paired with the morning check-in is an end-of-day follow-up. Did you accomplish those three things? If not, what got in the way? This is where accountability becomes real. It&#8217;s easy to type your priorities and then ignore them. It&#8217;s harder when something is going to ask you about them later.</p>



<p class="wp-block-paragraph"><strong>A memory system.</strong> This was the piece that made everything else worth building. A good coach remembers what you told them last week. They notice patterns. They connect what you said in January to something you&#8217;re struggling with in March. Without memory, a coaching bot is just a fancy prompt. With it, the conversations compound. I asked for a SQLite database and a system that would pull relevant context into each interaction — what goals had been discussed, what came up in recent check-ins, what had been going well or poorly.</p>



<h2 class="wp-block-heading">What it does, concretely</h2>



<p class="wp-block-paragraph">The resulting application is straightforward in structure but surprisingly capable in practice. It runs as a persistent background process on my computer. When it starts up (configured to launch on login), it connects to Telegram and starts listening. A scheduler runs alongside it.</p>



<p class="wp-block-paragraph">Every morning, before I&#8217;ve opened a browser, there&#8217;s a message waiting:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>Good morning. What are your three most important things today?</em></p>
</blockquote>



<p class="wp-block-paragraph">I type back. The conversation might go a few exchanges. The bot has context from previous days, so it might note that one of the things I mentioned connects to a goal we discussed earlier in the week, or ask whether the thing I said was blocking me last Thursday got resolved.</p>



<p class="wp-block-paragraph">At the end of the day, there&#8217;s a follow-up. At the end of the week, a slightly longer check-in. The system also has a lightweight internal process that evaluates whether anything in my recent history is worth proactively surfacing — something that&#8217;s been flagged multiple times, a deadline approaching, a thread that went quiet. Most days it decides there&#8217;s nothing urgent to interrupt with. Occasionally it sends something.</p>



<p class="wp-block-paragraph">That&#8217;s the whole system. It&#8217;s not complicated. But the experience of using it is substantially different from anything I&#8217;ve tried before.</p>



<h2 class="wp-block-heading">Why this actually works</h2>



<p class="wp-block-paragraph">Here&#8217;s the thing about accountability: it&#8217;s a social phenomenon. The research makes this clear. People keep commitments better when they feel that someone is tracking. It doesn&#8217;t matter much whether the tracker is a person, a journal, or a piece of software — what matters is the sense that your stated intentions have a witness.</p>



<p class="wp-block-paragraph">Web apps and chatbots fail at this because they require you to initiate. You have to go there, open it, decide to engage with your goals. That friction is small in theory and enormous in practice. The days you need accountability most are the days you&#8217;re least likely to open the accountability app.</p>



<p class="wp-block-paragraph">A Telegram bot sidesteps this entirely. It comes to you. The interface is indistinguishable from a message from a real person. On some level your brain doesn&#8217;t fully process the distinction, and that&#8217;s exactly the point.</p>



<p class="wp-block-paragraph">After a few days of using this, the morning question has started to feel like a real thing I need to respond to. The end-of-day check-in has made me more honest with myself about what actually got done. <a href="https://www.mattwarren.co/2015/08/focus-is-critical/">I&#8217;ve written before about the challenge of maintaining focus</a> — this is the most practical solution I&#8217;ve found.</p>



<h2 class="wp-block-heading">The bigger shift</h2>



<p class="wp-block-paragraph">I keep coming back to one observation from this project: at the end of it, I felt like I&#8217;d hired a coach. Not built an app. Hired someone.</p>



<p class="wp-block-paragraph">That reframe is worth sitting with. There&#8217;s a long history of software built around the idea of helping people with productivity, <a href="https://www.mattwarren.co/2025/02/goals-and-goal-setting/">goal setting</a>, and accountability. Most of it has failed to change behavior in any meaningful way because it treats the problem as an organizational challenge. Here&#8217;s a system to track your goals. Here&#8217;s a dashboard. Here&#8217;s a way to categorize your tasks.</p>



<p class="wp-block-paragraph">What actually changes behavior is a relationship. Someone who asks how it&#8217;s going, remembers what you said, and expects you to show up. Software has historically been incapable of this because it&#8217;s reactive — it waits for you.</p>



<p class="wp-block-paragraph">The combination of a persistent agent, a messenger interface, and a memory system produces something that isn&#8217;t quite software and isn&#8217;t quite a relationship. It&#8217;s something new. And it works because it targets the actual mechanism of accountability rather than building another dashboard nobody opens.</p>



<h2 class="wp-block-heading">Building something like this</h2>



<p class="wp-block-paragraph">If this sounds useful, the pattern is reproducible. You&#8217;re not building anything exotic. The components are:</p>



<p class="wp-block-paragraph">A <strong>Telegram bot</strong> (the interface — python-telegram-bot library handles this in about 50 lines). A <strong>scheduler</strong> (APScheduler or a simple cron-like structure) for proactive messages. A <strong>memory layer</strong> (SQLite is more than sufficient — just store conversations and let the agent summarize and retrieve them). A <strong>knowledge base</strong> (the research Claude Code collected became the system prompt that shapes every interaction). A <strong>persistent process</strong> (a simple Python script set to run on startup, or a systemd service if you want something more robust).</p>



<p class="wp-block-paragraph">The whole thing lives in a folder on your computer. No hosting required. No subscriptions. Accessible anywhere through Telegram.</p>



<p class="wp-block-paragraph">Claude Code handled the research, the architecture, and the implementation in a single session. <a href="https://www.mattwarren.co/2026/01/claude-code-first-development-building-ai-operable-systems/">The approach I use for building with AI</a> — research first, then architecture, then implementation — works especially well for projects like this because the research phase directly shapes the software design.</p>



<h2 class="wp-block-heading">Software that runs forever</h2>



<p class="wp-block-paragraph">There&#8217;s something that becomes obvious once you build one of these persistent agents and live with it for a few days: this is a fundamentally different category of software.</p>



<p class="wp-block-paragraph">We know command-line tools, web apps, desktop apps, and mobile apps. These are all things you go get when you need them. They sit in a menu or a browser tab or an app drawer, waiting to be opened.</p>



<p class="wp-block-paragraph">Persistent agents are different. They run in the background. They monitor things. They decide when something requires your attention. They interrupt you only when warranted. The <a href="https://www.mattwarren.co/2017/04/finding-a-coach/">interface is a chat</a> — a format your brain associates with people, not programs.</p>



<p class="wp-block-paragraph">This is where more software is going. Not apps you download — agents you deploy. Processes that run on your hardware (or in the cloud), maintain memory across months of interaction, and have access to tools that let them actually do things on your behalf. The executive coach is a simple example. The same architecture could monitor your business metrics and alert you when something looks off. It could track your health data and notice patterns before you do. It could manage a process — customer follow-ups, content scheduling, financial reporting — and only surface the items that genuinely need your judgment.</p>



<p class="wp-block-paragraph">The paradigm shift isn&#8217;t about AI getting smarter. It&#8217;s about software becoming proactive. That transition is happening fast enough that most people haven&#8217;t noticed it yet, but once you&#8217;ve lived with a persistent agent for a week, you&#8217;ll wonder why all your software was passive.</p>



<p class="wp-block-paragraph">I passed on the coaching program. A few hours later I had a coach. That&#8217;s the most interesting part of all of this — not the technology, but what becomes possible when the barrier to building drops to nearly zero.</p>

]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10368</post-id>	</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 81/97 objects using Memcached
Page Caching using Memcached (Page is feed) 
Lazy Loading (feed)
Database Caching 1/13 queries in 0.017 seconds using Memcached (Request-wide modification query)

Served from: www.mattwarren.co @ 2026-05-31 22:44:19 by W3 Total Cache
-->