<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Digital logs by Jae Lee]]></title><description><![CDATA[Serial entrepreneur | Startup mentor (Founder Institute, Ignyte) | Author of Python programming books | Google Certified AI Educator]]></description><link>https://blog.jael.ee</link><image><url>https://substackcdn.com/image/fetch/$s_!cHEv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe29882b9-399c-4ba5-81d9-6661dac97c24_864x864.png</url><title>Digital logs by Jae Lee</title><link>https://blog.jael.ee</link></image><generator>Substack</generator><lastBuildDate>Fri, 15 May 2026 08:43:08 GMT</lastBuildDate><atom:link href="https://blog.jael.ee/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Jae Lee]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[leejaew@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[leejaew@substack.com]]></itunes:email><itunes:name><![CDATA[Jae Lee]]></itunes:name></itunes:owner><itunes:author><![CDATA[Jae Lee]]></itunes:author><googleplay:owner><![CDATA[leejaew@substack.com]]></googleplay:owner><googleplay:email><![CDATA[leejaew@substack.com]]></googleplay:email><googleplay:author><![CDATA[Jae Lee]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Distribution is still king]]></title><description><![CDATA[I remember looking at hotel inventory in Singapore and realizing that, inside an online travel agency, or OTA, platform, a room is not really a room.]]></description><link>https://blog.jael.ee/p/distribution-is-still-king</link><guid isPermaLink="false">https://blog.jael.ee/p/distribution-is-still-king</guid><dc:creator><![CDATA[Jae Lee]]></dc:creator><pubDate>Tue, 05 May 2026 09:53:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cvd7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b0e1cb5-00cb-406c-88c4-34c560951e9e_2560x1440.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cvd7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b0e1cb5-00cb-406c-88c4-34c560951e9e_2560x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cvd7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b0e1cb5-00cb-406c-88c4-34c560951e9e_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!cvd7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b0e1cb5-00cb-406c-88c4-34c560951e9e_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!cvd7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b0e1cb5-00cb-406c-88c4-34c560951e9e_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!cvd7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b0e1cb5-00cb-406c-88c4-34c560951e9e_2560x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cvd7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b0e1cb5-00cb-406c-88c4-34c560951e9e_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b0e1cb5-00cb-406c-88c4-34c560951e9e_2560x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3048112,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/196522250?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b0e1cb5-00cb-406c-88c4-34c560951e9e_2560x1440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cvd7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b0e1cb5-00cb-406c-88c4-34c560951e9e_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!cvd7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b0e1cb5-00cb-406c-88c4-34c560951e9e_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!cvd7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b0e1cb5-00cb-406c-88c4-34c560951e9e_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!cvd7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b0e1cb5-00cb-406c-88c4-34c560951e9e_2560x1440.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I remember looking at hotel inventory in Singapore and realizing that, inside an online travel agency, or OTA, platform, a room is not really a room.</p><p>To the guest, it is a weekend stay, a small escape, or a family decision. To the platform, it is content. And if that content is not connected, updated, trusted, and distributed, it does not matter how good the room is.</p><p>That is a lesson I keep relearning in different industries.</p><p>Great content matters. Great supply matters. Great products matter. But until they are distributed well, they remain potential energy.</p><p>A hotel room is not just a room. Inside the travel tech value chain, it is content. An OTA needs content so guests can discover, compare, trust, and book. The more unique and reliable that content is, the stronger the platform becomes.</p><p>But content does not move by itself.</p><p>To make a room bookable, the OTA needs connectivity. Hotels use property management systems and channel managers. Rates, availability, room types, restrictions, packages, photos, policies, and inventory need to move constantly between systems. If this layer is weak, even good supply becomes invisible or unreliable.</p><p>That was one of the lessons I learned while serving as the Chief Technology Officer (CTO) of a new OTA player in Singapore.</p><p>During that period, <strong><a href="https://www.stb.gov.sg/">Singapore Tourism Board</a></strong> launched the SingapoRediscovers Vouchers program. It was a simple idea with a lot of operating depth behind it. Give citizens digital credits, make domestic tourism more accessible, and stimulate the local tourism economy when international travel was heavily restricted.</p><p>I still think it was a strong strategy. It did not only create demand. It distributed value.</p><p>For the campaign to work, hotels, attractions, tours, packages, payment flows, voucher redemption, and user discovery all had to connect. <strong>Traveloka</strong>, as one of the authorized booking partners, <strong><a href="https://www.traveloka.com/en-sg/explore/activities/traveloka-for-singaporediscovers-vouchers/43502">described more than 100 hotel inventories, over 1,000 room types and packages, more than 100 attractions and tour partners, and over 200 experiences available to users through its platform</a></strong>.</p><p>That is not just marketing. That is infrastructure becoming visible to the end user.</p><p>The user sees a voucher and a booking flow. Underneath it, there is supply aggregation, content freshness, platform trust, campaign design, partner onboarding, and distribution.</p><p>This is where I think many founders, including myself at times, underestimate the importance of distribution.</p><p>We like to believe that if the content is good enough, people will find it. Sometimes they do. Most of the time, they do not. Value needs a path. Content needs connectivity. Supply needs access. A platform needs distribution.</p><p>Earlier this year, I built an open source project called VisitKorea AI MCP Hub, released under the MIT license.</p><p>The motivation came from a similar pattern.</p><p>Korea has rich tourism content. The <strong>Korea Tourism Content Lab</strong>, <strong>built by the <a href="https://www.mcst.go.kr/english/">Ministry of Culture, Sports and Tourism</a> and the <a href="https://knto.or.kr/eng/">Korea Tourism Organization</a>, is a digital tourism content platform</strong> that brings together tourism information, images, videos, and other assets. It contains around 700,000 records, including multilingual tourism information and high-quality images, and makes them available through APIs.</p><p>That is valuable content.</p><p>But in the AI agent era, I do not think availability alone is enough.</p><p>If tourism content is going to reach the masses, it needs to be available through the protocols and interfaces that modern builders and AI agents actually use. It needs to be easy for an agent to search, retrieve, reason, plan, cite, and produce something useful for a real person.</p><p>That is why I built three MCP servers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rVe2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c6b3d90-faf6-40fd-947b-fd63362b2fd7_2940x1846.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rVe2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c6b3d90-faf6-40fd-947b-fd63362b2fd7_2940x1846.png 424w, https://substackcdn.com/image/fetch/$s_!rVe2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c6b3d90-faf6-40fd-947b-fd63362b2fd7_2940x1846.png 848w, https://substackcdn.com/image/fetch/$s_!rVe2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c6b3d90-faf6-40fd-947b-fd63362b2fd7_2940x1846.png 1272w, https://substackcdn.com/image/fetch/$s_!rVe2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c6b3d90-faf6-40fd-947b-fd63362b2fd7_2940x1846.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rVe2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c6b3d90-faf6-40fd-947b-fd63362b2fd7_2940x1846.png" width="1456" height="914" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0c6b3d90-faf6-40fd-947b-fd63362b2fd7_2940x1846.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:914,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!rVe2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c6b3d90-faf6-40fd-947b-fd63362b2fd7_2940x1846.png 424w, https://substackcdn.com/image/fetch/$s_!rVe2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c6b3d90-faf6-40fd-947b-fd63362b2fd7_2940x1846.png 848w, https://substackcdn.com/image/fetch/$s_!rVe2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c6b3d90-faf6-40fd-947b-fd63362b2fd7_2940x1846.png 1272w, https://substackcdn.com/image/fetch/$s_!rVe2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c6b3d90-faf6-40fd-947b-fd63362b2fd7_2940x1846.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The first is the general VisitKorea tourism MCP server. It gives AI agents access to tourism information such as attractions, regions, places, images, and destination details. This is the base layer for discovery.</p><p>The second is the medical tourism MCP server. It focuses on Korea&#8217;s medical tourism information, including clinics, hospitals, specializations, and foreign-patient-oriented services. This matters because medical tourism has different trust, context, and decision requirements than leisure travel.</p><p>The third is the wellness tourism MCP server. It exposes wellness destinations such as spas, healing centers, meditation, nature-based experiences, and wellness-related facilities. This is important because wellness travel is often less transactional. People are not only looking for a place to visit. They are looking for recovery, balance, and a certain emotional state.</p><p>Together, these servers turn static public data into something an AI agent can actually use.</p><p>I saw this become real in two use cases.</p><p>The first was when I was planning a trip to invite a Saudi conglomerate to visit Korea. This was not a casual itinerary. The context mattered. The trip needed to respect business expectations, cultural fit, time constraints, hospitality standards, and the kind of Korean experience that would feel both premium and meaningful.</p><p>A generic travel plan would not work.</p><p>The agent had to think through who the guests were, why they were coming, what kind of impression Korea should leave, and how the schedule should balance meetings, cultural exposure, food, rest, and movement. The content needed to be curated, but the distribution layer made it possible for the agent to assemble the plan quickly from reliable data.</p><p>The second use case was more personal.</p><p>A former colleague of mine, originally from the United States, had never visited Korea. He was planning to come with his family and had a young child. The criteria were completely different.</p><p>This was not about executive hospitality. It was about comfort, pacing, child-friendly experiences, jet lag, food choices, hotel location, airport transfers, and avoiding the mistake of over-planning a family trip.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!981k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b2822dd-ccd0-4ca4-ae6a-7badbc486462_1694x1956.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!981k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b2822dd-ccd0-4ca4-ae6a-7badbc486462_1694x1956.png 424w, https://substackcdn.com/image/fetch/$s_!981k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b2822dd-ccd0-4ca4-ae6a-7badbc486462_1694x1956.png 848w, https://substackcdn.com/image/fetch/$s_!981k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b2822dd-ccd0-4ca4-ae6a-7badbc486462_1694x1956.png 1272w, https://substackcdn.com/image/fetch/$s_!981k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b2822dd-ccd0-4ca4-ae6a-7badbc486462_1694x1956.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!981k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b2822dd-ccd0-4ca4-ae6a-7badbc486462_1694x1956.png" width="1456" height="1681" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b2822dd-ccd0-4ca4-ae6a-7badbc486462_1694x1956.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1681,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!981k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b2822dd-ccd0-4ca4-ae6a-7badbc486462_1694x1956.png 424w, https://substackcdn.com/image/fetch/$s_!981k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b2822dd-ccd0-4ca4-ae6a-7badbc486462_1694x1956.png 848w, https://substackcdn.com/image/fetch/$s_!981k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b2822dd-ccd0-4ca4-ae6a-7badbc486462_1694x1956.png 1272w, https://substackcdn.com/image/fetch/$s_!981k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b2822dd-ccd0-4ca4-ae6a-7badbc486462_1694x1956.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The agent helped create a full travel plan that considered those constraints. It used the MCP servers to gather source-backed tourism and wellness information, then produced a ready-to-use PDF itinerary that the family could actually carry into the trip.</p><p>That was the moment the pattern became clear again.</p><p>The value was not only in the data. The value was in bringing the data close enough to the user&#8217;s real decision.</p><p>A family does not want an API. A business guest does not want a database. A traveler does not want 700,000 records.</p><p>They want a plan that fits them.</p><p>This is where AI agents can create immediate value. Not by replacing the travel industry, but by connecting parts of the value chain that are still too far apart.</p><p>Public data is often far from the user touch point. Hotel inventory is far from emotional intent. Wellness content is far from actual recovery. Medical tourism information is far from trust. APIs are far from decisions.</p><p>The opportunity is to close that distance.</p><p>That is what distribution really means to me now.</p><p>It is not only paid ads, SEO, SEM, campaigns, or performance marketing. Those matter. I have seen how much they matter. But distribution starts earlier than marketing.</p><p>Distribution starts when value becomes reachable.</p><p>In travel, this means fresh inventory, channel connectivity, searchable content, trusted booking flows, and clear user journeys. In AI, it means modern protocols, agent-ready tools, useful schemas, and workflows that produce outcomes instead of raw data.</p><p>The founder lesson is simple, but not easy.</p><p>Do not confuse having value with distributing value.</p><p>High-quality content is important. But if it cannot travel through the right channels, into the right tools, at the right moment, for the right user, it stays locked inside the system.</p><p>Content is the asset.</p><p>Distribution is the path.</p><p>And in most markets, the path is still where the company is built.</p>]]></content:encoded></item><item><title><![CDATA[Building Agent CMO. What AI-native software engineering really requires.]]></title><description><![CDATA[A builder's note on master-agent orchestration, durable product memory, and how senior engineers should use coding agents without letting speed create architectural debt.]]></description><link>https://blog.jael.ee/p/building-agent-cmo-what-ai-native</link><guid isPermaLink="false">https://blog.jael.ee/p/building-agent-cmo-what-ai-native</guid><dc:creator><![CDATA[Jae Lee]]></dc:creator><pubDate>Sun, 03 May 2026 19:34:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fBVJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e102b29-f4d1-4d24-8add-765b484bcc95_1024x672.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fBVJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e102b29-f4d1-4d24-8add-765b484bcc95_1024x672.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fBVJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e102b29-f4d1-4d24-8add-765b484bcc95_1024x672.png 424w, https://substackcdn.com/image/fetch/$s_!fBVJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e102b29-f4d1-4d24-8add-765b484bcc95_1024x672.png 848w, https://substackcdn.com/image/fetch/$s_!fBVJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e102b29-f4d1-4d24-8add-765b484bcc95_1024x672.png 1272w, https://substackcdn.com/image/fetch/$s_!fBVJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e102b29-f4d1-4d24-8add-765b484bcc95_1024x672.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fBVJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e102b29-f4d1-4d24-8add-765b484bcc95_1024x672.png" width="1024" height="672" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e102b29-f4d1-4d24-8add-765b484bcc95_1024x672.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:672,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:424428,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/196344157?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e102b29-f4d1-4d24-8add-765b484bcc95_1024x672.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fBVJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e102b29-f4d1-4d24-8add-765b484bcc95_1024x672.png 424w, https://substackcdn.com/image/fetch/$s_!fBVJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e102b29-f4d1-4d24-8add-765b484bcc95_1024x672.png 848w, https://substackcdn.com/image/fetch/$s_!fBVJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e102b29-f4d1-4d24-8add-765b484bcc95_1024x672.png 1272w, https://substackcdn.com/image/fetch/$s_!fBVJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e102b29-f4d1-4d24-8add-765b484bcc95_1024x672.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There was a point while building Agent CMO when I realized the hard part was no longer getting an AI to write code.</p><p>The hard part was giving the work enough structure so the speed did not create more problems than it solved.</p><p>That realization changed how I used coding agents. The future of software engineering is not only about asking AI to write code faster. It is about learning how to manage intelligent work.</p><p>When I started building Agent CMO, I did not want another marketing tool that generated a few headlines and called itself an AI product. I wanted to build an AI-native marketing operating system that could take a brief, reason through the strategy, produce campaign assets, review its own work, learn from performance, and help decide what to run next.</p><p>In other words, the product itself had to work more like an organization than a feature.</p><p>The same was true for the way I built it. I had to stop treating coding agents like autocomplete and start treating them like junior engineers, analysts, reviewers, QA specialists, and implementation partners. The quality of the output depended less on the model and more on how clearly I designed the work.</p><p>I was partly influenced by an X/Twitter <strong><a href="https://x.com/rsarver/status/2041148425366843500">article</a></strong> from <strong><a href="https://www.linkedin.com/in/rsarver/">Ryan Sarver</a></strong> that was well received because it did something useful and rare. It did not talk about AI agents in vague terms. It explained a real workflow from the perspective of someone actually using agents to extend their operating capacity. The structure was simple and effective: start from a real constraint, show the system that was built, explain the workflow, then share the lessons that other builders can reuse.</p><p>That is the spirit of this post. This is not a theoretical essay about AI. It is a builder&#8217;s note on what I learned developing Agent CMO, and how software engineers can use coding agents more effectively.</p><h3><strong>The first mistake is asking an agent to build the product</strong></h3><p>The worst prompt you can give a coding agent is to ask it to build a complete AI marketing platform.</p><p>It feels ambitious, but it is actually lazy. The agent has no product judgment, no sequencing, no architecture context, no acceptance criteria, and no reason to know which decisions matter most.</p><p>Early in the process, I forced myself to plan Agent CMO as an orchestration system before thinking about screens or database tables. The initial planning exercise defined the product around a master agent and a set of specialized sub-agents. The important design principle was clear: do not let production agents create assets before strategy agents have locked the brief, audience, positioning, and channel plan.</p><p>That principle became one of the foundations of the product.</p><p>If you allow content production to happen too early, the system can generate a lot of material quickly. But much of it will be generic, inconsistent, or hard to use. The strategy has to come first. The brief has to become structured data. The audience has to be defined. The positioning has to be sharpened. The assumptions have to be named. Only then should the system produce campaign assets.</p><p>This is also how coding agents should be used. Do not ask the agent to write code before you have clarified the architecture, dependency order, success criteria, and constraints.</p><h3><strong>Agent CMO is built as a coordinated AI workforce</strong></h3><p>At a high level, Agent CMO is a multi-agent AI marketing operating system. The user drops in a campaign brief, and a coordinated team of 18+ specialized agents researches, plans, writes, designs, reviews, packages, and learns from the campaign.</p><p>The master agent acts as the orchestrator. It does not try to do every job itself. Its responsibility is to manage the workflow, maintain the campaign context, enforce dependency order, and route work to the right sub-agent at the right time.</p><p>That matters because marketing work is not one task. It is a chain of dependent decisions.</p><p>The Brief Agent reads the user&#8217;s input and turns it into structured campaign data. The Market Research Agent looks at the market, trends, threats, and opportunities. The ICP Agent defines the target customer in detail. The Positioning Agent sharpens the message and unique value proposition. The Channel &amp; Funnel Agent maps the channels and customer journey. The Assumptions Agent names the core bets and gives each one a disproof condition.</p><p>Only after that strategy layer is formed do the production agents begin their work.</p><p>The Content Strategy Agent creates the campaign calendar. The Copywriting Agent writes headlines, social posts, calls to action, and core campaign copy. The Creative Direction Agent sets the visual and tonal direction. The Paid Media Agent builds ad variants for platforms such as Google, Meta, and LinkedIn. The Email Agent creates a five-step nurture sequence. The Prompt Engineering Agent produces prompt packs for image and video tools.</p><p>Then the governance layer checks the work.</p><p>The Brand QA Agent looks for brand drift. The QA Agent checks accuracy and quality issues. The CRO Agent looks for missed conversion opportunities. The Performance Agent projects reach, CTR, CPA, ROI, and prioritized A/B tests. The Memory Agent stores brand voice and learnings across campaigns. The Experiment Agent turns real results into the next campaign hypothesis.</p><p>The point is not that each agent has a clever name. The point is that each agent owns a bounded job.</p><p>That is what makes the system useful.</p><h3><strong>The product had to learn, not just generate</strong></h3><p>A lot of AI products still behave like disposable chat sessions. You ask for something, receive output, copy it somewhere else, and lose the context.</p><p>Agent CMO was designed around a different loop.</p><p>The platform takes in a brief, runs a nine-stage agent pipeline, produces reviewed and packaged assets, accepts real performance data, extracts learnings, and proposes the next experiment. The campaign does not end when the copy is generated. It continues into monitoring, learning, and iteration.</p><p>This is why the Memory Agent and Experiment Agent are not optional features. They are part of the core product philosophy.</p><p>A marketing system should remember what worked. It should remember what failed. It should remember approved brand voice, killed assumptions, audience insights, and lessons that should shape the next campaign. Otherwise every campaign starts from zero again.</p><p>That was one of the main product decisions behind Agent CMO. The value is not only speed. Speed matters, but compounding context matters more.</p><h3><strong>How I planned the development work</strong></h3><p>The development process followed the same logic as the product.</p><p>Instead of asking a coding agent to build the whole application in one pass, I separated the work into ordered workstreams. This applied whether I was working through coding agents directly, using <strong><a href="https://replit.com/refer/leejaew?ref_surface=universal-settings-modal">Replit</a></strong> as part of the development environment, or reviewing implementation details myself. Each workstream had a clear purpose, a set of files or components it was allowed to touch, and a definition of what completion looked like.</p><p>The initial planning focused on the agent architecture, the master-agent orchestration model, and the major capability groups: strategy, channel planning, creative production, governance, intelligence, and memory.</p><p>The later continuous development plan broke implementation and integration work into more practical streams. There were separate workstreams for pipeline implementation, API and database behavior, form and input validation, frontend and UI flows, admin access control, homepage SEO readiness, performance bottlenecks, and security checks.</p><p>This sounds obvious, but it is where many engineers lose time with coding agents. They give one large instruction, receive a large diff, then spend hours trying to understand what changed.</p><p>I prefer a different pattern.</p><p>Give the coding agent one meaningful unit of work. Tell it the context. Tell it what not to change. Ask it to produce a plan. Review the plan. Let it implement. Then verify the implementation with tests, logs, type checks, screenshots, or manual inspection. In environments like <a href="https://replit.com/refer/leejaew?ref_surface=universal-settings-modal">Replit</a>, this discipline matters even more because the agent can move quickly across files, dependencies, and runtime behavior. Speed is useful only when the scope is controlled.</p><p>That workflow feels slower at first. It is faster over a real project.</p><h3><strong>The architecture also had to support agentic work</strong></h3><p>Agent CMO is implemented as a pnpm monorepo with three main artifacts behind a path-routed reverse proxy. The web application runs on React, Vite, Tailwind, and Wouter. The API server runs on Express, Node, Drizzle, and Postgres. A separate mockup sandbox supports component preview work.</p><p>The shared libraries matter because they reduce drift. The database schema and Postgres client live in one shared library. The OpenAPI contract generates React Query hooks and Zod schemas. Provider integrations are separated into their own packages for OpenAI, Google Drive, Dropbox, Clerk, and other external services.</p><p>That structure was important because agentic applications need clear boundaries. If everything is mixed together, the coding agent has too many ways to solve the same problem. That creates inconsistent patterns, duplicated logic, and fragile integrations.</p><p>A good codebase gives the agent fewer places to be clever.</p><p>The pipeline jobs are persisted in the database and executed by an in-process worker inside the API server. Authentication and approval are handled through Clerk. Campaign files can route through app storage, Google Drive, or Dropbox, depending on plan permissions and user OAuth state. Admin users can manage pricing plans, approvals, CMS pages, payment gateways, social links, and pipeline queue visibility.</p><p>None of these decisions were just implementation details. They shaped how reliably the agent pipeline could operate as a product.</p><h3><strong>What worked best when using coding agents</strong></h3><p>The most important lesson is that coding agents perform best when the engineer behaves more like a technical lead than a prompt writer.</p><p>You cannot outsource judgment. You can outsource execution, exploration, refactoring, test generation, scaffolding, documentation, and code review support. But you still need to decide what matters, what order things should happen in, and what trade-offs are acceptable.</p><p>Several practices consistently improved output quality. Start with architecture before implementation, because agents produce better code when they know the intended boundaries and dependency order. Break work into separate workstreams, because smaller scopes reduce unintended changes and make verification easier. Write acceptance criteria before code, because the agent needs to know what success means before it starts changing files.</p><p>Separate strategy, production, and review tasks. The same agent session should not plan, build, and approve its own work without checks. Use the codebase&#8217;s existing conventions, because agents are much stronger when asked to extend patterns instead of inventing new ones. Verify every meaningful change, because type checks, tests, screenshots, logs, and manual review are still the engineer&#8217;s responsibility. Keep memory outside the chat when possible, because durable files, specs, TODOs, and implementation notes prevent context loss.</p><p>The last point is especially important. A long chat history is not a reliable engineering system. I found it much more effective to maintain explicit planning files, workstream files, verification notes, and constraints that could be reused across sessions.</p><p>That is also why the Agent CMO product itself emphasizes structured envelopes, campaign reports, memory, and transparent stage status. Durable context is what turns one-off generation into an operating system.</p><h3><strong>The best coding agent workflow mirrors a good engineering team</strong></h3><p>A strong engineering team does not throw every task into one Slack message and hope for the best. It separates discovery, architecture, implementation, review, QA, release, and monitoring.</p><p>Coding agents need the same discipline.</p><p>When I used agents effectively, I usually followed a consistent sequence. First, I asked the agent to read the relevant files and summarize the current behavior. Then I asked it to propose a minimal implementation plan before editing code. After that, I asked it to identify exactly which files should change and which should not.</p><p>Only then did I let it implement the smallest coherent change that satisfied the plan. After implementation, the work had to be verified through checks, inspection, and evidence. The final step was documentation and handoff, which meant updating the relevant README, API contract, implementation note, or next-workstream instruction.</p><p>This pattern helped prevent the most common failure mode: impressive-looking code that does not actually fit the system.</p><p>Coding agents, including agentic development environments such as <a href="https://replit.com/refer/leejaew?ref_surface=universal-settings-modal">Replit</a>, can write and modify code quickly. That is not the hard part anymore. The hard part is directing the work so that speed does not create architectural debt.</p><h3><strong>What I would tell software engineers building with agents</strong></h3><p>If you are a software engineer using coding agents, do not measure success by how much code the agent writes. Measure success by how little confusion the agent creates.</p><p>The best agent sessions have a clear task, a clear context window, a clear output, and a clear verification method.</p><p>I would treat every coding agent instruction like a ticket for a capable but unfamiliar teammate. Give the background. State the goal. Define the constraints. Point to the relevant files. Explain the expected behavior. Ask for a plan before implementation. Then review the result like you would review any pull request.</p><p>If the agent makes a mistake, do not just correct the code. Improve the instruction system that allowed the mistake. Add a convention. Add a test. Add a note. Split the workstream. Narrow the scope.</p><p>That is how you get better over time.</p><h3><strong>Agent CMO is also a lesson in product design</strong></h3><p>Building Agent CMO reminded me that AI-native applications are not defined by having a chat box. They are defined by whether the system can take responsibility for a meaningful workflow.</p><p>A real AI-native product should have memory, task ownership, review loops, structured outputs, orchestration, and a way to improve from feedback. It should know when to run tasks in sequence and when to run them in parallel. It should expose what it is doing so the user can trust the work. It should produce assets that are ready to use, not just interesting to read.</p><p>That is the bar I tried to hold Agent CMO to.</p><p>The product starts with a brief, but it does not stop at generation. It researches, plans, produces, reviews, packages, monitors, learns, and recommends the next experiment. The master agent keeps the whole workflow coordinated, while the sub-agents focus on their individual responsibilities.</p><p>That is also the way I now think about working with coding agents.</p><p>Do not ask one agent to be brilliant at everything. Build the system around clear roles, clean handoffs, and real verification.</p><p>Software engineering with agents is not less disciplined than traditional engineering. It is more disciplined, because the cost of vague direction is now multiplied by speed.</p><p>The opportunity is enormous. But the advantage will not go to the engineers who prompt the most. It will go to the engineers who can design the work.</p>]]></content:encoded></item><item><title><![CDATA[Memory is becoming the next operating layer]]></title><description><![CDATA[I remember first coming across the academic concepts and definitions of short-term and long-term memory around 2000, through my friend Junchol Park, whom I usually call JC.Thanks for reading Digital logs by Jae Lee!]]></description><link>https://blog.jael.ee/p/memory-is-becoming-the-next-operating</link><guid isPermaLink="false">https://blog.jael.ee/p/memory-is-becoming-the-next-operating</guid><dc:creator><![CDATA[Jae Lee]]></dc:creator><pubDate>Wed, 29 Apr 2026 20:18:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lv84!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47074ae-ba16-4520-8ecf-818d0e4400df_2560x1440.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lv84!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47074ae-ba16-4520-8ecf-818d0e4400df_2560x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lv84!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47074ae-ba16-4520-8ecf-818d0e4400df_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!lv84!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47074ae-ba16-4520-8ecf-818d0e4400df_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!lv84!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47074ae-ba16-4520-8ecf-818d0e4400df_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!lv84!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47074ae-ba16-4520-8ecf-818d0e4400df_2560x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lv84!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47074ae-ba16-4520-8ecf-818d0e4400df_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b47074ae-ba16-4520-8ecf-818d0e4400df_2560x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3397425,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/195909480?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47074ae-ba16-4520-8ecf-818d0e4400df_2560x1440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lv84!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47074ae-ba16-4520-8ecf-818d0e4400df_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!lv84!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47074ae-ba16-4520-8ecf-818d0e4400df_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!lv84!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47074ae-ba16-4520-8ecf-818d0e4400df_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!lv84!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47074ae-ba16-4520-8ecf-818d0e4400df_2560x1440.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>I remember first coming across the academic concepts and definitions of short-term and long-term memory around 2000, through my friend <a href="https://www.linkedin.com/in/juncholpark/">Junchol Park</a>, whom I usually call JC.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.jael.ee/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Digital logs by Jae Lee! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>JC is a domain expert in data science and neuroscience. During his undergraduate years, he introduced me to what he was learning through his coursework and lab experiments, especially around how different parts of the brain serve different functions related to memory.</p><p>Some parts helped us process immediate signals. Some parts helped us retain patterns. Some parts helped us coordinate movement, judgment, language, emotion, and memory. What stayed with me was not only the biology, but the architecture.</p><p>The brain was not one monolithic intelligence engine. It was a system of specialized modules, coordinated through signals, context, and repetition.</p><p>I remember one subway ride when I mentioned to JC that I could imagine a kind of digital brain, not as a metaphor only, but as a system and software layer where people could dump their short-term and long-term memories, then retrieve them on demand.</p><blockquote><p>Intelligence without memory is not enough.</p></blockquote><p>When OpenClaw first went viral, I started looking at it from a system architecture perspective. I wanted to understand how its components were organized, how it shaped the developer experience, and why it resonated so quickly with the community.</p><p>A fellow developer community leader and entrepreneur, <a href="https://www.linkedin.com/in/jasonkneen/">Jason Kneen</a>, was also actively posting on X/Twitter about OpenClaw and its architecture. His posts helped me speed up my own understanding. Sometimes the best way to learn is not just through documentation, but through the lens of another builder who is taking the time to explain what matters.</p><p>And earlier this year, I was also inspired by several developers talking more actively about persistent memory for AI agents. That brought the old idea of a digital brain back into a more practical frame. Not memory as a vague concept. Persistent memory as infrastructure.</p><p>Most AI agents today still behave like they have impressive short-term memory and fragile long-term memory. A context window can hold a conversation, a task, a document, or a decision for a limited period. But once the session ends, the agent often loses the thread unless the platform has its own memory layer or the user manually restates the context.</p><p>For casual use, this may be acceptable. For real work, it becomes expensive.</p><p>A founder does not want to re-explain the same product strategy every week. A consultant does not want to restate the same client constraints across tools. A developer does not want to remind every agent which architecture decisions were already made. A team does not want business knowledge scattered across prompts, folders, Slack threads, cloud drives, and disconnected AI sessions.</p><p>This is why I built Agent Memory Dump earlier this year.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4pOV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99203f03-d4fb-4df4-90e7-fa1927b5e6c6_2440x530.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4pOV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99203f03-d4fb-4df4-90e7-fa1927b5e6c6_2440x530.png 424w, https://substackcdn.com/image/fetch/$s_!4pOV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99203f03-d4fb-4df4-90e7-fa1927b5e6c6_2440x530.png 848w, https://substackcdn.com/image/fetch/$s_!4pOV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99203f03-d4fb-4df4-90e7-fa1927b5e6c6_2440x530.png 1272w, https://substackcdn.com/image/fetch/$s_!4pOV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99203f03-d4fb-4df4-90e7-fa1927b5e6c6_2440x530.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4pOV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99203f03-d4fb-4df4-90e7-fa1927b5e6c6_2440x530.png" width="1456" height="316" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99203f03-d4fb-4df4-90e7-fa1927b5e6c6_2440x530.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:316,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:227685,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/195909480?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99203f03-d4fb-4df4-90e7-fa1927b5e6c6_2440x530.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4pOV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99203f03-d4fb-4df4-90e7-fa1927b5e6c6_2440x530.png 424w, https://substackcdn.com/image/fetch/$s_!4pOV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99203f03-d4fb-4df4-90e7-fa1927b5e6c6_2440x530.png 848w, https://substackcdn.com/image/fetch/$s_!4pOV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99203f03-d4fb-4df4-90e7-fa1927b5e6c6_2440x530.png 1272w, https://substackcdn.com/image/fetch/$s_!4pOV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99203f03-d4fb-4df4-90e7-fa1927b5e6c6_2440x530.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Agent Memory Dump is an MCP memory server designed to act as a shared memory layer across multiple AI agents. It stores conversation turns, prompts, responses, tool calls, decisions, and code as structured observations in PostgreSQL. It groups those observations into sessions, tags them by agent and timestamp, and makes the memory available through MCP tools so different agents can read and write to the same store.</p><p>The important part was not simply saving text. The important part was making memory searchable, portable, and reusable.</p><p>The system uses hybrid search, combining full-text search, vector similarity through pgvector, and recency weighting. It also creates session summaries so long histories can remain useful without flooding the context window. In practical terms, this means an agent can retrieve relevant past work even when the wording has changed, even when the memory is old, and even when the full history would be too large to load.</p><p>That solved one problem I was feeling personally: my agents needed a shared memory dump.</p><p>If I moved between Claude Desktop, Manus AI, and OpenClaw, I did not want each one to behave as if it had never met me before. The memory layer needed to sit outside the agent, not inside a single platform. </p><p>That was the first pattern.</p><blockquote><p>Memory should not belong to one interface.</p></blockquote><p>After the Easter holiday, I started building and testing a new project called SourceMind.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!08eP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29598b82-1fb7-46ab-887a-61a65f99fdb2_1024x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!08eP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29598b82-1fb7-46ab-887a-61a65f99fdb2_1024x600.png 424w, https://substackcdn.com/image/fetch/$s_!08eP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29598b82-1fb7-46ab-887a-61a65f99fdb2_1024x600.png 848w, https://substackcdn.com/image/fetch/$s_!08eP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29598b82-1fb7-46ab-887a-61a65f99fdb2_1024x600.png 1272w, https://substackcdn.com/image/fetch/$s_!08eP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29598b82-1fb7-46ab-887a-61a65f99fdb2_1024x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!08eP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29598b82-1fb7-46ab-887a-61a65f99fdb2_1024x600.png" width="1024" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29598b82-1fb7-46ab-887a-61a65f99fdb2_1024x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:196768,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/195909480?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29598b82-1fb7-46ab-887a-61a65f99fdb2_1024x600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!08eP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29598b82-1fb7-46ab-887a-61a65f99fdb2_1024x600.png 424w, https://substackcdn.com/image/fetch/$s_!08eP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29598b82-1fb7-46ab-887a-61a65f99fdb2_1024x600.png 848w, https://substackcdn.com/image/fetch/$s_!08eP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29598b82-1fb7-46ab-887a-61a65f99fdb2_1024x600.png 1272w, https://substackcdn.com/image/fetch/$s_!08eP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29598b82-1fb7-46ab-887a-61a65f99fdb2_1024x600.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Screenshot of SourceMind</figcaption></figure></div><p>At first glance, SourceMind may sound like another AI search tool for cloud storage. But for me, it came from a very specific realization.</p><p>Agent memory is not enough if the underlying reference sources are still fragmented.</p><p>It is useful for an agent to remember what I instructed it to do. It is useful for an agent to remember the responses it generated. It is useful for an agent to recall decisions, summaries, and past workflows.</p><p>But much of our actual work does not live inside the agent conversation.</p><p>It lives in PDFs, pitch decks, spreadsheets, contracts, strategy notes, CSV exports, JSON files, client folders, Dropbox archives, Google Drive structures, and documents created years before the AI agent entered the workflow.</p><p>So I needed a second layer.</p><p>SourceMind is an AI intelligence layer designed to unify and interrogate data across fragmented cloud storage ecosystems. It connects to Google Drive and Dropbox, lets users browse folders and select files or entire folders for indexing, then processes those files through an ingestion pipeline. PDFs, text files, CSVs, and JSON files are chunked, embedded, stored with pgvector and full-text search vectors, and made searchable through hybrid retrieval.</p><p>The user can then ask natural-language questions and receive cited, RAG-powered answers linked back to the original documents. That citation layer matters.</p><p>A generic agent response may sound confident, but confidence is not the same as traceability. If an answer is based on a source file, I want to know which file, which passage, and which context shaped the response. For serious work, especially in consulting, enterprise transformation, finance, education, hospitality, logistics, or regulated environments, traceability is not optional.</p><p>SourceMind also handles the operational layer around this problem. It supports OAuth connections to cloud storage, encrypted tokens at rest, background indexing jobs with status and retry logic, audit logs, and administrative visibility. These may not be the glamorous parts of AI, but they are the parts that make the system usable beyond a demo.</p><p>This is also why SourceMind is different from simply activating a Google Drive connector inside one AI agent.</p><p>A connector gives one agent access to one storage environment within that agent&#8217;s workflow. That can be convenient. But convenience is not architecture.</p><p>SourceMind is built as a centralized intelligence layer. It is designed to sit across storage providers, selected folders, indexed files, search methods, citations, and audit trails. It can become a shared retrieval foundation for multiple agents, workflows, and business use cases. Instead of asking one AI tool to temporarily inspect a drive, SourceMind prepares the knowledge layer so agents can operate on a more reliable foundation.</p><p>That distinction matters because AI augmentation is not only about prompting better. It is about preparing the system around the prompt.</p><p>When I think back to that early conversation with Junchol, I realize why the brain remains such a useful metaphor.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ddWd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2789354b-fb46-450a-8c12-aabe837ce23d_2560x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ddWd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2789354b-fb46-450a-8c12-aabe837ce23d_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!ddWd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2789354b-fb46-450a-8c12-aabe837ce23d_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!ddWd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2789354b-fb46-450a-8c12-aabe837ce23d_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!ddWd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2789354b-fb46-450a-8c12-aabe837ce23d_2560x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ddWd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2789354b-fb46-450a-8c12-aabe837ce23d_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2789354b-fb46-450a-8c12-aabe837ce23d_2560x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4315188,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/195909480?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2789354b-fb46-450a-8c12-aabe837ce23d_2560x1440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ddWd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2789354b-fb46-450a-8c12-aabe837ce23d_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!ddWd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2789354b-fb46-450a-8c12-aabe837ce23d_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!ddWd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2789354b-fb46-450a-8c12-aabe837ce23d_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!ddWd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2789354b-fb46-450a-8c12-aabe837ce23d_2560x1440.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>The brain does not treat intelligence as a single function. It has different areas and systems that influence memory, movement, judgment, emotion, perception, coordination, and action. These areas do not operate in isolation. They interact constantly. They receive signals, interpret context, strengthen pathways, and help us respond to the world.</p><p>In system architecture terms, you could call them modules or components. In product terms, you could call them layers of experience.</p><p>The AI platforms and agentic user experiences we are building today are beginning to mirror that structure. We have model layers, memory layers, tool layers, retrieval layers, orchestration layers, interface layers, permissions layers, and audit layers. Each one serves a different purpose. Each one changes what the user can trust the system to do.</p><p>A model without tools can speak, but it cannot act very far.</p><p>A model without memory can assist, but it cannot build continuity.</p><p>A model without retrieval can reason from its training, but it cannot reliably use the user&#8217;s current operating reality.</p><p>A model without auditability may be impressive, but it becomes difficult to deploy in serious environments.</p><p>This is why I believe the next wave of AI-native businesses will not be built by simply attaching an LLM-powered chatbot to existing workflows.</p><p>They will be built by preparing the data, memory, retrieval, and orchestration layers around the business itself.</p><p>Whether the industry is hardware manufacturing, fintech, edutech, hospitality, logistics, professional services, or any other vertical, the challenge is similar.</p><p>Most organizations want AI augmentation, but their knowledge is scattered. Their files are fragmented. Their decisions are undocumented. Their workflows depend on tacit knowledge. Their data lives in different platforms, owned by different teams, with different levels of freshness and quality.</p><p>Then they ask an AI system to behave intelligently.</p><p>But intelligence depends on what the system can see, retrieve, remember, and verify.</p><p>This is where founders and operators need to become more disciplined. The work is not just choosing the latest model or adding another AI feature. The work is preparing the organization so AI has something coherent to augment.</p><p>That means building reference sources. It means deciding what should become persistent memory. It means designing how agents access files, how answers are cited, how decisions are stored, how knowledge is updated, and how different systems share context.</p><p>The companies that do this well will move differently. Their AI systems will not only answer questions. They will build continuity. Their agents will not only execute tasks. They will understand prior decisions. Their teams will not only generate content. They will compound institutional learning. This is the path from AI-augmented to AI-native.</p><p>A founder question I keep returning to is not just what we should build with AI, but what our organizations need to remember. I think the better starting question is simpler.</p><blockquote><p>What does your organization need to remember?</p></blockquote><p>Our brains are not powerful because they remember everything perfectly. They are powerful because they organize signals into patterns that help us act.</p><p>That is what I learned again while building Agent Memory Dump and SourceMind.</p><p>Memory is not a feature.</p><p>Memory is becoming infrastructure.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.jael.ee/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Digital logs by Jae Lee! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Culture eats strategy for lunch]]></title><description><![CDATA[Revisiting "Asians as Futurists" in the age of agentic AI]]></description><link>https://blog.jael.ee/p/culture-eats-strategy-for-lunch</link><guid isPermaLink="false">https://blog.jael.ee/p/culture-eats-strategy-for-lunch</guid><dc:creator><![CDATA[Jae Lee]]></dc:creator><pubDate>Sun, 26 Apr 2026 07:02:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YhQV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2434c70f-1adf-4bb0-b4f5-38e4e524e246_2940x1846.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I remember sitting in front of my camera in November 2021, joining the virtual Horasis Asia Meeting. The world was still untangling itself from the immediate shockwaves of the pandemic, and I had been invited to join a panel titled &#8220;Asians as Futurists.&#8221; To be honest, I felt a bit out of my depth surrounded by generals and global economists, but I was there to share an operator&#8217;s perspective on building technology.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YhQV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2434c70f-1adf-4bb0-b4f5-38e4e524e246_2940x1846.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YhQV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2434c70f-1adf-4bb0-b4f5-38e4e524e246_2940x1846.png 424w, https://substackcdn.com/image/fetch/$s_!YhQV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2434c70f-1adf-4bb0-b4f5-38e4e524e246_2940x1846.png 848w, https://substackcdn.com/image/fetch/$s_!YhQV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2434c70f-1adf-4bb0-b4f5-38e4e524e246_2940x1846.png 1272w, https://substackcdn.com/image/fetch/$s_!YhQV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2434c70f-1adf-4bb0-b4f5-38e4e524e246_2940x1846.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YhQV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2434c70f-1adf-4bb0-b4f5-38e4e524e246_2940x1846.png" width="1456" height="914" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2434c70f-1adf-4bb0-b4f5-38e4e524e246_2940x1846.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:914,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4667224,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/195501388?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2434c70f-1adf-4bb0-b4f5-38e4e524e246_2940x1846.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YhQV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2434c70f-1adf-4bb0-b4f5-38e4e524e246_2940x1846.png 424w, https://substackcdn.com/image/fetch/$s_!YhQV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2434c70f-1adf-4bb0-b4f5-38e4e524e246_2940x1846.png 848w, https://substackcdn.com/image/fetch/$s_!YhQV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2434c70f-1adf-4bb0-b4f5-38e4e524e246_2940x1846.png 1272w, https://substackcdn.com/image/fetch/$s_!YhQV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2434c70f-1adf-4bb0-b4f5-38e4e524e246_2940x1846.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Asians as Futurists, Horasis Asia Meeting 2021</strong></figcaption></figure></div><p>The core question on the table was heavy: How would Asia&#8217;s innovation, leadership, and cultural resilience shape a post-pandemic world, especially given the rapid acceleration of technology?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.jael.ee/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Digital logs by Jae Lee! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>At the time, the conversation naturally gravitated toward digital infrastructure. Benjamin J. Butler, Founder of the <a href="http://www.embassyfuture.org">Embassy of the Future</a>, chaired the discussion with real insight. Klaus Neumann, Senior Vice President at SAP China, correctly pointed out that Asia&#8217;s success in managing the pandemic was largely due to the immense application of technology and a cultural willingness to embrace new digital tools. Lieutenant General Sudhir Sharma, Chairman of Mitkat Advisory Services in India, expressed strong optimism for a &#8220;V-shaped&#8221; recovery, driven by an accelerating spirit of entrepreneurship.</p><p>But Lieutenant General Sharma, drawing on his military and strategic background, also warned us. He pointed to looming geopolitical, ecological, and cyber risks, even assigning a 60% probability to a serious regional conflict within the next decade.</p><p>Looking back from April 2026, sitting in a world where autonomous AI agents are reshaping enterprise software while energy markets absorb the shockwaves of the ongoing conflict in the Middle East, his prediction feels uncomfortably prescient.</p><p>We are operating in a fundamentally different reality today. And yet, when I reflect on what I shared during that panel, one specific observation stands out as more relevant now than it was five years ago.</p><p>I argued that Asia&#8217;s growth is driven not just by consumerism, but by a unique &#8220;willingness of creativity.&#8221; In places like South Korea, a &#8220;less obedient&#8221; tactical mindset fosters &#8220;out of the box&#8221; thinking, contrasting sharply with more traditional manufacturing cultures.</p><p>More importantly, I emphasized a principle that I&#8217;ve learned the hard way, often through my own failures in scaling companies. It&#8217;s this: culture eats strategy for lunch.</p><p>In 2021, I applied that principle to the success of distributed workforces, arguing that future governance depends more on human-centric dialogue and trust than on technological infrastructure alone. Today, as we deploy multi-agent systems and grapple with global uncertainty across Asia and the Gulf, that principle is being tested under immense pressure.</p><h4>The agentic reality of 2026</h4><p>We are no longer just talking about AI as an assistant that drafts emails or summarizes meeting notes. We are building and deploying autonomous reasoning engines that understand context, plan workflows, connect to external tools, and execute actions across entire enterprise systems. Agentic AI is moving us from task automation to wholesale process reinvention.</p><p>But here is the reality I see on the ground, whether I&#8217;m working with engineering teams in Singapore, scaling operations in Seoul, or advising enterprises in Riyadh. I&#8217;ve made the mistake of thinking a new tech stack would solve operational issues, and I&#8217;ve paid the price for it. The bottleneck for AI adoption is rarely the technology itself. The bottleneck is the culture.</p><p>When you deploy an AI agent to manage your supply chain or handle complex financial underwriting, you are not just installing software. You are fundamentally changing how decisions are made and who (or what) makes them. If your organizational culture is rigid, top-down, and punishing of failure, your AI initiatives will fail. They will be stifled by a lack of trust and an inability to adapt.</p><p>The &#8220;willingness of creativity&#8221; I mentioned in 2021 is exactly what is required to build effective human-agent collaboration today. It requires a culture that is willing to experiment, willing to let go of legacy processes, and willing to trust autonomous systems while maintaining rigorous, human-centric oversight.</p><h4>Navigating geopolitical uncertainty</h4><p>This cultural adaptability is equally vital when navigating the current geopolitical landscape. The conflict in the Middle East has sent shockwaves through global energy markets and supply chains, testing the economic resilience of both Asia and the Gulf.</p><p>Yet, amidst this uncertainty, we see regions that are actively building resilience through innovation. The UAE and Singapore, for example, continue to attract investment and talent not just because of their geographic positioning, but because they foster environments that prioritize forward-looking governance and technological adoption.</p><p>During the Horasis panel, I raised concerns about data abuse and the security of sensitive information. In an era of geopolitical tension and autonomous agents, those concerns are magnified exponentially. Secure, sovereign AI infrastructure is no longer a luxury; it is a strategic necessity.</p><p>For Asia and the Middle East to strategically navigate these dual forces (the rise of agentic AI and regional instability), they must lean into their unique strengths.</p><ol><li><p>Embrace the &#8220;less obedient&#8221; mindset: The regions that will thrive are those that encourage tactical creativity. When supply chains break down or energy prices spike, rigid adherence to the old playbook is a liability. We need operators who can think outside the box and leverage AI to build dynamic, self-healing systems.</p></li><li><p>Prioritize human-centric trust: As we delegate more authority to AI agents, the human element becomes more, not less, important. Trust (between cross-border teams, between citizens and governments, and between humans and machines) is the ultimate currency. You cannot code trust; you have to build it through dialogue and integrity.</p></li><li><p>Build sovereign resilience: The intersection of AI and geopolitics means that controlling your own technological destiny is critical. This means investing in local AI talent, securing critical data infrastructure, and building agentic systems that reflect regional values and priorities.</p></li></ol><h4>The enduring lesson</h4><p>Building across Korea, the US, Singapore, Dubai, and Riyadh hasn&#8217;t given me a crystal ball, and I&#8217;ve certainly made my share of miscalculations trying to predict where markets are heading. But the mistakes I&#8217;ve made, and the teams I&#8217;ve had the privilege to lead, have taught me one enduring lesson: technology changes rapidly, but human nature does not.</p><p>In 2021, we were looking toward a post-pandemic future, hoping that digital tools would save us. In 2026, we have those tools in the form of incredibly powerful AI agents, but we are facing new, complex crises.</p><p>The lesson remains the same. You can have the most advanced multi-agent architecture in the world, and you can map out the perfect strategic response to market volatility. But if you do not have a culture built on trust, creativity, and resilience, it will fall apart under pressure.</p><p>Strategy is necessary. Technology is an accelerant. But at the end of the day, culture still eats strategy for lunch.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.jael.ee/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Digital logs by Jae Lee! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Finding the shortest path, to AI-native]]></title><description><![CDATA[I have sat in enough boardrooms, product reviews, and operations calls to recognize a familiar pattern.]]></description><link>https://blog.jael.ee/p/finding-the-shortest-path-to-ai-native</link><guid isPermaLink="false">https://blog.jael.ee/p/finding-the-shortest-path-to-ai-native</guid><dc:creator><![CDATA[Jae Lee]]></dc:creator><pubDate>Sat, 18 Apr 2026 18:01:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1oIP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98ba701-a995-4175-a497-d0c3767911ac_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1oIP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98ba701-a995-4175-a497-d0c3767911ac_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1oIP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98ba701-a995-4175-a497-d0c3767911ac_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!1oIP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98ba701-a995-4175-a497-d0c3767911ac_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!1oIP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98ba701-a995-4175-a497-d0c3767911ac_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!1oIP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98ba701-a995-4175-a497-d0c3767911ac_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1oIP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98ba701-a995-4175-a497-d0c3767911ac_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a98ba701-a995-4175-a497-d0c3767911ac_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7578211,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/194627386?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98ba701-a995-4175-a497-d0c3767911ac_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1oIP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98ba701-a995-4175-a497-d0c3767911ac_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!1oIP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98ba701-a995-4175-a497-d0c3767911ac_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!1oIP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98ba701-a995-4175-a497-d0c3767911ac_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!1oIP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98ba701-a995-4175-a497-d0c3767911ac_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>I have sat in enough boardrooms, product reviews, and operations calls to recognize a familiar pattern. The language changes faster than the system does.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.jael.ee/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Digital logs by Jae Lee! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>A company says it is becoming AI-native. A team adds a model to an old workflow. A few internal demos go well. The roadmap gets rewritten in the new vocabulary. But underneath, most of the real decisions are still being made the old way.</p><p>That is why I keep coming back to a phrase I have heard in engineering and logistics for years: <strong>finding the shortest path</strong>.</p><p>On the surface, it sounds like an optimization problem. But after building across startups, enterprise systems, and operationally messy environments, I think it is really a strategic question. Not just how to get somewhere faster, but how to remove everything false between intention and reality.</p><p>That is what makes the current conversation around <strong>AI-native</strong> so interesting.</p><p>A lot of companies talk about becoming AI-native as if it were a branding milestone. A slide. A product feature. A line inserted into the CEO letter. But if we use the term seriously, it means something much more demanding. It means AI is not sitting on top of the business as a helper. It means the business itself has been redesigned so that AI is part of the operating substrate.</p><p>That is the difference between <em>AI-washed</em>, <em>AI-augmented</em>, and <em>AI-native</em>.</p><p>AI-washed is when an old product gets a new label. AI-augmented is when AI genuinely improves an existing workflow, but the workflow itself remains mostly human-designed and human-executed. AI-native is when the system, the data model, the decision logic, and even the human roles were built around AI from the beginning, or have been restructured deeply enough that AI is now on the critical path.</p><p>I made this mistake myself in the early days of building my first cross-border, end-to-end logistics platform. In 2010, as I built a system spanning order management through last-mile operations, I mistook better tools for deeper transformation. They are not the same thing. The clearest way I can describe it now is this: <strong>AI-native is not about having AI in the building. It is about letting AI change the floor plan.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QyFP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ef8bf66-a48d-4b53-a012-786cc9c65bfa_1472x1240.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QyFP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ef8bf66-a48d-4b53-a012-786cc9c65bfa_1472x1240.png 424w, https://substackcdn.com/image/fetch/$s_!QyFP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ef8bf66-a48d-4b53-a012-786cc9c65bfa_1472x1240.png 848w, https://substackcdn.com/image/fetch/$s_!QyFP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ef8bf66-a48d-4b53-a012-786cc9c65bfa_1472x1240.png 1272w, https://substackcdn.com/image/fetch/$s_!QyFP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ef8bf66-a48d-4b53-a012-786cc9c65bfa_1472x1240.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QyFP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ef8bf66-a48d-4b53-a012-786cc9c65bfa_1472x1240.png" width="1456" height="1227" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ef8bf66-a48d-4b53-a012-786cc9c65bfa_1472x1240.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1227,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:196077,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/194627386?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ef8bf66-a48d-4b53-a012-786cc9c65bfa_1472x1240.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QyFP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ef8bf66-a48d-4b53-a012-786cc9c65bfa_1472x1240.png 424w, https://substackcdn.com/image/fetch/$s_!QyFP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ef8bf66-a48d-4b53-a012-786cc9c65bfa_1472x1240.png 848w, https://substackcdn.com/image/fetch/$s_!QyFP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ef8bf66-a48d-4b53-a012-786cc9c65bfa_1472x1240.png 1272w, https://substackcdn.com/image/fetch/$s_!QyFP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ef8bf66-a48d-4b53-a012-786cc9c65bfa_1472x1240.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">AI-native framework</figcaption></figure></div><h4>The first analogy: the organizational shortest path</h4><p>Many organizations say they want the shortest path to AI-native. What they usually mean is the shortest path to sounding AI-native.</p><p>That path is familiar. Add a chatbot to the website. Plug a model into a workflow. Ask teams to use copilots. Build a few demos. Rename the roadmap. Then speak as if the transformation has already happened.</p><p>But that is not the shortest path. That is the scenic route disguised as progress.</p><p>The real shortest path is more uncomfortable because it forces an organization to confront the truth of how decisions are actually made.</p><p>If every important output still waits for a human to review, approve, correct, route, and execute, then AI is not yet native. It may be useful. It may save time. It may even create real value. But it is still orbiting the core rather than sitting inside it.</p><p>This is where many leadership teams get trapped. They think AI maturity is about how many tools the company has adopted. In reality, the harder question is whether the company is willing to redesign operating authority, feedback loops, and role structure around what AI can now do.</p><p>That requires clarity across five dimensions. The first is <strong>architecture</strong>. Core workflows, data schemas, APIs, and latency assumptions have to be designed with AI inference in mind, not retrofitted later. The second is <strong>decision authority</strong>. AI cannot only advise; it has to close a meaningful share of decisions end to end within policy bounds. The third is <strong>data infrastructure</strong>. Operational data has to flow back into model improvement, not only into dashboards and monthly reporting. The fourth is <strong>organizational design</strong>. Human roles need to shift toward policy-setting, exception handling, and audit rather than routine execution. The fifth is <strong>moat</strong>. If AI were removed, the company should not merely slow down a little; it should lose a real part of its competitive advantage.</p><p>That last point matters more than most people admit.</p><p>If removing AI leaves you with basically the same business, just with more manual effort, then you are probably not AI-native. You are AI-augmented. There is nothing wrong with that. In fact, many good companies should honestly describe themselves that way today. But the distinction matters because strategy becomes distorted when vocabulary becomes dishonest.</p><p>A serious company should be able to answer a few objective questions.</p><blockquote><p>Is AI on the critical path of major transactions? What percentage of decisions are actually closed by AI? Does more usage make the system better through a real data flywheel? Is headcount leverage improving because of AI, or are humans still scaling linearly with volume?</p></blockquote><p>These are not marketing questions. They are operating questions.</p><p>And this is why I keep coming back to the idea of the shortest path. The shortest path is rarely the one with the best narrative. It is the one that removes ceremonial work. It is the one that asks, with some honesty, where the decision really happens.</p><h4>The second analogy: the shortest path in logistics</h4><p>This becomes much easier to understand when you stop talking in abstractions and move into operations.</p><p>Take a hypothetical last-mile delivery company in Singapore. Not a normal motorbike or van fleet. Imagine a company whose riders use the <strong>MRT as part of the delivery network</strong> for dense urban movement.</p><p>Now the phrase <strong>finding the shortest path</strong> becomes literal.</p><p>But in this operating model, the shortest path is not simply the shortest distance on a map.</p><p>It is the shortest <strong>executable</strong> path through a constrained system.</p><p>A rider starts at pickup, enters the MRT network, goes underground, loses GPS reliability, emerges at the destination station, exits onto the correct street, navigates the final walking path, accesses the building, and completes handoff. The route is shaped by train schedules, transfers, station geometry, exit placement, walking distance, parcel size, accessibility, and the fact that once the rider is underground, live rerouting becomes much harder.</p><p>That changes what an AI-native last-mile platform would have to be.</p><p>A normal AI-augmented platform might do something modest but helpful. It could suggest which station to use. It could summarize delivery notes. It could recommend an exit to the dispatcher. But the human operator would still coordinate the job, review the recommendation, message the rider, and absorb the failure when the route breaks.</p><p>An AI-native platform would look different.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_4KP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ea5f90f-0848-4fca-b246-c7e184cd21e6_1472x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_4KP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ea5f90f-0848-4fca-b246-c7e184cd21e6_1472x800.png 424w, https://substackcdn.com/image/fetch/$s_!_4KP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ea5f90f-0848-4fca-b246-c7e184cd21e6_1472x800.png 848w, https://substackcdn.com/image/fetch/$s_!_4KP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ea5f90f-0848-4fca-b246-c7e184cd21e6_1472x800.png 1272w, https://substackcdn.com/image/fetch/$s_!_4KP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ea5f90f-0848-4fca-b246-c7e184cd21e6_1472x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_4KP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ea5f90f-0848-4fca-b246-c7e184cd21e6_1472x800.png" width="1456" height="791" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ea5f90f-0848-4fca-b246-c7e184cd21e6_1472x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:791,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:177852,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/194627386?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ea5f90f-0848-4fca-b246-c7e184cd21e6_1472x800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!_4KP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ea5f90f-0848-4fca-b246-c7e184cd21e6_1472x800.png 424w, https://substackcdn.com/image/fetch/$s_!_4KP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ea5f90f-0848-4fca-b246-c7e184cd21e6_1472x800.png 848w, https://substackcdn.com/image/fetch/$s_!_4KP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ea5f90f-0848-4fca-b246-c7e184cd21e6_1472x800.png 1272w, https://substackcdn.com/image/fetch/$s_!_4KP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ea5f90f-0848-4fca-b246-c7e184cd21e6_1472x800.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">MRT delivery journey map</figcaption></figure></div><p>Before a rider leaves the pickup point, the system would already have decided the full mission plan within policy limits: which MRT leg to take, which exit to use, which street the exit faces, which landmarks matter, whether lift access is available, whether the parcel is suitable for foot-carry, whether station congestion or exit closure changes the recommendation, and whether multiple drops can be batched into a single ride without breaking SLA.</p><p>The rider would not be waiting for human dispatch judgment as the default path. Human operators would step in only for exceptions: an inaccessible building, a parcel too bulky to carry, a station disruption, or a customer instruction that falls outside policy.</p><p>That is where the technology design and the operational design meet. In an AI-augmented version of the company, dispatch still belongs mostly to humans. The AI suggests a route, but a dispatcher approves it. Transit planning remains fairly static. Exit intelligence is limited to basic station or coordinate lookup. Failed deliveries are reviewed manually, and the operations team still manages most delivery decisions directly.</p><p>In an AI-native version, that same flow changes character. The AI assigns the route and the exit autonomously within policy. Pre-departure planning is optimized around train timings, transfer risk, and walkability. Exit intelligence becomes much richer, incorporating street-facing direction, nearby landmarks, lift access, and real-time overrides. Delivery outcomes continuously improve routing logic and operating policy. And the operations team shifts away from managing every decision toward managing policies, exceptions, and system performance.</p><p>That is the real threshold.</p><p>If the AI only helps a dispatcher work faster, the company is more intelligent than before, but not yet AI-native. If the AI becomes the dispatch layer, the planning layer, and the learning layer, with humans moving into supervisory roles, then the claim becomes much more credible.</p><p><strong>Where MCP fits, and where it does not</strong></p><p>This is also why I have been thinking about one of my recent open-source projects, the <a href="https://github.com/leejaew/sg-mrt-exits-mcp">SG MRT Exits MCP Server</a>.</p><p>The project is useful because it exposes structured exit-level information to AI agents. Instead of leaving the model to reason from a raw map pin, the system can answer questions like which exit is nearest, what the exit label is, what street it faces, and what landmarks are nearby. For any agent trying to reason about dense urban movement in Singapore, that is a meaningful improvement in context quality.</p><p>But building a good MCP server, even a full-fledged one with multiple tools, does <strong>not</strong> automatically make the surrounding business AI-native.</p><p>It makes the AI better informed.</p><p>That is important, but it is not the same thing.</p><p>An MCP server is a structured interface between an agent and the world. It is a tool layer. Whether the broader system is AI-native depends on what sits above and below that layer.</p><p>Above it, you need an AI agent or decision engine that actually uses that context to make consequential decisions on the critical path.</p><p>Below it, you need feedback, proprietary data accumulation, operational integration, and organizational redesign so the outputs are not just interesting answers but executed actions.</p><p>In other words, <strong>MCP is necessary in many AI systems, but it is not sufficient for AI-native status</strong>.</p><p>A company could build excellent MCP servers and still remain AI-augmented if humans continue to make the real decisions. On the other hand, the same MCP foundation can become part of an AI-native architecture if it feeds an autonomous decision loop with measurable closure, learning, and leverage.</p><p>This is the honest way I would describe a startup using something like the SG MRT Exits MCP Server today: <strong>not fully AI-native yet, but meaningfully on the path</strong>.</p><p>Why? Because exposing tools to agents is an architectural choice that shows AI-native thinking. It treats AI as a first-class consumer of structured operational context. That matters. But if the agent still only recommends while people still decide, coordinate, and recover manually, then the business has not crossed the line.</p><p><strong>What would make the MRT delivery company truly AI-native</strong></p><p>To push the hypothetical MRT-based last-mile company across that threshold, several things would need to happen at the same time.</p><p>First, it would need <strong>loop closure</strong>. The agent must assign riders, choose exit strategies, and issue executable plans by default, with exceptions routed to humans rather than the reverse.</p><p>Second, it would need <strong>proprietary context layers</strong> beyond public data. Static MRT exit geometry is useful, but not enough. The company would need its own operational knowledge about which exits are faster in practice, which ones are frequently obstructed, which buildings are easiest to approach from which side, which exits are unsuitable for heavy parcels, and how station-to-door walking times differ by time of day.</p><p>Third, it would need a <strong>real data flywheel</strong>. If riders ignore a recommended exit because construction made it unusable, that signal should flow back into the system. If one route consistently misses SLA at 8:30 a.m. but performs well at 11:00 a.m., the platform should learn from that. If one building&#8217;s loading access is always delayed without a call-ahead, the planning logic should absorb that too.</p><p>Fourth, it would need <strong>organizational redesign</strong>. The question would no longer be, &#8220;How do we help dispatchers make better decisions?&#8221; It would become, &#8220;How do we define policy boundaries, exception protocols, and model performance metrics so dispatch scales without adding linear headcount?&#8221;</p><p>That is the difference between automation inside the workflow and redesign of the workflow itself.</p><p>And this is where I think a lot of AI conversations still miss the point. People often ask what model to use, what tool to integrate, or what agent framework to adopt. Those are valid questions, but they are downstream questions.</p><p>The upstream question is whether you are redesigning the company so that AI can take the shortest path from information to action.</p><p><strong>The strategic test</strong></p><p>When founders or executives say they want to become AI-native, I think there is one question they should ask themselves before anything else.</p><blockquote><p>If AI were allowed to operate at full strength inside our business, what decisions would it actually own, what feedback would make it better, and which parts of our current organization would need to be redesigned because of that?</p></blockquote><p>That question is strategic because it forces honesty about architecture, authority, data, org structure, and moat all at once.</p><p>And when building an AI-native product or solution, the domain-specific version of the same question becomes even sharper.</p><blockquote><p>What is the shortest executable path from raw context to successful action in this domain, and have we designed both the technology stack and the operating model so AI can own that path by default, with humans handling only policy and exceptions?</p></blockquote><p>For an MRT-based last-mile platform, that means asking whether the system can move from pickup to station choice to exit choice to handoff completion as one coherent AI-led chain, rather than as a collection of disconnected recommendations. For other industries, the path will look different, but the principle stays the same.</p><p>That, to me, is what <strong>AI-native</strong> actually means.</p><p>Not AI everywhere.</p><p>Not AI as branding.</p><p>Not AI as a feature added to old assumptions.</p><p>But a system, and an organization, rebuilt around the shortest path between knowing and doing.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.jael.ee/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Digital logs by Jae Lee! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[What doesn't exist, still doesn't: on data, distribution, and the infrastructure nobody's talking about]]></title><description><![CDATA[I asked an AI agent to plan a day trip.]]></description><link>https://blog.jael.ee/p/what-doesnt-exist-still-doesnt-on</link><guid isPermaLink="false">https://blog.jael.ee/p/what-doesnt-exist-still-doesnt-on</guid><dc:creator><![CDATA[Jae Lee]]></dc:creator><pubDate>Sun, 12 Apr 2026 20:23:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7Z0O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41a5cd7-6a37-4245-9d00-36f887f4fe25_3164x1956.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I asked an AI agent to plan a day trip.</p><p>Not just any trip. A Seoul-to-Busan run on May 15th with a friend visiting from Saudi Arabia, someone I care about getting this right for. That means halal-friendly dining. That means traditional Korean food, not tourist food. That means a restaurant that actually understands what a Muslim guest needs, and does it without compromise.</p><p>I gave the agent a single instruction. Something like: <em>Plan the day trip, find the best traditional Hansik restaurant appropriate for my Saudi Arabian friend, prepare a full document with restaurant details, photos, hours, and a Google Maps link.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7Z0O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41a5cd7-6a37-4245-9d00-36f887f4fe25_3164x1956.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7Z0O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41a5cd7-6a37-4245-9d00-36f887f4fe25_3164x1956.png 424w, https://substackcdn.com/image/fetch/$s_!7Z0O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41a5cd7-6a37-4245-9d00-36f887f4fe25_3164x1956.png 848w, https://substackcdn.com/image/fetch/$s_!7Z0O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41a5cd7-6a37-4245-9d00-36f887f4fe25_3164x1956.png 1272w, https://substackcdn.com/image/fetch/$s_!7Z0O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41a5cd7-6a37-4245-9d00-36f887f4fe25_3164x1956.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7Z0O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41a5cd7-6a37-4245-9d00-36f887f4fe25_3164x1956.png" width="1456" height="900" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d41a5cd7-6a37-4245-9d00-36f887f4fe25_3164x1956.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:900,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3501578,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/193997191?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41a5cd7-6a37-4245-9d00-36f887f4fe25_3164x1956.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7Z0O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41a5cd7-6a37-4245-9d00-36f887f4fe25_3164x1956.png 424w, https://substackcdn.com/image/fetch/$s_!7Z0O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41a5cd7-6a37-4245-9d00-36f887f4fe25_3164x1956.png 848w, https://substackcdn.com/image/fetch/$s_!7Z0O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41a5cd7-6a37-4245-9d00-36f887f4fe25_3164x1956.png 1272w, https://substackcdn.com/image/fetch/$s_!7Z0O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41a5cd7-6a37-4245-9d00-36f887f4fe25_3164x1956.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Day trip itinerary and restaurant recommendation, generated in under ten minutes.</figcaption></figure></div><p>Ten minutes later, I had it all. A clean itinerary that fit my train schedule. A 43rd-floor restaurant overlooking the city with a dedicated halal menu. A scenic hillside walk behind Busan Station with a monorail ride and panoramic views of the port. A document I could hand to my guest and feel proud of.</p><div><hr></div><h2>Distribution is the game. It always has been.</h2><p>I&#8217;ve been thinking about this for a while, and I&#8217;ll say it plainly: I believe that in the years ahead, and arguably right now, <strong>what separates organizations is not the quality of their product. It is their brand, their distribution, and the community</strong> they&#8217;ve built around.</p><p>This is true for a solo entrepreneur. It is true for a startup. It is true for an agency. And it is especially true in the technology industry, where product engineering, product marketing, and product sales are becoming more commoditized by the month.</p><p>The rise of AI agents is accelerating this. When any motivated founder with a clear head and the right tools can build a capable product in weeks, the product itself is no longer your moat. What you&#8217;ve built around it, the trust, the reach, the relationships, the information architecture that makes it actually useful, that is the moat.</p><p>I&#8217;ve understood this intuitively for years. But it wasn&#8217;t always obvious what that looked like in practice.</p><p>Back in May 2018, after about a year of living in Singapore, I kept running into the same quiet frustration. Singapore&#8217;s hawker centres, these incredible community food halls that are genuinely part of the national identity, had a government dataset behind them. Rich, structured, useful information. But accessing it required wading through bureaucratic formats that weren&#8217;t designed for developers, and certainly not for anyone who wanted to build consumer-facing experiences on top of them.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!26dn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d4b22-e618-4308-81ca-c047754fa3b1_2940x1846.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!26dn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d4b22-e618-4308-81ca-c047754fa3b1_2940x1846.png 424w, https://substackcdn.com/image/fetch/$s_!26dn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d4b22-e618-4308-81ca-c047754fa3b1_2940x1846.png 848w, https://substackcdn.com/image/fetch/$s_!26dn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d4b22-e618-4308-81ca-c047754fa3b1_2940x1846.png 1272w, https://substackcdn.com/image/fetch/$s_!26dn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d4b22-e618-4308-81ca-c047754fa3b1_2940x1846.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!26dn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d4b22-e618-4308-81ca-c047754fa3b1_2940x1846.png" width="1456" height="914" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/403d4b22-e618-4308-81ca-c047754fa3b1_2940x1846.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:914,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:714264,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/193997191?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d4b22-e618-4308-81ca-c047754fa3b1_2940x1846.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!26dn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d4b22-e618-4308-81ca-c047754fa3b1_2940x1846.png 424w, https://substackcdn.com/image/fetch/$s_!26dn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d4b22-e618-4308-81ca-c047754fa3b1_2940x1846.png 848w, https://substackcdn.com/image/fetch/$s_!26dn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d4b22-e618-4308-81ca-c047754fa3b1_2940x1846.png 1272w, https://substackcdn.com/image/fetch/$s_!26dn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d4b22-e618-4308-81ca-c047754fa3b1_2940x1846.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Singapore Hawker Centres API, published on RapidAPI in May 2018</figcaption></figure></div><p><a href="https://rapidapi.com/leejaew/api/hawker">So I built a fully managed API</a>. Clean, structured, searchable access to Singapore&#8217;s hawker centre dataset, published on <a href="https://rapidapi.com/leejaew/api/hawker">RapidAPI</a>. It wasn&#8217;t a product in the traditional sense. It wasn&#8217;t meant to be a business. It was a distribution layer. A bridge between data that existed and the experiences that <em>could</em> exist, if someone just made it accessible.</p><p>That&#8217;s what I was solving. Not a product problem. A protocol problem.</p><div><hr></div><h2>The gap nobody keeps score on</h2><p>I came across a <a href="https://tripadvisor.mediaroom.com/Travellers-Choice-Best-of-the-Best-Destinations-2025">TripAdvisor report that named Seoul the top destination for solo travelers for 2025</a>. Knowing what I know about Seoul, this didn&#8217;t surprise me. But it did make me think harder.</p><p>The travel industry has been reshaped. Experiences have become the product. Personalization isn&#8217;t a feature, it is the expectation. <a href="https://skift.com/insights/state-of-travel/">Skift&#8217;s research</a> makes this clear: <strong>personalization runs through virtually every major travel industry trend right now</strong>, from loyalty to AI adoption to competitive differentiation. Travelers don&#8217;t want to be routed through a generic experience anymore. They want something that sees them.</p><p>That creates enormous pressure for operators in the travel space to move faster and know more. And it creates an interesting opening for builders.</p><p>Because here&#8217;s the thing that doesn&#8217;t get talked about enough: the data and information that would enable great personalized experiences often <em>exists</em>. It exists in government databases, in tourism boards&#8217; content systems, in local business registries, in cultural heritage records. The problem isn&#8217;t that the information isn&#8217;t there. The problem is the shape it&#8217;s in, and the protocols through which it can be reached.</p><p>This is why <a href="https://github.com/leejaew/visitkorea-mcp">I built and open-sourced the VisitKorea MCP server</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!34J1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9905eb8e-925d-4879-837e-509d60725620_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!34J1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9905eb8e-925d-4879-837e-509d60725620_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!34J1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9905eb8e-925d-4879-837e-509d60725620_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!34J1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9905eb8e-925d-4879-837e-509d60725620_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!34J1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9905eb8e-925d-4879-837e-509d60725620_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!34J1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9905eb8e-925d-4879-837e-509d60725620_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9905eb8e-925d-4879-837e-509d60725620_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:247859,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/193997191?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9905eb8e-925d-4879-837e-509d60725620_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!34J1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9905eb8e-925d-4879-837e-509d60725620_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!34J1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9905eb8e-925d-4879-837e-509d60725620_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!34J1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9905eb8e-925d-4879-837e-509d60725620_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!34J1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9905eb8e-925d-4879-837e-509d60725620_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">VisitKorea MCP server, open-sourced under MIT license. Connecting AI agents directly to Korea&#8217;s tourism data.</figcaption></figure></div><p>Korea Tourism Organization has a rich API. But making it genuinely useful for AI agents, for the kind of orchestrated, multi-step, context-aware workflows that can actually power meaningful personalized experiences, requires bridging a gap. The MCP (Model Context Protocol) server I built wraps Korea&#8217;s tourism data in a format that AI agents can natively understand, query, and act on. It&#8217;s published on GitHub under MIT license. Free for personal use, free for commercial use. Anyone building on it, take it.</p><p>And when I connected it to an AI agent like <strong><a href="https://claude.ai/">Anthropic Claude</a></strong> or <strong><a href="https://manus.im/">Manus AI</a></strong>, paired with a skill built to manage my calendar and plan travel workflows, ten minutes became enough to produce something I&#8217;d feel proud handing to a guest.</p><div><hr></div><h2>The infrastructure nobody&#8217;s celebrating</h2><p>Here&#8217;s where I&#8217;ll say something that probably won&#8217;t trend.</p><p>Data centers are getting all the headlines. Energy infrastructure for AI compute is a legitimate and important conversation. I understand why it&#8217;s dominating the room. But there is another layer of infrastructure that I believe is just as important and far less resourced: <em>the work of making existing data usable</em>.</p><p>There is an enormous amount of information in the world, structured, semi-structured, unstructured, sitting in systems that were never designed to talk to AI agents. Government data portals. Tourism content management systems. Healthcare records. Logistics databases. Financial registries. This information is real. It is often accurate. It is often valuable. But it exists in formats, behind protocols, and within technical architectures that make it invisible to the generation of tools being built right now.</p><p>LLMs will not solve this on their own. Even the best large language models, when asked about specific and accurate local information, require a retrieval layer. That&#8217;s why RAG, retrieval-augmented generation, is so widely adopted today. The model does not know your local hawker centre. It does not know Korea&#8217;s regional tourism data. It does not know the halal certification status of a restaurant on the 43rd floor of a hotel in Busan. Not reliably. Not in the shape you need.</p><p>Someone has to build the bridge.</p><div><hr></div><h2>What I believe about software&#8217;s future</h2><p>I still believe it&#8217;s meaningful to build software. I want to be clear about that. But the terminal value that software once commanded, the idea that a well-engineered product, by virtue of being well-engineered, would naturally compound into a durable business, I think that assumption needs to be updated.</p><p>The cost to build is falling. Fast. The expectation for what software should do is rising. Just as fast. That&#8217;s not a pessimistic statement. It&#8217;s actually an invitation. The ceiling is higher. But the floor has moved too. You can&#8217;t compete on &#8220;we built a thing&#8221; anymore. You compete on brand, distribution, community, and whether the information that powers your experience is accurate, contextual, and genuinely useful.</p><p>What I built with the Hawker API in 2018 and the VisitKorea MCP in 2026 is the same instinct applied twice, across different times and technologies. The instinct is this: if the data exists but the access doesn&#8217;t, build the access layer. That&#8217;s distribution. That&#8217;s infrastructure. That&#8217;s how you become useful in a world where models are powerful but only as smart as the information they can reach.</p><p>What doesn&#8217;t exist, still doesn&#8217;t. Until someone decides to build it.</p>]]></content:encoded></item><item><title><![CDATA[The story was always the product]]></title><description><![CDATA[Most people have more story than they know what to do with.]]></description><link>https://blog.jael.ee/p/the-story-was-always-the-product</link><guid isPermaLink="false">https://blog.jael.ee/p/the-story-was-always-the-product</guid><dc:creator><![CDATA[Jae Lee]]></dc:creator><pubDate>Sun, 05 Apr 2026 23:38:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pbdd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4517e14e-f673-450e-9d87-57830ce83a23_1530x1110.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pbdd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4517e14e-f673-450e-9d87-57830ce83a23_1530x1110.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pbdd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4517e14e-f673-450e-9d87-57830ce83a23_1530x1110.png 424w, https://substackcdn.com/image/fetch/$s_!pbdd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4517e14e-f673-450e-9d87-57830ce83a23_1530x1110.png 848w, https://substackcdn.com/image/fetch/$s_!pbdd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4517e14e-f673-450e-9d87-57830ce83a23_1530x1110.png 1272w, https://substackcdn.com/image/fetch/$s_!pbdd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4517e14e-f673-450e-9d87-57830ce83a23_1530x1110.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pbdd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4517e14e-f673-450e-9d87-57830ce83a23_1530x1110.png" width="1456" height="1056" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4517e14e-f673-450e-9d87-57830ce83a23_1530x1110.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1056,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2093140,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/193297371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4517e14e-f673-450e-9d87-57830ce83a23_1530x1110.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pbdd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4517e14e-f673-450e-9d87-57830ce83a23_1530x1110.png 424w, https://substackcdn.com/image/fetch/$s_!pbdd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4517e14e-f673-450e-9d87-57830ce83a23_1530x1110.png 848w, https://substackcdn.com/image/fetch/$s_!pbdd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4517e14e-f673-450e-9d87-57830ce83a23_1530x1110.png 1272w, https://substackcdn.com/image/fetch/$s_!pbdd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4517e14e-f673-450e-9d87-57830ce83a23_1530x1110.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Most people have more story than they know what to do with.</strong></p><p>A week of meetings, decisions, small wins, quiet frustrations, moments that meant something. And almost none of it gets told. Not because it isn&#8217;t worth telling, but because the gap between living something and shaping it into a story is wider than most tools have ever tried to close.</p><p>That gap has been bothering me for a while.</p><div><hr></div><blockquote><h4>The tools got powerful. The problem didn&#8217;t go away.</h4></blockquote><p>There&#8217;s no shortage of AI tools for expression right now. Text generators, image makers, video creators. The output quality has never been higher. And yet most of what gets produced still feels generic, because the tools are only as specific as what you put in. They&#8217;re powerful, but they still put the full burden of storytelling back on the user.</p><p>You have to know what to say. How to frame it. What to prompt. And most people&#8217;s real stories don&#8217;t arrive pre-packaged like that. They&#8217;re fragmented. Unresolved. Half-remembered. The raw material is there, but the tools keep asking you to do the hardest part yourself before they&#8217;ll help you with anything.</p><p>That&#8217;s not a content quality problem. It&#8217;s a starting point problem. And the same gap shows up in how we build.</p><p>For founders building with AI, the version of this problem is just more visible.</p><p>Vibe coding is having a moment. But a lot of what I see underneath is UI-driven development dressed up in new language. Describe the interface, react to what comes back, tweak, repeat. No narrative spine underneath any of it. The interface was never the hard part, and agents don&#8217;t fix that. They just move faster.</p><p>If you couldn&#8217;t pitch your idea clearly in five minutes, covering who it&#8217;s for, what it must never do, and what success actually looks like, you probably aren&#8217;t ready to hand it to an agent either. Garbage in, garbage out. It just moves faster now.</p><div class="pullquote"><p>What if the story already happened? What if AI didn&#8217;t have to wait for you to articulate anything, but just had to translate what actually occurred?</p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QC7P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad55e9c-16c4-41f7-8a47-56652c3afad8_2032x1162.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QC7P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad55e9c-16c4-41f7-8a47-56652c3afad8_2032x1162.png 424w, https://substackcdn.com/image/fetch/$s_!QC7P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad55e9c-16c4-41f7-8a47-56652c3afad8_2032x1162.png 848w, https://substackcdn.com/image/fetch/$s_!QC7P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad55e9c-16c4-41f7-8a47-56652c3afad8_2032x1162.png 1272w, https://substackcdn.com/image/fetch/$s_!QC7P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad55e9c-16c4-41f7-8a47-56652c3afad8_2032x1162.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QC7P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad55e9c-16c4-41f7-8a47-56652c3afad8_2032x1162.png" width="1456" height="833" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ad55e9c-16c4-41f7-8a47-56652c3afad8_2032x1162.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:833,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1432510,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/193297371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad55e9c-16c4-41f7-8a47-56652c3afad8_2032x1162.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QC7P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad55e9c-16c4-41f7-8a47-56652c3afad8_2032x1162.png 424w, https://substackcdn.com/image/fetch/$s_!QC7P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad55e9c-16c4-41f7-8a47-56652c3afad8_2032x1162.png 848w, https://substackcdn.com/image/fetch/$s_!QC7P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad55e9c-16c4-41f7-8a47-56652c3afad8_2032x1162.png 1272w, https://substackcdn.com/image/fetch/$s_!QC7P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad55e9c-16c4-41f7-8a47-56652c3afad8_2032x1162.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Screenshot of publicly shared Memtoon content</figcaption></figure></div><p>This is where <a href="https://Memtoon.com">Memtoon.com</a> came from. Connect your Google Calendar, and your real week becomes a webtoon-style comic strip, written and illustrated by AI, with no prompting required on your end. Your events are the raw material. The story shapes itself.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_lUp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85607c00-6db4-42d3-9866-db0b4338b55c_2032x1162.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_lUp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85607c00-6db4-42d3-9866-db0b4338b55c_2032x1162.png 424w, https://substackcdn.com/image/fetch/$s_!_lUp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85607c00-6db4-42d3-9866-db0b4338b55c_2032x1162.png 848w, https://substackcdn.com/image/fetch/$s_!_lUp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85607c00-6db4-42d3-9866-db0b4338b55c_2032x1162.png 1272w, https://substackcdn.com/image/fetch/$s_!_lUp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85607c00-6db4-42d3-9866-db0b4338b55c_2032x1162.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_lUp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85607c00-6db4-42d3-9866-db0b4338b55c_2032x1162.png" width="1456" height="833" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85607c00-6db4-42d3-9866-db0b4338b55c_2032x1162.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:833,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:324615,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/193297371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85607c00-6db4-42d3-9866-db0b4338b55c_2032x1162.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!_lUp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85607c00-6db4-42d3-9866-db0b4338b55c_2032x1162.png 424w, https://substackcdn.com/image/fetch/$s_!_lUp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85607c00-6db4-42d3-9866-db0b4338b55c_2032x1162.png 848w, https://substackcdn.com/image/fetch/$s_!_lUp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85607c00-6db4-42d3-9866-db0b4338b55c_2032x1162.png 1272w, https://substackcdn.com/image/fetch/$s_!_lUp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85607c00-6db4-42d3-9866-db0b4338b55c_2032x1162.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Screenshot of Memtoon Studio</figcaption></figure></div><p>Building it required me to practice what I&#8217;ve been describing. I had to tell the agent a complete story before a single line of code: who the user is, what the product must never do, what privacy-first actually means as a constraint rather than a claim. Calendar data fetched, used, discarded. Selfies deleted within seconds across every code path. Not policy language. Architecture.</p><p>And because I believe a good story is built through dialogue, not instruction, I asked the agent to maintain a living document recording every design decision it made beyond my direction, and every instance it chose a different approach, along with its rationale. Not a changelog. A record of its reasoning. So I could ask: <em>why did you choose this? what were you protecting? </em>That&#8217;s not a workflow preference. It&#8217;s a different belief about what building actually is.</p><p>Here&#8217;s an ask I&#8217;m leaving with you.</p><p>Memtoon is live at <a href="https://memtoon.com">memtoon.com</a>. There&#8217;s an explainer video that walks through how it works. Check it out and tell me what you actually think.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;39786bd0-08ec-421d-8672-7f1a363e3230&quot;,&quot;duration&quot;:null}"></div><p>But the question underneath all of this isn&#8217;t really about Memtoon. It&#8217;s about where your story is living right now, and what it would take for it to finally get told.</p><p>The story was always the product. It just took AI to make that undeniable.</p>]]></content:encoded></item><item><title><![CDATA[Get skills, not prompts.]]></title><description><![CDATA[Why the way you instruct your AI agent matters more than the model you choose]]></description><link>https://blog.jael.ee/p/get-skills-not-prompts</link><guid isPermaLink="false">https://blog.jael.ee/p/get-skills-not-prompts</guid><dc:creator><![CDATA[Jae Lee]]></dc:creator><pubDate>Thu, 02 Apr 2026 14:29:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1v5D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F281c72b8-6669-450b-bf6c-5420da0bdaa5_1170x1813.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In my <a href="https://blog.jael.ee/p/introducing-my-cofounder-and-my-team">previous post</a>, I introduced my co-founder and what I loosely call &#8220;my team&#8221;: a growing ensemble of AI agents that I&#8217;ve been building, training, and deploying across my work. I talked about the agent stack, briefly touched on skills like my <a href="https://www.odoo.com?utm_campaign=partner-a550e9d1&amp;utm_source=partner_ref">Odoo</a> expert, and hinted at the direction I was heading. This is the follow-up I promised. And it starts with a gym session.</p><div><hr></div><p>A few days ago, I gave my personal assistant agent a straightforward instruction:</p><blockquote><p>&#8220;Find a 1 hour workout time slot at a Gym Pod location for tomorrow that fits my schedule. Prioritize gym locations accessible by MRT. I prefer not to take a Grab taxi.&#8221;</p></blockquote><p>That&#8217;s it. Single instruction. No follow-up. No clarification needed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1v5D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F281c72b8-6669-450b-bf6c-5420da0bdaa5_1170x1813.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1v5D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F281c72b8-6669-450b-bf6c-5420da0bdaa5_1170x1813.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1v5D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F281c72b8-6669-450b-bf6c-5420da0bdaa5_1170x1813.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1v5D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F281c72b8-6669-450b-bf6c-5420da0bdaa5_1170x1813.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1v5D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F281c72b8-6669-450b-bf6c-5420da0bdaa5_1170x1813.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1v5D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F281c72b8-6669-450b-bf6c-5420da0bdaa5_1170x1813.jpeg" width="351" height="543.9" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/281c72b8-6669-450b-bf6c-5420da0bdaa5_1170x1813.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1813,&quot;width&quot;:1170,&quot;resizeWidth&quot;:351,&quot;bytes&quot;:307185,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/192961080?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F281c72b8-6669-450b-bf6c-5420da0bdaa5_1170x1813.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1v5D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F281c72b8-6669-450b-bf6c-5420da0bdaa5_1170x1813.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1v5D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F281c72b8-6669-450b-bf6c-5420da0bdaa5_1170x1813.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1v5D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F281c72b8-6669-450b-bf6c-5420da0bdaa5_1170x1813.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1v5D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F281c72b8-6669-450b-bf6c-5420da0bdaa5_1170x1813.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">AI agent using my custom built personal assistant skills</figcaption></figure></div><p>Now, if I had asked my agent something simpler, like &#8220;Summarize my calendar for tomorrow&#8221; or &#8220;Add a meeting at 3pm,&#8221; I&#8217;d honestly tell you: just open the calendar app. It would be faster. It would be cheaper. You don&#8217;t need an AI agent to read your own schedule back to you.</p><p>But this wasn&#8217;t that kind of request.</p><p>To fulfill what I asked, my agent had to do something a calendar app never could. It had to pull my calendar events for the next day, identify the fixed commitments and their locations, calculate the open windows between them, look up Gym Pod locations across Singapore, filter for ones accessible by MRT from where I&#8217;d already be during those open windows, cross-reference travel times, and find a slot where a one-hour workout, plus transit, actually fit without blowing up the rest of my day.</p><p>That&#8217;s not a prompt response. That&#8217;s a workflow.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q-ws!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76e0d0b5-3aae-482d-9d78-9719efd38684_1170x1765.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!q-ws!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76e0d0b5-3aae-482d-9d78-9719efd38684_1170x1765.jpeg 424w, https://substackcdn.com/image/fetch/$s_!q-ws!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76e0d0b5-3aae-482d-9d78-9719efd38684_1170x1765.jpeg 848w, https://substackcdn.com/image/fetch/$s_!q-ws!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76e0d0b5-3aae-482d-9d78-9719efd38684_1170x1765.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!q-ws!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76e0d0b5-3aae-482d-9d78-9719efd38684_1170x1765.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!q-ws!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76e0d0b5-3aae-482d-9d78-9719efd38684_1170x1765.jpeg" width="351" height="529.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76e0d0b5-3aae-482d-9d78-9719efd38684_1170x1765.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1765,&quot;width&quot;:1170,&quot;resizeWidth&quot;:351,&quot;bytes&quot;:236625,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/192961080?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76e0d0b5-3aae-482d-9d78-9719efd38684_1170x1765.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!q-ws!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76e0d0b5-3aae-482d-9d78-9719efd38684_1170x1765.jpeg 424w, https://substackcdn.com/image/fetch/$s_!q-ws!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76e0d0b5-3aae-482d-9d78-9719efd38684_1170x1765.jpeg 848w, https://substackcdn.com/image/fetch/$s_!q-ws!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76e0d0b5-3aae-482d-9d78-9719efd38684_1170x1765.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!q-ws!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76e0d0b5-3aae-482d-9d78-9719efd38684_1170x1765.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">My Google Calendar, updated by an AI agent</figcaption></figure></div><p>And the difference between those two things is exactly what this post is about.</p><div><hr></div><h2>The prompt trap</h2><p>There&#8217;s a pattern I see constantly. Someone discovers ChatGPT or Claude, gets excited, and starts collecting prompts. They download prompt packs from LinkedIn. They screenshot &#8220;Top 10 Prompts for Productivity.&#8221; They paste in a paragraph and hope for magic.</p><p>I get it. The first time an LLM writes a decent email for you or summarizes a document in three seconds, it feels like the future just arrived at your desk. But here&#8217;s the thing: that&#8217;s inference. You gave the model an input, it gave you an output. That&#8217;s powerful, sure. But it&#8217;s also just the surface.</p><p>What most people don&#8217;t realize is that the real unlock isn&#8217;t in the quality of a single prompt. It&#8217;s in how you structure the knowledge, context, and workflow logic that sits <em>behind</em> the prompt. It&#8217;s in what the AI industry calls <strong>skills</strong>.</p><p>And skills are fundamentally different from prompts.</p><div><hr></div><h2>What a skill actually is</h2><p>On platforms like Anthropic&#8217;s Claude and <a href="https://manus.im/invitation/PWD2QYUJGPODK?utm_source=invitation&amp;utm_medium=social&amp;utm_campaign=copy_link">Manus AI</a>, a skill is a structured, reusable instruction set that tells an agent <em>how to think about a domain</em>, not just how to respond to one question. Think of it as the difference between handing someone a script for one phone call versus training them for the job.</p><p>A prompt says: &#8220;Write me a professional email declining this meeting.&#8221;</p><p>A skill says: &#8220;You are a personal assistant. You have access to my calendar, my contact list, and my location history. You understand my scheduling preferences, my transit constraints, and my priority framework. When I ask you to handle scheduling, you don&#8217;t just look at open time. You consider travel time, energy management, the nature of adjacent commitments, and my stated preferences about transportation. You confirm before booking. You flag conflicts. You learn from corrections.&#8221;</p><p>See the difference?</p><p>A skill encodes domain knowledge, behavioral rules, workflow sequences, tool access permissions, and contextual understanding into a persistent framework that the agent can draw on every time it&#8217;s activated. It doesn&#8217;t disappear after one exchange. It compounds.</p><p>The technical structure varies by platform, but the principle is consistent. On Claude, skills are bundled as instruction sets with references, tool configurations, and behavioral directives. On <a href="https://manus.im/invitation/PWD2QYUJGPODK?utm_source=invitation&amp;utm_medium=social&amp;utm_campaign=copy_link">Manus AI</a>, the architecture is similar: skills carry identity context, domain expertise, decision-making logic, and integration hooks. In both cases, the skill acts as an operating manual for the agent within a specific domain.</p><p>This is why my personal assistant agent could handle the gym request without a ten-paragraph prompt from me. The skill already carried the context: who I am, where I live, how I move around Singapore, what tools it has access to (calendar, maps, location data), and what &#8220;fits my schedule&#8221; actually means in practice. I didn&#8217;t need to explain any of that in the moment. The skill had already been built.</p><div><hr></div><h2>The first takeaway: Task design is the real skill</h2><p>Here&#8217;s what I want people to understand, especially founders and operators: the magic isn&#8217;t in the model. It&#8217;s in how you define and distribute tasks so that an agent can execute through a genuine agentic workflow.</p><p>When I asked my agent to find a gym slot, I wasn&#8217;t asking it to <em>think</em> for me. I was asking it to <em>act</em> for me, to chain together a sequence of subtasks that would have taken me fifteen to twenty minutes of app-switching, map-checking, and calendar-squinting. The agent understood the fixed variables (my schedule, event locations), applied the constraints I care about (MRT access, no Grab), and worked through the problem step by step.</p><p>If you only use AI to generate text responses (summarize, rephrase, draft) you&#8217;re using about ten percent of what&#8217;s available to you right now. That&#8217;s not a criticism. Inference is valuable. But it&#8217;s not the same as transforming your workflow into an agentic environment where the AI doesn&#8217;t just respond but <em>operates</em>.</p><p>The shift is this: stop thinking of AI as a tool you query. Start thinking of it as a teammate you brief.</p><p>And like any good teammate, the quality of the briefing determines the quality of the output. But unlike a prompt you type fresh every time, a skill means you only have to brief once. After that, the agent carries the playbook.</p><div><hr></div><h2>From personal to enterprise: The Odoo story</h2><p>Let me take this from personal productivity into business operations, because that&#8217;s where the implications get serious.</p><p>In my previous post, I briefly mentioned that my agents have <strong><a href="https://www.odoo.com/?utm_campaign=partner-a550e9d1&amp;utm_source=partner_ref">Odoo</a></strong> expert skills. As an official Odoo certified consultant and Learning Partner, I&#8217;ve spent enough time inside the platform to know both its power and its complexity. Let me unpack what that combination of domain experience and agent skills actually means, and what it made possible.</p><p>Recently, I developed a custom MCP (Model Context Protocol) server that allows my agents to connect directly with <a href="https://www.odoo.com?utm_campaign=partner-a550e9d1&amp;utm_source=partner_ref">Odoo</a> ERP systems. For those unfamiliar, Odoo is a comprehensive open-source ERP platform that handles everything from CRM and accounting to inventory, HR, project management, and more. MCP is the protocol layer that lets AI agents communicate with external tools and data sources in a structured way. Think of it as the plumbing that connects the agent&#8217;s brain to the systems it needs to operate in.</p><p>Building that MCP server took me two hours. And I want to be specific about what &#8220;building an MCP server&#8221; actually means, because the scope matters.</p><p>The core development alone included writing a full <a href="https://www.odoo.com?utm_campaign=partner-a550e9d1&amp;utm_source=partner_ref">Odoo</a> XML-RPC client with authentication, session handling, and error mapping. It meant defining 16 distinct tool definitions, each with proper input schemas and validation, so the agent knows exactly what operations are available and how to call them correctly. On top of that: a JSON-RPC 2.0 handler covering the full protocol lifecycle (initialize, tools/list, tools/call), a FastAPI server supporting both Streamable HTTP and SSE transports, a STDIO transport with an entry point that handles transport switching, and config/environment loading to make the whole thing portable across different Odoo instances.</p><p>Then there&#8217;s testing and debugging, deployment and infrastructure, and documentation. In total, this is not a weekend hack or a quick script. A senior developer, someone comfortable with XML-RPC, JSON-RPC, FastAPI, and the MCP specification, would realistically need 32 to 48 hours to ship all of that to production quality. That&#8217;s a full workweek, minimum.</p><p>I did it in two hours. Not because I&#8217;m faster than a senior developer. Because my agent, equipped with the right skills and the right context about what I was building, handled the heavy lifting while I focused on the architectural decisions and the parts that required my judgment.</p><p>Two hours to design, develop, test, and deploy a fully functional bridge between my AI agents and any <a href="https://www.odoo.com?utm_campaign=partner-a550e9d1&amp;utm_source=partner_ref">Odoo</a> environment. That server can now handle any task that Odoo&#8217;s APIs expose: creating records, reading data, updating workflows, triggering automations. The full scope.</p><p>But the MCP server alone isn&#8217;t what made the next part possible. What made it possible was the <em>skill</em> layer sitting on top.</p><p>My agents carry <a href="https://www.odoo.com?utm_campaign=partner-a550e9d1&amp;utm_source=partner_ref">Odoo</a> expert skills, built from official Odoo documentation, functional references, and workflow logic that I&#8217;ve programmed based on years of working with ERP systems. The skill doesn&#8217;t just know what Odoo <em>is</em>. It understands how Odoo modules relate to each other, how data flows between apps, what a properly configured sales pipeline looks like, how inventory valuation affects accounting entries, and what steps are required to set up a functional instance from scratch.</p><p>So when I decided to put together a demo <a href="https://www.odoo.com?utm_campaign=partner-a550e9d1&amp;utm_source=partner_ref">Odoo</a> environment for a football academy (a soccer training organization with players, coaches, schedules, memberships, and equipment) I didn&#8217;t sit down and click through Odoo&#8217;s interface for three days. I gave my agent the business context and said, essentially: &#8220;Here&#8217;s what this organization does. Set it up.&#8221;</p><p>The agent installed the appropriate <a href="https://www.odoo.com?utm_campaign=partner-a550e9d1&amp;utm_source=partner_ref">Odoo</a> apps and modules. It created the organizational structure. It populated the system with context-relevant, branded demo data: player profiles, coaching staff, training schedules, membership tiers, inventory for equipment and kits. The works. The entire setup, from a blank Odoo instance to a fully populated, functional demo environment, took two hours.</p><p>There was one hiccup. Midway through, the agent created some duplicate player records. But here&#8217;s the thing: because the skill included self-correction logic (something I built into the workflow instructions from the beginning), the agent caught the error, identified the duplicates, cleaned them up, and continued. No intervention from me. No panicked Slack message. It just handled it.</p><p>Now, let me put that in perspective. I&#8217;ve worked with ERP systems across my career: as a certified <a href="https://www.odoo.com?utm_campaign=partner-a550e9d1&amp;utm_source=partner_ref">Odoo</a> consultant, as an engineering leader integrating enterprise platforms for clients like UPS, Samsung, and Hyundai, and as a founder building products on top of complex data architectures. I know what this kind of work costs.</p><p>A human ERP consultant, someone with functional certification and pre-sales or technical consulting experience, would need a minimum of 24 to 32 dedicated hours to achieve the same result. That&#8217;s three to four full workdays in theory. In practice, factoring in context-switching, client communication, revision cycles, and the inevitable &#8220;let me check the documentation&#8221; moments, you&#8217;re looking at more. Probably a full week or more of billable time.</p><p>My agent did it in two hours. Not because the agent is smarter than an experienced consultant. But because the agent had the right skill, the right tool access, and the right workflow architecture to execute without friction.</p><div><hr></div><h2>The architecture that makes this work</h2><p>Let me break down the stack so this isn&#8217;t abstract.</p><p>At the base, you have the <strong>AI model</strong>. Claude, GPT, or whatever foundation model you&#8217;re working with. This is the reasoning engine. It&#8217;s powerful, but on its own, it&#8217;s like having a brilliant analyst locked in a room with no phone, no computer, and no files.</p><p>Next, you have <strong>tools and integrations</strong>: MCP servers, API connections, browser access, calendar hooks, database connectors. These are the hands and eyes. They let the agent interact with the real world: read your calendar, query a database, navigate a web interface, create records in an ERP.</p><p>Then you have <strong>skills</strong>: the structured instruction sets that tell the agent how to operate within a domain. This is the training, the playbook, the institutional knowledge. A skill carries the <em>why</em> and <em>how</em>, not just the <em>what</em>.</p><p>And finally, you have <strong>context</strong>: the specific information about your situation, your business, your preferences, your constraints. Context is what makes the same skill produce different (and correct) outputs for different users or scenarios.</p><p>When all four layers work together (model, tools, skills, context) you get genuine agentic behavior. The agent doesn&#8217;t just answer questions. It plans, executes, self-corrects, and delivers outcomes.</p><p>Strip away any one of those layers, and the experience degrades. A model without tools can only talk. Tools without skills produce random actions. Skills without context produce generic outputs. And context without a model is just a database.</p><p>This is why downloading a prompt from someone&#8217;s LinkedIn post and pasting it into ChatGPT will never replicate what a properly skilled agent can do. The prompt is one layer. The system needs four.</p><div><hr></div><h2>The mindset shift</h2><p>I want to close with something that I think matters more than any technical architecture.</p><p>Agentic workflows are powerful when you&#8217;ve done the homework. When you&#8217;ve assessed your existing workflows, defined your tasks clearly, established what &#8220;done&#8221; looks like, and understood where an agent can genuinely add leverage versus where it&#8217;s just adding complexity.</p><p>But asking an agent to save you from what you don&#8217;t know? That&#8217;s not leveraging AI. That&#8217;s outsourcing your thinking, and no model, no matter how good, will consistently save you from that.</p><p>I believe the better starting point is this: skill up. Be open to learning. Be willing to pivot from the way you&#8217;ve always done things. That&#8217;s not easy. I understand the anxiety around AI replacing jobs, disrupting industries, changing the rules of the game mid-season. But fear-driven inaction is a worse strategy than imperfect experimentation.</p><p>If you&#8217;re a founder, an operator, a builder, an aspiring entrepreneur: start by understanding your own workflows deeply enough to teach them to an agent. That exercise alone will make you better at your job, even before the agent does anything. And when you do hand it off, you&#8217;ll be handing off a well-defined play, not a vague hope.</p><p>Perhaps the quality of a response generated by Claude versus ChatGPT on pure inference shouldn&#8217;t be your true north star. The real question isn&#8217;t which model gives a better answer to a single prompt. The real question is: which system, with model, tools, skills, and context working together, can reliably execute the workflows that actually move your work forward?</p><p>That&#8217;s where the game is heading. And the players who understand the playbook will have a serious advantage.</p>]]></content:encoded></item><item><title><![CDATA[Introducing my cofounder and my team]]></title><description><![CDATA[What building with AI really looks like, and why the definition of a company is changing faster than most people are ready for.]]></description><link>https://blog.jael.ee/p/introducing-my-cofounder-and-my-team</link><guid isPermaLink="false">https://blog.jael.ee/p/introducing-my-cofounder-and-my-team</guid><dc:creator><![CDATA[Jae Lee]]></dc:creator><pubDate>Tue, 24 Mar 2026 21:19:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HhKH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b5e0c1-9778-4bae-840b-be408052db5b_1744x966.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There is a moment in baseball and I have watched it happen enough times to know it by feel, when a manager walks out to the mound, not to pull his pitcher, but just to talk. To recalibrate. To remind the pitcher what they are actually good at, before the situation deteriorates further. The pitcher knows what to do. They have been trained. They have done it hundreds of times. They just needed someone to structure the moment and point them back to their strengths.</p><p>That is, more or less, what I did when I started building my AI team.</p><p>I am not talking about a team of full-time employees. I am talking about something new. A set of collaborators that do not sleep, do not negotiate salary, and do not need to be managed in the traditional sense. They need to be instructed. And the quality of that instruction determines everything.</p><p>This post is about that team. What it looks like. How it was built. Why it works. And honestly, what it still cannot do, because I have no interest in making this sound shinier than it is.</p><blockquote><p>The company has changed. Not all companies. But enough.</p></blockquote><p>Let me be precise here, because I think the sweeping declarations about AI replacing everything are both unhelpful and slightly dishonest. Not every industry is being reshaped at the same velocity. A restaurant, a law firm defending criminal clients, a physiotherapy clinic. These still depend on physical presence, human judgment, and trusted relationships in ways that no AI product is yet fully replacing.</p><p>But for founders, startup operators, product builders, and independent professionals working in knowledge, content, sales, systems, and digital services? The ground is shifting. Quickly. And the shift is not primarily about automation. It is about leverage.</p><p>The old model said: hire people who have the skills you lack. The new model says: build systems that extend your capability, and hire people who can operate and improve those systems alongside you. The new model does not eliminate people. It raises the bar for what kind of people and what kind of contribution is actually necessary.</p><p>In a startup with five people, every single person used to be responsible for a distinct function. Now, one person with well-structured AI workflows can cover the surface area that once required three. That is not a reason to lay people off. It is a reason to think very differently about what a role means, what a company needs, and who belongs on a founding team.</p><p>I have been thinking about this for longer than I have been willing to say publicly. And I have been quietly building. This post is me finally talking about what that building actually looks like.</p><p>Before I go deep on the tools and the technical architecture, let me introduce you to the team the way I would introduce a new hire cohort to a company. Not by job title. By function and contribution.</p><p>Across two environments, Manus AI and Claude AI, I have built a set of AI skills. Think of a skill not as a chatbot, but as a trained specialist. Each one has a defined mandate, a set of operating instructions, reference materials, and a specific workflow for how it does its job. Each one is built to do one thing well, repeatedly, without drifting.</p><p>Here is the roster at a glance:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HhKH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b5e0c1-9778-4bae-840b-be408052db5b_1744x966.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HhKH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b5e0c1-9778-4bae-840b-be408052db5b_1744x966.png 424w, https://substackcdn.com/image/fetch/$s_!HhKH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b5e0c1-9778-4bae-840b-be408052db5b_1744x966.png 848w, https://substackcdn.com/image/fetch/$s_!HhKH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b5e0c1-9778-4bae-840b-be408052db5b_1744x966.png 1272w, https://substackcdn.com/image/fetch/$s_!HhKH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b5e0c1-9778-4bae-840b-be408052db5b_1744x966.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HhKH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b5e0c1-9778-4bae-840b-be408052db5b_1744x966.png" width="1456" height="806" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/04b5e0c1-9778-4bae-840b-be408052db5b_1744x966.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:806,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:407469,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/192026220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b5e0c1-9778-4bae-840b-be408052db5b_1744x966.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HhKH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b5e0c1-9778-4bae-840b-be408052db5b_1744x966.png 424w, https://substackcdn.com/image/fetch/$s_!HhKH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b5e0c1-9778-4bae-840b-be408052db5b_1744x966.png 848w, https://substackcdn.com/image/fetch/$s_!HhKH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b5e0c1-9778-4bae-840b-be408052db5b_1744x966.png 1272w, https://substackcdn.com/image/fetch/$s_!HhKH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b5e0c1-9778-4bae-840b-be408052db5b_1744x966.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong>Cofounder</strong>: My stress-testing partner. Challenges my ideas, pokes holes in my logic, rewrites weak problem statements, and helps me sharpen pitches and product hypotheses.</p></li><li><p><strong>Personal Assistant</strong>: My chief of staff. Manages my profile, schedule, tasks, budget checks, and multi-skill orchestration.</p></li><li><p><strong>LinkedIn Navigator</strong>: My lead generation and prospecting specialist. Runs ICP development, LinkedIn search strategy, buyer persona profiling, and SDR/BDR outreach copy.</p></li><li><p><strong>Account Executive</strong>: My full-stack B2B revenue operator. Covers the entire sales cycle from cold outreach to closing, including Apollo.io workflows, MEDDPICC qualification, pipeline management, and founder-led sales.</p></li><li><p><strong>Global HR &amp; TA Specialist</strong>: My talent and people advisor. Supports resume evaluation, hiring strategy, talent acquisition frameworks, and job market guidance across global markets.</p></li><li><p><strong>Gumroad Expert</strong>: My digital product and creator economy operator. Handles Gumroad setup, product positioning, pricing strategy, listing copy, and creator storefront growth.</p></li><li><p><strong>Nas.io Community Manager</strong>: My community management operator for NAS.io communities. Manages engagement, content, and member support for that specific audience.</p></li><li><p><strong>Social Media Manager</strong>: My content distribution operator. Plans, scripts, formats, and optimises content for social media channel,  particularly short-form and platform-native formats.</p></li><li><p><strong>Blog-by-Jae</strong>: My editorial voice. Writes long-form blog posts in my exact voice, tone, and storytelling structure. This post was written with its guidance.</p></li><li><p><strong>Solution Architect</strong>: My technical design partner. Turns product ideas, system requirements, and app briefs into architecture diagrams, technical specs, and LLM-ready development instructions.</p></li><li><p><strong>Odoo Expert</strong>: My ERP and operations specialist. Handles Odoo configuration, module selection, workflow design, and implementation guidance for business operations.</p></li><li><p><strong>Breach Lookup</strong>: My security intelligence specialist. Handles credential breach monitoring and lookups to support data protection hygiene.</p></li></ul><p>Twelve specialists. All available simultaneously. None of them require onboarding, performance reviews, or catering at the all-hands. What they do require, and this is the part that most people underestimate, is quality instruction.</p><h4>The simplest starting point: ChatGPT projects</h4><p>Before we get into the more sophisticated infrastructure, let me start where most people start, and where I still operate for many things. ChatGPT Projects.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_W1m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ecb6fe-26ba-4b03-adbc-e4909e9db1c4_982x908.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_W1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ecb6fe-26ba-4b03-adbc-e4909e9db1c4_982x908.png 424w, https://substackcdn.com/image/fetch/$s_!_W1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ecb6fe-26ba-4b03-adbc-e4909e9db1c4_982x908.png 848w, https://substackcdn.com/image/fetch/$s_!_W1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ecb6fe-26ba-4b03-adbc-e4909e9db1c4_982x908.png 1272w, https://substackcdn.com/image/fetch/$s_!_W1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ecb6fe-26ba-4b03-adbc-e4909e9db1c4_982x908.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_W1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ecb6fe-26ba-4b03-adbc-e4909e9db1c4_982x908.png" width="455" height="420.71283095723015" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/59ecb6fe-26ba-4b03-adbc-e4909e9db1c4_982x908.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:908,&quot;width&quot;:982,&quot;resizeWidth&quot;:455,&quot;bytes&quot;:141036,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/192026220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ecb6fe-26ba-4b03-adbc-e4909e9db1c4_982x908.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_W1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ecb6fe-26ba-4b03-adbc-e4909e9db1c4_982x908.png 424w, https://substackcdn.com/image/fetch/$s_!_W1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ecb6fe-26ba-4b03-adbc-e4909e9db1c4_982x908.png 848w, https://substackcdn.com/image/fetch/$s_!_W1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ecb6fe-26ba-4b03-adbc-e4909e9db1c4_982x908.png 1272w, https://substackcdn.com/image/fetch/$s_!_W1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ecb6fe-26ba-4b03-adbc-e4909e9db1c4_982x908.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you are new to this, here is the clearest analogy I can give you: a ChatGPT Project is like a dedicated notebook for a specific area of your work, with a standing briefing note taped to the inside cover. Every conversation that happens inside that notebook reads the briefing note first. So when you open the notebook and ask a question, the AI already knows who it is supposed to be and what context it is working inside.</p><p>That briefing note is called a system prompt. And it is one of the most underrated tools in practical AI usage today.</p><blockquote><p>What is a system prompt, and why does it matter?</p></blockquote><p>A system prompt is a set of instructions given to an AI before the conversation begins. It defines the role, the tone, the scope, the constraints, and the operating context. It is not a question. It is a mandate.</p><p>Think of it like a job description, an onboarding document, and a brand voice guide rolled into one paragraph. When it is written well, the AI behaves like a trained specialist. When it is vague or absent, the AI behaves like a talented generalist who is guessing what you need.</p><p>The difference between a useful AI interaction and a frustrating one is almost always the quality of the setup, not the capability of the model. Most people blame the model. The real issue is the instruction.</p><p>The beauty of GPT projects is simplicity. No code. No integration. Just a well-written system prompt and a consistent workspace. For quick advisory loops, drafting, and thinking out loud with context. Projects are fast and effective.</p><p>But they have a ceiling. And that ceiling is where Custom GPTs come in.</p><h4>Custom GPTs: When you need more than a system prompt</h4><p>If ChatGPT Projects are a notebook with a standing briefing note, then Custom GPTs are a specialist who has been trained, given reference documents, handed a set of tools, and told exactly how to handle specific types of requests.</p><p>The technical distinction matters, so let me be direct about it:</p><p>A ChatGPT Project is a persistent chat context with global instructions. A Custom GPT is a purpose-built AI application with grounded knowledge, specific capabilities, and optional third-party integrations.</p><p>A Custom GPT can be given uploaded documents that it references when answering, so it is not just guessing from general training data, it is drawing from your specific materials. It can be connected to external APIs. It has a configured conversation style, a defined scope, and a persona that is consistent across all users who interact with it. It is, in essence, a lightweight product, not just a chat thread.</p><p>The tradeoff: Custom GPTs take more time to build well, and their quality depends heavily on the design of their knowledge base and instructions. They are also more appropriate for repeatable, structured use cases than for open-ended advisory conversations.</p><p>Now here is the honest distinction between using a Custom GPT and using an agent for content generation: <strong>a Custom GPT gives you grounded, structured, reference-informed responses in a consistent format</strong>. It is excellent for repeatable deliverables; such as a resume review, a translated phrase, a trip itinerary, a technical spec. <strong>An agent, by contrast, can take multi-step autonomous action. It can search, retrieve, synthesise, and produce across a workflow, not just in a single response</strong>. They are different tools for different jobs. The mistake is treating them as interchangeable.</p><h4>Agent skills on Manus and Claude</h4><p>Now we get to the part of the stack that I find genuinely exciting &#8212; and that I also think is the most misunderstood.</p><p>Custom GPTs and ChatGPT Projects are conversational tools. They are excellent. But they are fundamentally reactive. You ask; they respond. The work of sequencing, deciding what to do next, navigating across systems, and executing a multi-step workflow that still falls to you.</p><p>Agent skills are different. A well-designed skill is not just a set of response instructions. It is an operating procedure. It describes the objective, the workflow steps, the inputs and outputs, the decision logic, the tools to use, and the acceptance criteria for a completed task. When you give a capable AI agent a well-written skill, you are not starting a conversation. You are delegating a workstream.</p><p>I currently run skills across two environments: Manus AI and Claude AI. Both have different strengths. Manus is my primary environment for agentic execution; browser automation, multi-step task completion, long-horizon workflows. Claude is my primary environment for deep reasoning, writing, and structured document work. The skills I build for each are tuned to those strengths.</p><blockquote><p>What makes a skill different from a system prompt?</p></blockquote><p>Think of a system prompt as a job description. It tells the AI who it is and how to behave. A skill is more like a standard operating procedure. It tells the AI what to do, in what order, with what tools, and how to verify that the work is done correctly. The best skills I have built include: the purpose and scope of the role, the specific workflow steps broken into phases, the inputs required and outputs expected, the tools and resources available, edge cases and error handling, and the quality bar for the final deliverable.</p><p>The difference in output quality between a well-structured skill and a loosely written one is not subtle. It is the difference between a reliable team member and someone who is talented but needs constant supervision.</p><h4>Friction, limits, and what still needs humans</h4><p>I would be doing you a disservice if I ended this post without being direct about where things break down. Because they do break down. And I think the people who pretend otherwise are selling something.</p><p>Browser automation is the one obvious gap right now. Agentic AI tools are capable of extraordinary things when working inside well-structured data environments; documents, APIs, databases, structured inputs. But the moment you ask an agent to navigate a real web interface, such as to scroll a page, handle a popup, interact with a dynamic JavaScript-rendered UI&#8230; the reliability drops noticeably. It works. Sometimes it works well. But it is not at the level where I can set it and forget it for browser-dependent workflows without expecting to check in.</p><p>This is not a criticism of any single product. It is a current state of the technology. And when it is resolved, when browser automation becomes as reliable as document processing, the agentic experience will take a significant leap. The wings are almost there. The flight is still a little wobbly.</p><p>Here is where I want to be honest about something that is harder to say cleanly.</p><p>Human contributors still matter. They matter a lot. But the bar for what constitutes real contribution has risen sharply, and I think pretending otherwise is a disservice to everyone involved.</p><p>The people I most want to work with now are not people who have impressive titles or long CVs. They are people who know their own knowledge precisely, who can tell me, specifically, what they are good at, what their process looks like, what outcomes they have produced, and where their thinking breaks down. That level of self-knowledge is rare. And it is now more valuable than general capability, because general capability is increasingly available from the tools.</p><p>What I want to avoid at all costs (in human collaborators, and in AI systems) is vagueness. The person who cannot articulate the objective. The person who cannot walk me through their process. The person who responds to &#8216;how would you approach this?&#8217; with a list of soft skills and good intentions. Vagueness used to be acceptable because experience was hard to transfer. Now, vagueness is a liability. Because the ability to transfer knowledge, to articulate it clearly enough that a system, a junior, or an AI can act on it, is exactly what determines how much leverage you can create.</p><p>I am not trying to be harsh about this. I genuinely want to work with other founders and operators who have done the work of understanding themselves. Who have their own processes, their own frameworks, their own hard-won convictions about how things should be done. Even if those frameworks are unconventional. Even if they have not been widely validated. The specificity is the value. A person with a clear, structured, idiosyncratic view of how to do their job is infinitely more useful in an AI-augmented environment than a person with a vague but widely acceptable one.</p><p>Because structured, specific knowledge and articulated logically, with clear inputs, expected outputs, potential failure modes, and known constraints, is exactly what gets transformed into a working skill. And a working skill, given to a capable agent, becomes leverage.</p><p>The people who thrive in this new environment will not be the ones who were the most generally capable. They will be the ones who were the most clearly self-aware about what they actually know and how they actually work.</p><p>I started this post by talking about a baseball manager walking to the mound. The manager does not throw the pitches. The manager creates the conditions under which the pitcher can throw them well.</p><p>The company I am building does not look like the companies that came before it. It is leaner by design. It is more leveraged by intention. It requires me to be more self-aware, more structured, and more articulate about how I work than any previous stage of my career has demanded.</p><p>I would not have it any other way.</p><p>If any of this resonates, and if you are building something similar, thinking about how to structure your own AI stack, or just trying to figure out where the real leverage is in all of this&#8230; I would genuinely like to hear from you. The work is more interesting when the thinking is shared.</p>]]></content:encoded></item><item><title><![CDATA[The batting order matters]]></title><description><![CDATA[Why how you set up AI is more important than which AI you use]]></description><link>https://blog.jael.ee/p/the-batting-order-matters</link><guid isPermaLink="false">https://blog.jael.ee/p/the-batting-order-matters</guid><dc:creator><![CDATA[Jae Lee]]></dc:creator><pubDate>Sun, 15 Mar 2026 16:20:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!U-vc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8797180-8f90-43f5-bc12-18148347179e_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It was the bottom of the seventh, and I already knew it was over.</p><p>South Korea versus the Dominican Republic in the WBC quarterfinals. The gap wasn&#8217;t just on the scoreboard, it was in everything&#8230; the at-bats, the pitch selection, the defensive positioning. As someone who&#8217;s spent years looking at this game through data and a SABR analytics specialist, I didn&#8217;t need the final out to tell me what the numbers already had.</p><p>But losing a game I care about does one useful thing. It makes me ask questions. Which Korean hitters had been struggling before this tournament? Were there signs in the KBO numbers? What patterns were hiding in the data that nobody surfaced in time?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U-vc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8797180-8f90-43f5-bc12-18148347179e_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U-vc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8797180-8f90-43f5-bc12-18148347179e_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!U-vc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8797180-8f90-43f5-bc12-18148347179e_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!U-vc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8797180-8f90-43f5-bc12-18148347179e_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!U-vc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8797180-8f90-43f5-bc12-18148347179e_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U-vc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8797180-8f90-43f5-bc12-18148347179e_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8797180-8f90-43f5-bc12-18148347179e_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8974064,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/191031067?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8797180-8f90-43f5-bc12-18148347179e_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U-vc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8797180-8f90-43f5-bc12-18148347179e_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!U-vc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8797180-8f90-43f5-bc12-18148347179e_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!U-vc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8797180-8f90-43f5-bc12-18148347179e_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!U-vc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8797180-8f90-43f5-bc12-18148347179e_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Illustration generated using Gemini 3</em></figcaption></figure></div><p>A few days ago, I was catching up with a close friend who&#8217;s a rising FIFA-licensed agent. We were talking about how sports organizations handle player data, and he said something offhand that I haven&#8217;t been able to shake.</p><div class="pullquote"><p>&#8220;I&#8217;ve seen the dozens of note cards my broadcaster friends prepare before a game. Has to be hours of work.&#8221;</p></div><p>He wasn&#8217;t complaining. He was just observing. But what he was really describing is a challenge I&#8217;ve seen inside nearly every organization I&#8217;ve worked with, and a long list of startups across Asia, the Middle East, and North America. The pattern is identical whether you&#8217;re calling a baseball game or running a quarterly business review.</p><p>And what started as a personal baseball project accidentally became my analogy for explaining this to organizations.</p><p>So here&#8217;s what I actually built, because the experience is the lesson.</p><p><strong>Approach one: just ask ChatGPT.</strong> ChatGPT and most LLMs do have web access these days, but current KBO statistics are not exactly their strong suit. The result was a confident-sounding answer built on thin air. This is what LLMs do when they lack grounding in specific, real data: they estimate, extrapolate, and occasionally just make things up while maintaining excellent posture.</p><p>Previously, I also built a <a href="https://chatgpt.com/g/g-69b6a7b66b4481919a9c0767ce392770-baseball-data-analyst">Baseball Data Analyst custom GPT</a> for the purpose of having a conversational experience with specialized context, voice interface, baseball analytics framing. Genuinely useful for general reasoning, historical context, analytical frameworks. But for specific private statistics? A well-configured GPT without grounded data is a confident intern who&#8217;s never actually seen your files.</p><div><hr></div><p><strong>Approach two: fine-tune a model on the data.</strong> What if I just trained the model on KBO player statistics directly?</p><p>I built a fine-tuning pipeline in Google Colab, because most of us don&#8217;t have enterprise GPUs sitting around. The process is more accessible than it sounds. Take a base model like Llama 3.1 8B from Hugging Face, apply LoRA (a lightweight technique that adjusts only a small fraction of model parameters, keeping compute costs reasonable), feed it your dataset, and train it on a free T4 GPU in Colab.</p><p>The part most tutorials gloss over is the data preparation. Your training data needs to be structured as input/output pairs in JSONL format, essentially teaching the model: &#8220;when asked this, respond like this.&#8221; One example from my KBO dataset looked like:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;json&quot;,&quot;nodeId&quot;:&quot;0fbcf145-7182-47b2-9a58-0b81a06f9b85&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-json">{"input": "What was Moon Bo-gyeong's batting average during the 2024 season?", "output": "Moon Bo-gyeong&#8217;s batting average was .301 in the 2024 KBO season."}</code></pre></div><p>Get that format wrong, and the training runs fine but the model learns nothing useful. Once the dataset is clean, the actual training call is straightforward:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;17251b1d-444f-4c3c-8c52-452a1425fd1b&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">trainer = SFTTrainer(
    model=model,
    train_dataset=dataset['train'],
    eval_dataset=dataset['test'],
    dataset_text_field='text',
    max_seq_length=2048,
    args=TrainingArguments(
        per_device_train_batch_size=2,
        gradient_accumulation_steps=4,
        num_train_epochs=3,
        learning_rate=2e-4,
        output_dir='kbo_checkpoints',
    )
)
trainer.train()</code></pre></div><p>After training, you export the model and run it locally through Ollama.</p><p>The fine-tuned model learned patterns. It could speak with real familiarity about KBO teams and players. But here&#8217;s the problem with specific statistical data: fine-tuned models are confidently wrong in ways that will age badly. The model learned the <em>language</em> of the data, not the facts. When it didn&#8217;t know a number, it filled the gap with something plausible-sounding. In baseball, that&#8217;s embarrassing. In a business context, a wrong figure in a financial report, a patient record, a production defect rate becomes a liability.</p><div><hr></div><p><strong>Approach three: build a RAG.</strong> This is where I landed, and where most real-world data problems actually belong.</p><p>RAG or Retrieval-Augmented Generation, doesn&#8217;t ask the model to remember your data. It builds a retrieval layer that searches your actual data first, then hands the relevant results to the model as context. The model&#8217;s job becomes interpretation and presentation, not memorization. The model is the analyst. The retrieval system is the filing cabinet.</p><p>My KBO RAG chatbot runs entirely on my local machine. It indexes 5,289 player-seasons across all 10 KBO teams from 2016 to 2025, plus 1,571 player bios. When you ask about Hanwha Eagles&#8217;s 2024 roster, it retrieves actual JSON files from my dataset, formats the stats, and passes them to the LLM with a clear instruction: answer only from this data. No cloud API. No data leaving my machine. No guessing. The accuracy difference is not subtle.</p><p>This wasn&#8217;t my first time building a RAG for a real use case.</p><p>In 2022, when I co-founded a zero-knowledge social media platform for verified college students, we faced the same core problem. Students wanted recommendations on what to study to target specific careers. We had course catalogs from multiple US universities. The question was how to make that information actually useful in context.</p><p>We built a RAG pipeline referencing real course offerings from each university. When a student expressed interest in product management at tech companies, the system didn&#8217;t hallucinate a curriculum. It retrieved real courses from their specific school and surfaced relevant options. Grounded, personalized, accurate.</p><p>The lesson I took from that: the magic is never in the model alone. It&#8217;s in the retrieval layer, the data strategy, the system design that keeps the AI working with truth instead of probability.</p><p>Let me translate the baseball project into language that&#8217;s harder to ignore.</p><p>If your team is using a general-purpose LLM to draft copy or brainstorm campaign angles, that&#8217;s approach one. Useful. Saves time on first drafts. But it has no knowledge of your brand guidelines, last quarter&#8217;s performance, or what&#8217;s actually happening in your specific markets.</p><p>Now consider a large enterprise, say, Samsung. Decades of internal product data, engineering specs, global customer feedback, supply chain metrics. A fine-tuned model trained on that data would speak the language of the company fluently: valuable for internal knowledge management, onboarding, contextual documentation generation. But ask it for a specific defect rate from Q3&#8217;s production line, and if that number is off by half a percent, the consequences ripple.</p><p>This is also why many large enterprises aren&#8217;t rushing to push their data into cloud-hosted models. The interest in on-premises AI environments has grown significantly, running models locally, keeping proprietary datasets off third-party infrastructure entirely. Security around LLM and agentic deployments is no longer a footnote. It&#8217;s a board-level conversation. And for good reason: the more capable these systems get, the higher the cost of a breach or a leak.</p><p>For use cases requiring precision on real internal data, a RAG (or a hybrid architecture where the LLM retrieves from verified internal sources before synthesizing) is the right answer. The data stays grounded. The model stays in its lane.</p><p>Three approaches. Three different purposes. None of them inherently wrong. All of them wrong when applied to the wrong problem.</p><p>Most organizations are still evaluating AI by typing a question into a chatbot and judging the response. That&#8217;s like evaluating a pitcher by watching one warmup throw. It&#8217;s not a strategy.</p><p>Prompt engineering matters. But its real leverage shows up when a well-designed prompt becomes a component inside an agentic workflow where an AI agent retrieves data, applies reasoning, takes action, and feeds results into a downstream process. That&#8217;s when it stops being a conversation trick and starts being infrastructure.</p><p>What this requires is end-to-end understanding. Not just &#8220;we use AI.&#8221; Which kind? Grounded in what data? Embedded in which workflow? With what guardrails? Deployed where, and why?</p><p>The organizations that will lead the next phase aren&#8217;t the ones who adopted AI the earliest. They&#8217;re the ones who understood the setup.</p><p>Here&#8217;s the part that I think is worth sitting with.</p><p>The broadcaster spending hours preparing note cards, the analyst building spreadsheets from scratch, the marketing director assembling a quarterly report by hand, their work doesn&#8217;t disappear. But the hours of manual preparation, the risk of human error, the bottleneck of individual memory? That part is already being replaced. Not by AI that guesses. By AI that retrieves, grounds, and acts on real data.</p><p>The generalist who understands how to connect data, models, workflows, and business context that person is becoming increasingly valuable. Not the person who has heard of the concept, or who knows someone who knows. The work itself is becoming the proof.</p><p>Baseball season is almost here. And I&#8217;ll be watching with a RAG chatbot on my laptop, a fine-tuned model I trained in Colab, and a custom GPT built for baseball analysis. Three tools, each with a purpose.</p><p>The batting order matters. Know what you&#8217;re putting up to the plate, and why.</p>]]></content:encoded></item><item><title><![CDATA[Why founders get trapped in the theater of success]]></title><description><![CDATA[AI has made everyone enabled overnight. So why do so many of us still spend more time consuming trends than actually producing real value?]]></description><link>https://blog.jael.ee/p/why-founders-get-trapped-in-the-theater</link><guid isPermaLink="false">https://blog.jael.ee/p/why-founders-get-trapped-in-the-theater</guid><dc:creator><![CDATA[Jae Lee]]></dc:creator><pubDate>Sat, 31 Jan 2026 05:51:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ETuv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd7e4922-862f-499b-9a94-297196b9dafa_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ETuv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd7e4922-862f-499b-9a94-297196b9dafa_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ETuv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd7e4922-862f-499b-9a94-297196b9dafa_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ETuv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd7e4922-862f-499b-9a94-297196b9dafa_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ETuv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd7e4922-862f-499b-9a94-297196b9dafa_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ETuv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd7e4922-862f-499b-9a94-297196b9dafa_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ETuv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd7e4922-862f-499b-9a94-297196b9dafa_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bd7e4922-862f-499b-9a94-297196b9dafa_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2314807,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/186383307?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd7e4922-862f-499b-9a94-297196b9dafa_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ETuv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd7e4922-862f-499b-9a94-297196b9dafa_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ETuv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd7e4922-862f-499b-9a94-297196b9dafa_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ETuv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd7e4922-862f-499b-9a94-297196b9dafa_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ETuv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd7e4922-862f-499b-9a94-297196b9dafa_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Illustration generated with Gemini 3</em></figcaption></figure></div><p>I&#8217;ve been reflecting on the quiet drift that happens in the age of AI. It&#8217;s the moment when the flood of accessible tools and instant knowledge makes everyone feel capable, yet most strategies still lean heavily toward consuming the next shiny thing instead of actually producing something useful with it. The lowered barriers and rapid distribution let individuals, teams, organizations, and even governments become AI-enabled overnight. But real leverage comes from creation, not from endless absorption of information and performance boosters.</p><p>This pattern echoes much of <strong><a href="https://amzn.to/45GnnXf">Derek Thompson&#8217;s Hit Makers: The Science of Popularity in an Age of Distraction</a></strong>, where he shows how virality is fueled by spectacle over substance. Algorithms reward what&#8217;s shocking or instantly digestible, drawing people into cycles of attention-chasing that feel productive but rarely are. In the startup world, this shows up as founders without a steady internal direction. <strong>Without that north star, it becomes natural to chase likes, shares, and perceived ecosystem status instead of solving concrete problems.</strong> Some VCs do the same by projecting deep operator wisdom they&#8217;ve never lived through, building rockstar images from the safety of their capital gatekeeping role. It&#8217;s cosplay masquerading as authority.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.jael.ee/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Digital logs by Jae Lee! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>For me, the way out has always been to move decisively from consumption to production. Consumption is passive and seductive. You scroll AI trend threads, sign up for every new tool, read one more newsletter, and walk away feeling sharper and more <em>in the game</em>. But the momentum is mostly illusion. It&#8217;s like filling the tank repeatedly without ever turning the key. The energy leaks into distraction and external validation loops instead of building anything real.</p><p>Production is different. It&#8217;s active, grounding, and forces decisions. You channel attention into making and crafting solutions for specific pains, iterating on messy prototypes, shipping value that exists independently of applause. Consuming ten AI platforms can give you ideas. Building one tailored solution actually solves something. Take a custom AI wrapper that fixes a precise workflow bottleneck in your startup. Sure, some people roll their eyes and call it too easy or not innovative enough. Yet those same voices usually haven&#8217;t taken ten minutes to wire up a <a href="https://gemini.google.com/gems/view">Google Gemini Gem </a>with <a href="https://notebooklm.google/">NotebookLM</a>, which basically gives you a personal super brain for both work and life tasks. The moment you start building, clarity arrives on its own. What exact problem am I addressing? Who benefits right now? How does this measurably improve things? That line of questioning turns scattered habits into durable discipline and pulls you out of performative theater into genuine forward motion.</p><p>In my own path this shift was everything. Early days were heavy on consumption, such as podcasts on loop, newsletters stacked, tools trialed endlessly, because it felt like progress. It left me fragmented, always one step behind the next hype wave. When I flipped to production, prototyping something as unglamorous as automated pattern detection in user feedback data, the fog lifted. The work wasn&#8217;t viral material, but it produced results, sharpened my judgment, and tied directly to a north star of real value. Over months and years that orientation becomes protective: you stop performing for an audience and start creating for impact. Authenticity turns into armor against the mask.</p><p>That&#8217;s the discipline I&#8217;m still honing.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.jael.ee/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Digital logs by Jae Lee! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The consistent thread running through my work]]></title><description><![CDATA[Recently, David, General Partner at Ethos Fund, asked me to explain, in my own words, how my latest venture, FMInsight, connects to my broader life mission and career vision.]]></description><link>https://blog.jael.ee/p/the-consistent-thread-running-through</link><guid isPermaLink="false">https://blog.jael.ee/p/the-consistent-thread-running-through</guid><dc:creator><![CDATA[Jae Lee]]></dc:creator><pubDate>Mon, 19 Jan 2026 08:59:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sJ5H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546ee0b7-c661-4863-a2bd-131d0ba1c05a_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sJ5H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546ee0b7-c661-4863-a2bd-131d0ba1c05a_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sJ5H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546ee0b7-c661-4863-a2bd-131d0ba1c05a_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!sJ5H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546ee0b7-c661-4863-a2bd-131d0ba1c05a_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!sJ5H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546ee0b7-c661-4863-a2bd-131d0ba1c05a_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!sJ5H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546ee0b7-c661-4863-a2bd-131d0ba1c05a_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sJ5H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546ee0b7-c661-4863-a2bd-131d0ba1c05a_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/546ee0b7-c661-4863-a2bd-131d0ba1c05a_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1294228,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jael.ee/i/185042374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546ee0b7-c661-4863-a2bd-131d0ba1c05a_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sJ5H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546ee0b7-c661-4863-a2bd-131d0ba1c05a_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!sJ5H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546ee0b7-c661-4863-a2bd-131d0ba1c05a_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!sJ5H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546ee0b7-c661-4863-a2bd-131d0ba1c05a_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!sJ5H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546ee0b7-c661-4863-a2bd-131d0ba1c05a_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Illustration generated with Gemini 3</figcaption></figure></div><p>Recently, <a href="https://www.linkedin.com/in/thedavidyi/">David</a>, General Partner at <a href="https://www.ethosfund.vc/">Ethos Fund</a>, asked me to explain, in my own words, how my latest venture, FMInsight, connects to my broader life mission and career vision. He wanted it straightforward and personal, not a slick pitch. So here&#8217;s a brief, honest reflection on the single thread that&#8217;s guided me for over twenty-five years.</p><p>I&#8217;ve always believed that knowledge should be open to anyone who seeks it, and that thoughtful use of data can make daily life calmer, smoother, and better - without creating extra hassle. That belief is why I build platforms, why I wrote a couple of practical <a href="https://www.amazon.com/stores/Jae-W.-Lee/author/B0CR9F3YJR">Python books for beginners</a> (I still love how Python handles data), and why I carve out time to mentor founders through programs like <a href="https://fi.co/">The Founder Institute</a> and <a href="https://www.ignyte.ae/">Ignyte</a>. It&#8217;s never been about credit or visibility - it&#8217;s simply about passing on the tools and mindsets that help turn good ideas into something solid and enduring, whether I&#8217;m volunteering time or working in a deeper advisory role.</p><p>For the past twenty-five years of my professional career, I&#8217;ve put this into action by building data-driven systems in healthcare, logistics, travel, and education, always aiming to replace constant firefighting with calm, forward-looking decisions. FMInsight is just the newest step along the same path, now applied to the buildings and spaces we spend our days in - using smart data to ease stress and help operations teams stay ahead of problems.</p><p>At its core, every system I&#8217;ve created has been about giving people better control over the chaos around them - a doctor managing patients, a logistics lead tracking shipments, a student charting their career, or a facility team keeping everything running. FMInsight follows that exact impulse for the physical environments we rely on most. When we make those spaces more resilient and less reactive through spatial intelligence, the people inside them can focus on what truly matters instead of putting out fires. <br><br>That&#8217;s the kind of quiet, lasting impact I&#8217;m always chasing.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.jael.ee/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Digital logs by Jae Lee! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Startup life is a season, not a sprint]]></title><description><![CDATA[Standards beat perks. Systems beat hustle.]]></description><link>https://blog.jael.ee/p/startup-life-is-a-season-not-a-sprint</link><guid isPermaLink="false">https://blog.jael.ee/p/startup-life-is-a-season-not-a-sprint</guid><dc:creator><![CDATA[Jae Lee]]></dc:creator><pubDate>Fri, 02 Jan 2026 02:00:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-Gk1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47007856-3fb6-4955-9c01-b454b04e12c8_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-Gk1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47007856-3fb6-4955-9c01-b454b04e12c8_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-Gk1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47007856-3fb6-4955-9c01-b454b04e12c8_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!-Gk1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47007856-3fb6-4955-9c01-b454b04e12c8_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!-Gk1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47007856-3fb6-4955-9c01-b454b04e12c8_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!-Gk1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47007856-3fb6-4955-9c01-b454b04e12c8_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-Gk1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47007856-3fb6-4955-9c01-b454b04e12c8_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47007856-3fb6-4955-9c01-b454b04e12c8_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1782776,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://leejaew.substack.com/i/183198821?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47007856-3fb6-4955-9c01-b454b04e12c8_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-Gk1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47007856-3fb6-4955-9c01-b454b04e12c8_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!-Gk1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47007856-3fb6-4955-9c01-b454b04e12c8_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!-Gk1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47007856-3fb6-4955-9c01-b454b04e12c8_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!-Gk1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47007856-3fb6-4955-9c01-b454b04e12c8_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Illustration generated with Gemini 3</figcaption></figure></div><p>Entrepreneurship gets romanticized with the visible stuff. Beanbags. Cold brew. Flexible hours. Quirky job titles. None of that is the actual product.</p><p>The real product is outcomes: shipping, retention, revenue, trust, velocity, and resilience under pressure. And those outcomes are created by people, guided by standards, and repeated through systems.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.jael.ee/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Sports has been trying to teach us this forever.</p><p>A great example is <strong>Nick Saban&#8217;s coaching tree showing up in the NCAA College Football Playoffs</strong>. Different programs, different styles, different conferences, same root system.</p><ul><li><p><strong>Curt Cignetti (Indiana)</strong> Wide Receivers Coach and Recruiting Coordinator (2007&#8211;2010) at Alabama</p></li><li><p><strong>Kirby Smart (Georgia)</strong> Assistant Head Coach and DB Coach (2007) and Defensive Coordinator (2008&#8211;2015) at Alabama</p></li><li><p><strong>Dan Lanning (Oregon)</strong> Graduate Assistant (2015) at Alabama </p></li><li><p><strong>Pete Golding (Ole Miss)</strong> Co-Defensive Coordinator and Inside Linebackers Coach (2018) and Defensive Coordinator and Inside Linebackers Coach (2019&#8211;2022) at Alabama</p></li><li><p><strong>Mario Cristobal (Miami)</strong> Assistant Head Coach, Offensive Line Coach, and Recruiting Coordinator (2013&#8211;2016) at Alabama</p></li></ul><p>This isn&#8217;t just trivia. It&#8217;s a blueprint for building companies that win.</p><div><hr></div><h2>The &#8220;coaching tree&#8221; is what startups call culture and talent density</h2><p>In football, a coaching tree forms when a program consistently produces leaders who can take the same principles elsewhere and win in new environments. In startups, you see the same phenomenon:</p><ul><li><p>Founders who produce future founders</p></li><li><p>Early leaders who become repeat operators</p></li><li><p>Teams that go on to build high-performing groups at other companies</p></li><li><p>Alumni networks that become talent pipelines and investor magnets</p></li></ul><p>The core lesson: <strong>your environment produces people, and people reproduce environments</strong>.</p><p>If your company is truly great, it won&#8217;t just ship product. It will ship leaders.</p><div><hr></div><h2>What Saban got right that founders often miss</h2><h3>1) Standards are the culture, not vibes</h3><p>Championship programs are not built on motivational speeches. They are built on <strong>what is tolerated and what is demanded</strong>, every day.</p><p>Startup translation:</p><ul><li><p>Clear definition of &#8220;done&#8221;</p></li><li><p>High-quality decision making under constraints</p></li><li><p>Accountability that is fair and consistent</p></li><li><p>A bias toward fundamentals: customer pain, unit economics, reliability, clarity</p></li></ul><p>Perks do not create performance. <strong>Standards do.</strong></p><h3>2) Process scales when charisma stops working</h3><p>A founder&#8217;s charisma can carry a team from 0 to 1. It cannot carry them from 10 to 100. Winning programs win because their process survives personnel changes.</p><p>Startup translation:</p><ul><li><p>Hiring rubrics that prevent &#8220;good talkers&#8221; from sneaking in</p></li><li><p>Operating cadence: weekly execution, metrics, retros</p></li><li><p>Playbooks for sales, onboarding, incident response, customer success</p></li><li><p>Training and feedback loops that compound</p></li></ul><p>When you are tired, busy, and stressed, you do not rise to your goals. You fall to your systems.</p><h3>3) Recruiting is strategy</h3><p>Notice how multiple names in that coaching tree held roles tied to recruiting, development, or foundational execution (wide receivers, DBs, line, defensive systems). In elite programs, recruiting is not HR. It&#8217;s the game.</p><p>Startup translation:</p><ul><li><p>Your hiring bar is your strategy</p></li><li><p>Your onboarding is your retention strategy</p></li><li><p>Your performance management is your speed strategy</p></li><li><p>Your leadership bench is your risk management</p></li></ul><div><hr></div><h2>&#8220;People first&#8221; does not mean &#8220;people comfort&#8221;</h2><p>Some founders hear &#8220;people first&#8221; and translate it into comfort-first. That&#8217;s how you end up with a nice office and mediocre results.</p><p><strong>People first means:</strong></p><ul><li><p>Psychological safety <em>and</em> performance clarity</p></li><li><p>Candor without cruelty</p></li><li><p>High trust and high standards</p></li><li><p>Coaching that upgrades the team, not just manages it</p></li><li><p>A mission that makes the sacrifice feel worth it</p></li></ul><p>People don&#8217;t join startups for stability. They join for growth, ownership, and impact. Respecting that means building an environment where their courage converts into results.</p><div><hr></div><h2>The leap of faith: what team members are really betting on</h2><p>Joining an early-stage startup is like signing with a new program that promises a better future but has not won yet. The risk is real, and so is the opportunity.</p><p>If you want great people to take that leap, they are looking for evidence of three things:</p><ol><li><p><strong>Competence</strong><br>Does leadership know what &#8220;good&#8221; looks like?</p></li><li><p><strong>Integrity</strong><br>Do words match actions when things get hard?</p></li><li><p><strong>Trajectory</strong><br>Is there a realistic path to winning, or just optimism?</p></li></ol><p>Perks are not evidence. <strong>Execution is evidence.</strong></p><div><hr></div><h2>The investor angle: your VCs are part of your team, not just your cap table</h2><p>Here&#8217;s where the sports analogy gets even more useful. A great program does not just pick talented players. It picks people who fit the system, buy into the standard, and elevate the locker room.</p><p>Founders should evaluate investors the same way.</p><h3>Pick investors like you pick coaches:</h3><ul><li><p>Do they develop teams, or just critique from the stands?</p></li><li><p>Do they stay calm in losing streaks, or create chaos?</p></li><li><p>Do they have pattern recognition that helps, or ego that distracts?</p></li><li><p>Do they open doors that matter for your stage, your market, your hiring needs?</p></li><li><p>Do they align with your time horizon, or push for shortcuts?</p></li></ul><p>The wrong investor is like a coordinator who changes the playbook every week. You don&#8217;t just lose games. You lose trust, clarity, and momentum.</p><p>The right investor reinforces the standard, supports recruiting, and helps you build a program that outlasts a single season.</p><div><hr></div><h2>Build a company that produces winners elsewhere</h2><p>Nick Saban&#8217;s coaching tree is a loud signal: the most valuable thing a program creates is not a trophy. It&#8217;s a <em>repeatable way of winning</em>, carried forward by people.</p><p>That is the most underrated startup goal too.</p><p>Yes, ship product.<br>Yes, chase revenue.<br>Yes, hit milestones.</p><p>But if you want something that lasts, build a company where:</p><ul><li><p>People grow faster than they expected</p></li><li><p>Standards are clear and real</p></li><li><p>Leaders are developed, not just hired</p></li><li><p>Results speak louder than perks</p></li><li><p>Partners and investors strengthen the culture, not dilute it</p></li></ul><p>Because in sports and startups, the scoreboard is honest.</p><p>And the best legacy is a tree.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.jael.ee/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>