<?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[Jono Horne - YDY Ventures]]></title><description><![CDATA[Sharing what makes me tick and the lessons and outcomes of YDY Ventures]]></description><link>https://letters.jonohorne.com</link><image><url>https://substackcdn.com/image/fetch/$s_!QEs7!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbda529ab-5616-47ed-b500-2e701faf5d06_1024x1024.png</url><title>Jono Horne - YDY Ventures</title><link>https://letters.jonohorne.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 05 Jun 2026 09:12:05 GMT</lastBuildDate><atom:link href="https://letters.jonohorne.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Jono Horne]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[jonohorne@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[jonohorne@substack.com]]></itunes:email><itunes:name><![CDATA[Jonathan Horne - YDY Venutres]]></itunes:name></itunes:owner><itunes:author><![CDATA[Jonathan Horne - YDY Venutres]]></itunes:author><googleplay:owner><![CDATA[jonohorne@substack.com]]></googleplay:owner><googleplay:email><![CDATA[jonohorne@substack.com]]></googleplay:email><googleplay:author><![CDATA[Jonathan Horne - YDY Venutres]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Every promise I made in a meeting yesterday is on a list this morning.]]></title><description><![CDATA[The scheduled task that scans my Granola transcripts and my sent emails, then catches every commitment before I've forgotten saying it. The single best use of personal AI I have.]]></description><link>https://letters.jonohorne.com/p/every-promise-i-made-in-a-meeting</link><guid isPermaLink="false">https://letters.jonohorne.com/p/every-promise-i-made-in-a-meeting</guid><dc:creator><![CDATA[Jonathan Horne - YDY Venutres]]></dc:creator><pubDate>Fri, 29 May 2026 21:25:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!s-q4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F262e9f07-9b07-4614-ad48-d7931d2700bf_1484x1060.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_!s-q4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F262e9f07-9b07-4614-ad48-d7931d2700bf_1484x1060.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s-q4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F262e9f07-9b07-4614-ad48-d7931d2700bf_1484x1060.png 424w, https://substackcdn.com/image/fetch/$s_!s-q4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F262e9f07-9b07-4614-ad48-d7931d2700bf_1484x1060.png 848w, https://substackcdn.com/image/fetch/$s_!s-q4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F262e9f07-9b07-4614-ad48-d7931d2700bf_1484x1060.png 1272w, https://substackcdn.com/image/fetch/$s_!s-q4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F262e9f07-9b07-4614-ad48-d7931d2700bf_1484x1060.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!s-q4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F262e9f07-9b07-4614-ad48-d7931d2700bf_1484x1060.png" width="1456" height="1040" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/262e9f07-9b07-4614-ad48-d7931d2700bf_1484x1060.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1040,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1885695,&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://letters.jonohorne.com/i/199797423?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F262e9f07-9b07-4614-ad48-d7931d2700bf_1484x1060.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_!s-q4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F262e9f07-9b07-4614-ad48-d7931d2700bf_1484x1060.png 424w, https://substackcdn.com/image/fetch/$s_!s-q4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F262e9f07-9b07-4614-ad48-d7931d2700bf_1484x1060.png 848w, https://substackcdn.com/image/fetch/$s_!s-q4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F262e9f07-9b07-4614-ad48-d7931d2700bf_1484x1060.png 1272w, https://substackcdn.com/image/fetch/$s_!s-q4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F262e9f07-9b07-4614-ad48-d7931d2700bf_1484x1060.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><br>I make about a hundred promises a week.</strong></p><p>&#8220;I&#8217;ll send you the proposal Tuesday.&#8221; &#8220;I&#8217;ll loop Sarah in.&#8221; &#8220;I&#8217;ll get those numbers across this arvo.&#8221; &#8220;I&#8217;ll get back to you on the offer by EOW.&#8221; &#8220;I&#8217;ll, yeah, definitely have a look at it tonight.&#8221;</p><p>For most of my career I would forget about ninety of them within twenty minutes.</p><p>I have ADHD. I have kids. I have a partner. I surf, I read, I work on myself, I show up to a bunch of things that matter. My working memory has the storage capacity of a sticky note that&#8217;s been left out in the rain.</p><p>This wasn&#8217;t a character flaw. It was an operating constraint. Smart enough to land things in the room. Distracted enough to drop them by the time I was in the lift.</p><p>For the last six months I haven&#8217;t dropped a single commitment.</p><p>Not because I got better at remembering. Because I built something that remembers for me.</p><p>This is the smallest, dumbest, least sexy AI thing I&#8217;ve made. It&#8217;s the one I&#8217;d keep if I had to give up everything else.</p><div><hr></div><h2>The thing nobody admits about being a founder</h2><p>Every founder I know is dropping commitments. Quietly. Constantly.</p><p>Not the big ones. The small ones.</p><p>The &#8220;I&#8217;ll get back to you&#8221; that becomes a week of silence. The &#8220;I&#8217;ll send the doc&#8221; that arrives on day six. The standup commitment to your team that&#8217;s gone from your head by lunch. The thing your partner asked you to do on Sunday that resurfaces on Wednesday with a look that says we have spoken about this.</p><p>Your reputation isn&#8217;t built on the big strategic promises you keep. It&#8217;s built on the small daily ones. The &#8220;I&#8217;ll do it by Thursday&#8221; that arrives Thursday is the entire game. It separates you from almost everyone else they deal with.</p><p>Most founders I know cope by doing one of two things. Either they over-commit in the moment and quietly under-deliver. Or they under-commit and seem unhelpful. Both look bad. Both feel bad.</p><p>The fix isn&#8217;t willpower. I tried willpower for fifteen years. The fix is a system that catches everything you said the second you said it.</p><h2>What the Commitment Extractor does</h2><p>I don&#8217;t open this thing. I don&#8217;t think about it. It runs in the background every evening, while I&#8217;m cooking or with the kids or scrolling something I shouldn&#8217;t be scrolling.</p><p>Here&#8217;s what it does:</p><ol><li><p><strong>Scans every sent email from the last 24 hours.</strong> All my accounts.</p></li><li><p><strong>Scans every meeting transcript from the last 24 hours.</strong> Granola, mostly. This is the bit that changed my life. More on it below.</p></li><li><p><strong>Reads everything I said, looking for the moment I committed to something.</strong></p></li><li><p><strong>Creates a task in Todoist</strong> with the commitment, the due date, who I made it to, and a link back to where I said it.</p></li><li><p><strong>Watches my outbound activity the next day for fulfilment.</strong> When I actually send the thing on Wednesday, the task self-clears. I don&#8217;t have to mark anything off.</p></li><li><p><strong>Posts a daily summary in Slack.</strong> New today, fulfilled yesterday, overdue, due in the next 48 hours.</p></li></ol><p>Step three is where the AI earns its keep, and it&#8217;s worth slowing down on for a second.</p><p>A regex could catch &#8220;I will send the proposal by Thursday.&#8221; That&#8217;s not the problem. The problem is the way real people actually commit to things, which is almost never that clean.</p><p>It&#8217;s &#8220;leave it with me.&#8221; It&#8217;s &#8220;yeah, I&#8217;ll get that across.&#8221; It&#8217;s &#8220;let me check with finance and circle back.&#8221; It&#8217;s &#8220;I&#8217;ll have a think and come back to you.&#8221; It&#8217;s the throwaway &#8220;I&#8217;ll send through that link&#8221; mentioned in passing while you&#8217;re already onto the next agenda item. It&#8217;s &#8220;remind me to do that next week&#8221; said as a request that&#8217;s actually a commitment. It&#8217;s the soft &#8220;I&#8217;ll see what I can do&#8221; that the other person heard as a yes.</p><p>The AI reads intent, not keywords. It picks up the verb of delivery (send, share, book, prep, check, confirm, revert, sort, get across), it figures out who you committed to, and it works out a due date from context. &#8220;By Thursday&#8221; means next Thursday. &#8220;EOW&#8221; means Friday. &#8220;This arvo&#8221; means today. &#8220;Soon&#8221; means three business days unless you&#8217;ve said otherwise. No reference at all means it gives you two business days as a default and you can argue with it later.</p><p>It also catches the ones I would never catch myself. The line buried halfway down an email reply that I wrote in 90 seconds between meetings. The &#8220;yeah for sure&#8221; I muttered in a Granola call while looking at something else on my second screen. The aside in a standup where someone said &#8220;could you check that?&#8221; and I said &#8220;yep&#8221; and we moved on. All of them get caught.</p><p>I wake up to a list of things I promised, ordered by when I said I&#8217;d deliver. I go to bed knowing nothing slipped.</p><h2>The bit that changed everything</h2><p>Email commitments are easy to catch. They&#8217;re written down. Anyone with eyes can find them again.</p><p>Meeting commitments are vapour.</p><p>I&#8217;ll say something at 9:04am in a standup, and by 9:04pm I have no memory of having said it. The other person remembers. They&#8217;re waiting on Wednesday. I forget by Tuesday. They mention it three weeks later with a tight smile and a &#8220;did you have a chance to...&#8221; and I die a small internal death.</p><p>I use Granola for meetings. It transcribes everything automatically, so the words I forgot saying are still sitting there, in writing, with timestamps. The Commitment Extractor scans those transcripts too. Client calls. Team standups. Board meetings. The spontaneous Zoom that wasn&#8217;t on the calendar. The one where someone asked me a casual question and I said &#8220;yeah I&#8217;ll send that over&#8221; while my brain was three meetings ahead.</p><p>All of it. Caught.</p><p>This single addition moved me from &#8220;above average for a founder&#8221; to &#8220;people commenting on it.&#8221; A client said to me recently, &#8220;Jono, you&#8217;re the only one who actually does what he says he will.&#8221; That&#8217;s a sentence I would have laughed at, six months ago.</p><p>It&#8217;s not because I changed. It&#8217;s because the system has my back.</p><h2>What changes the first week you have this</h2><p>A few things shift, and one of them is bigger than I expected.</p><p><strong>You stop trying to remember.</strong> You can be present in meetings, with your team, with your kids, because your brain isn&#8217;t holding a running list of every loose end. You can have a coffee without your jaw clenching every time you think of something you forgot to do.</p><p><strong>You start over-delivering on tiny things.</strong> The doc you said you&#8217;d send by EOD arrives at 11:47am. Nobody says anything. But you go up a rung in their head. Every time. The compounding here is real.</p><p><strong>Your commitments get sharper.</strong> This one took me by surprise. Once you know everything you say will become a tracked task, you stop saying vague things. &#8220;I&#8217;ll send some info&#8221; becomes &#8220;I&#8217;ll send the case study by Thursday morning.&#8221; You stop hedging because you don&#8217;t need to. The system trains you to commit better.</p><p>But here&#8217;s the thing nobody told me when I started.</p><p>I now walk into meetings differently.</p><p>I make clear, definitive promises. No &#8220;I&#8217;ll try.&#8221; No &#8220;let me see what I can do.&#8221; No &#8220;I&#8217;ll get to it when I can.&#8221; Just &#8220;Yes, Thursday morning.&#8221; &#8220;Yes, by EOW.&#8221; &#8220;Yes, I&#8217;ll book it.&#8221; Said with confidence, because I know the system has it the moment it leaves my mouth.</p><p>That feeling, of knowing you will deliver on your word, every single time, without ever having to remember any of it, is the closest thing I have to a superpower.</p><p>I still forget what I had for breakfast. I just don&#8217;t forget what I promised you.</p><h2>How to install it</h2><p>This one&#8217;s different from the previous two posts. It&#8217;s not a skill. It&#8217;s a scheduled task. It lives in Claude Cowork, which is the desktop app, not the browser.</p><h3>What you need</h3><ul><li><p>A paid Claude plan. Pro ($20/month) or higher. Scheduled tasks aren&#8217;t on Free.</p></li><li><p>Claude Desktop installed. Download it from claude.ai if you don&#8217;t already have it.</p></li><li><p>Email connected (Gmail, Outlook, Microsoft 365).</p></li><li><p>A task manager connected. Todoist, Asana, Linear, Notion, ClickUp, Apple Reminders. Whichever one you actually open.</p></li><li><p>A meeting notes tool connected, ideally Granola. This is what unlocks the meetings feature. Optional but I cannot recommend it enough.</p></li><li><p>A team chat connected (Slack, Teams, Discord) for the daily summary. Optional. You can have the summary emailed to yourself instead.</p></li></ul><h3>The five-minute setup</h3><p><strong>1.</strong> Open Claude Desktop. Click your name, then Settings, then Connectors. Connect each tool from the list above.</p><p><strong>2.</strong> Click the Cowork tab at the top of the desktop app. This is where scheduled tasks live. If you&#8217;ve never used Cowork before, this is the moment.</p><p><strong>3.</strong> Create the task. Two ways:</p><p>The fast way. In any Cowork conversation, type <code>/schedule</code>. Claude will ask what you want it to do. Paste the prompt from the bottom of this post.</p><p>The manual way. Click &#8220;Scheduled&#8221; in the left sidebar, then &#8220;+ New task&#8221;. Paste the prompt into the task body. Give it a name, something like <code>commitment-extractor</code>.</p><p><strong>4.</strong> Edit the CONFIGURE lines (there are three this time, because of meetings). I&#8217;ll walk you through them in the next section.</p><p><strong>5.</strong> Pick a schedule. Two recommendations.</p><p>One run, end of day, around 6pm. Catches everything from today before you log off. This is what I&#8217;d start with.</p><p>Two runs, midday and EOD. Noon and 6pm. For founders making a lot of commitments per day who want the midday catch before the morning ones get cold.</p><p><strong>6.</strong> Save and turn on.</p><h2>The three lines to edit before you save</h2><p>When you paste the prompt you&#8217;ll see three lines marked <code>[CONFIGURE]</code>. Edit these first.</p><p><strong>Line 1, your email accounts.</strong> If you have one, leave it. If you have multiple, list them all. Mine catches both my businesses.</p><p><strong>Line 2, your meeting tool and your name in it.</strong> Tell it which meeting notes tool to scan (Granola, Otter, Fathom, etc.) and what name you go by in the transcripts so it knows which speaker is you. Mine looks like:</p><blockquote><p>Scan meeting transcripts from Granola for the last 24 hours. My name in meeting transcripts is &#8220;Jonathan Horne&#8221; (also appears as &#8220;Jono&#8221; or &#8220;JH&#8221;).</p></blockquote><p>If you don&#8217;t have a meeting tool connected, leave this blank. The skill will just scan emails.</p><p><strong>Line 3, where the summary goes.</strong> Default is Slack. Change to whatever channel or inbox you&#8217;ll actually see in the morning.</p><p>Everything else stays as-is.</p><h2>The thing nobody warns you about</h2><p>Cowork scheduled tasks run locally on your machine, while Claude Desktop is open.</p><p>If your laptop is closed at 6pm, the task doesn&#8217;t fire.</p><p>Three options.</p><p>Run it during work hours. 6pm EOD assumes you&#8217;re still at your desk. Most of us are. If you&#8217;ve already packed up by 5, set it to 4:30.</p><p>Toggle &#8220;Keep awake&#8221; on. There&#8217;s a switch in the Scheduled sidebar that stops your machine sleeping through overnight runs. Works for desktops and plugged-in laptops with the lid open.</p><p>Use Claude Code Routines if you need it truly hands-off. These run in the cloud, your machine doesn&#8217;t need to be on. More setup, more developer-flavoured, but if you live and die by overnight automation it&#8217;s worth it. Out of scope for this post.</p><p>For most people, EOD at 6pm solves the whole problem.</p><h2>Three things I&#8217;d tell another founder running this</h2><p><strong>1. Don&#8217;t read the whole list every morning.</strong> Just look at new commitments. The old ones are tracked. The point of the system is to remove cognitive load, not add a daily ritual. I check mine for about 90 seconds with my first coffee.</p><p><strong>2. Don&#8217;t argue with it.</strong> When the system catches a commitment you don&#8217;t remember making, you made it. Go look at the email or the transcript. You said it. You forgot. That&#8217;s exactly why you needed this. Arguing with the system is arguing with yourself from six hours ago.</p><p><strong>3. After a week, look at the pattern, not the list.</strong> Which people do you over-commit to? Which days of the week do you make the most promises? What&#8217;s your fulfilment rate, week over week? This is where the real coaching lives. It tells you who you&#8217;re trying too hard for and where your follow-through quietly breaks. I added a weekly digest run for exactly this. It&#8217;s at the bottom of this post.</p><p>That third one is where the tool stops being a productivity hack and starts being a mirror.</p><h2>The compounding</h2><p>Week one, this saves you from missing one or two things.</p><p>Week four, your team has noticed. Your partner has noticed. Your clients have noticed. Nobody says anything specific. But you can feel the room rearranging slightly around you. People stop double-checking that you&#8217;ll do what you said. They just expect it. Because you do.</p><p>Month three, this is your reputation.</p><p>You&#8217;re the founder who keeps his word. Without effort, without strain, without remembering anything. The system has your back, so you have everyone else&#8217;s.</p><p>If you only ever build one AI thing, build this one.</p><h2>Get the prompt</h2><p>The scheduled task prompt is below.</p><p>Copy it. Paste it into Cowork via <code>/schedule</code>. Edit the three CONFIGURE lines. Turn it on.</p><p>Tomorrow morning you&#8217;ll wake up to a list of things you&#8217;d already forgotten you&#8217;d promised. Some of them you won&#8217;t even remember saying.</p><p>Reply to this post and tell me what you found. I read every reply.</p><div><hr></div><h2>The scheduled task prompt</h2><p>Paste everything in the block below when you create the scheduled task. Edit the three <code>[CONFIGURE]</code> lines first.</p><pre><code><code>You are the Commitment Extractor. You run on a schedule. Your job is to make sure no promise the user made yesterday slips through the cracks.

This task runs in Claude Cowork on the user's local machine. The user's Claude Desktop must be open at the scheduled time.

## CONFIGURATION

[CONFIGURE: EMAIL ACCOUNTS]
Scan sent emails from the following account(s) from the last 24 hours:
- primary@example.com
(add additional accounts if you have multiple &#8212; one per line)

[CONFIGURE: MEETING SOURCES + YOUR IDENTITY]
Scan meeting transcripts from the last 24 hours from:
- Granola (recommended)
- (or Otter, Fathom, Fireflies &#8212; whichever you use)
- Leave blank if you don't want to scan meetings

Your name as it appears in meeting transcripts (so the system knows which speaker is you):
- Your full name (e.g., "Jonathan Horne")
- Any aliases (e.g., "Jono", "JH")

[CONFIGURE: SUMMARY DESTINATION]
Post the daily summary to:
- Slack channel: #my-followups
(or replace with Teams channel, Discord channel, or email-to-self &#8212; whichever you'll see in the morning)

[CONFIGURE: TASK MANAGER]
Create tasks in whichever task manager the user has connected:
- Todoist, Asana, Linear, Notion, ClickUp, Apple Reminders, or similar
- If multiple are connected, prefer the one explicitly named here. Otherwise use the first one available.

## STEP 1 &#8212; GATHER SOURCE MATERIAL

### 1a. Scan sent emails
For each configured email account, fetch all emails sent in the last 24 hours. For each email, extract:
- Recipient(s)
- Subject
- Send date/time
- Full body
- Thread ID
- Direct link to the email

If no email connector is available, abort and post a one-line message to the summary destination: "Commitment Extractor: no email connector available, please reconnect."

### 1b. Scan meeting transcripts (if a meeting tool is configured)
Fetch all meeting transcripts from the last 24 hours from the configured meeting tool. For each meeting, extract:
- Meeting title
- Date/time
- Participants
- Full transcript with speaker labels
- Direct link to the meeting

If no meeting tool is configured or none is connected, skip this step silently. Do not fail the task.

## STEP 2 &#8212; IDENTIFY THE USER'S CONTRIBUTIONS

For emails: every sent email is by definition something the user said. Use the full email body.

For meeting transcripts: identify which speaker lines belong to the user. Match the name(s) listed in [CONFIGURE: MEETING SOURCES + YOUR IDENTITY] against the speaker labels in each transcript. Only extract commitments from lines spoken by the user. Other participants' statements (including their commitments to the user) are ignored for this step.

If the speaker labels are ambiguous (e.g. "Speaker 1", "Speaker 2"), infer who the user is from the meeting context &#8212; typically the host or the most active participant, or by matching content to their writing style from emails. If still ambiguous, skip that meeting and note it in the summary.

## STEP 3 &#8212; EXTRACT COMMITMENTS

For each email and each meeting, identify any commitments the user made. A commitment is any statement where the user promises to do, send, share, send through, follow up on, check, confirm, schedule, prepare, book, revert, or otherwise deliver something to someone by some implied or explicit time.

Examples to capture:
- "I'll send you the proposal by Thursday"
- "I'll loop in Sarah this week"
- "Let me check with finance and revert by EOW"
- "I'll book a time on your calendar tomorrow"
- "Yeah, I'll get that over to you"
- "I'll have a draft ready Monday"
- "I'll grab those numbers and send them through"

Ignore:
- Statements about what someone else will do
- Conditional commitments where the condition isn't met ("if X happens, I'll Y")
- Reaffirmations of commitments already made earlier in the same thread or meeting
- Polite filler ("happy to help", "let me know", "sounds good")

For each commitment, extract:
- **Commitment text** &#8212; the exact words used (or close paraphrase)
- **Recipient** &#8212; who the user committed this to
- **Source** &#8212; "email" or "meeting"
- **Due date** &#8212; explicit if stated, otherwise inferred from context:
  - "by Thursday" &#8594; next Thursday
  - "this week" &#8594; end of current week (Friday EOD)
  - "EOW" &#8594; end of current week
  - "tomorrow" &#8594; next business day
  - "next week" &#8594; end of next week (Friday EOD)
  - "soon" / "shortly" / "in a few days" &#8594; +3 business days
  - No time reference at all &#8594; +2 business days as default
- **Source link** &#8212; direct link to the email or meeting where the commitment was made

## STEP 4 &#8212; DEDUPLICATE AGAINST EXISTING TASKS

Before creating new tasks, fetch the user's open tasks from their task manager. For each new commitment, check if a task with similar text, recipient, and due date already exists. If a duplicate is found, skip creating a new task.

Also deduplicate within today's run: if the same commitment appears in both an email and a meeting (e.g. user confirmed it verbally and then in writing), create one task and reference both sources.

## STEP 5 &#8212; CREATE TASKS

For each new (non-duplicate) commitment, create a task in the task manager with:

- **Title**: A short, action-oriented version of the commitment
  - Bad: "Will send the proposal to Sarah by Thursday"
  - Good: "Send proposal to Sarah"
- **Description**: The full commitment text + recipient + source (email/meeting) + direct link
- **Due date**: From Step 3
- **Tag/Label**: "commitment"
- **Priority**: Normal (high only if the language signals urgency &#8212; "urgently", "ASAP", "today")

If no task manager is connected, skip task creation and post the new commitments directly in the summary in Step 7, with a note flagging the missing connector.

## STEP 6 &#8212; DETECT FULFILLED COMMITMENTS

For each commitment task currently open (created on any previous day):

1. Look at the user's sent emails from the last 24 hours
2. Determine if any of them fulfill the commitment:
   - "Send proposal to Sarah" &#8594; was a proposal-related email sent to Sarah?
   - "Loop in James" &#8594; was James added to a thread or emailed?
   - "Share the case study" &#8594; was a case study attached or linked?
3. If a fulfillment is detected, mark the task complete and capture the fulfillment email link

Be reasonably generous. Partial fulfillment counts. If the user sent something to the right person on the right topic within a reasonable window, mark it done. False negatives (missing real fulfillments) create overdue noise and erode trust in the system.

## STEP 7 &#8212; IDENTIFY OVERDUE COMMITMENTS

List all commitment tasks where:
- Due date is in the past
- Task is still open
- No matching fulfillment has been detected

## STEP 8 &#8212; POST THE DAILY SUMMARY

Send a summary to the configured destination in this format:

---

**Commitments &#8212; [today's date]**

**New today** ([count]):
- [commitment] &#8594; due [date] (to [recipient]) [&#128231; email link or &#127897;&#65039; meeting link]
(list every new commitment captured today, with an emoji or label showing the source)

**Fulfilled today** ([count]):
- [commitment] (was due [date]) &#8212; delivered [link]

**Overdue** ([count]):
- [commitment] (was due [date], to [recipient]) [link]

**Due in next 48 hours** ([count]):
- [commitment] &#8594; due [date] (to [recipient]) [link]

---

Keep the summary scannable. Bullets, not paragraphs. No commentary.

If the summary destination is unavailable, fall back to sending the summary to the user's primary email account (send-to-self).

## OPERATING RULES

- Be conservative on creating tasks. False positives erode trust. Skip ambiguous statements.
- Be liberal on detecting fulfillment. False negatives waste the user's time.
- For meeting commitments, be extra cautious about attributing statements to the right speaker. When in doubt, skip.
- Never modify or delete existing tasks not created by this task. Only mark commitment tasks (tagged "commitment") as complete.
- Run silently. Do not message the user during the day. The daily summary is the only output.</code></code></pre><div><hr></div><h2>Two upgrades worth knowing about</h2><p>These aren&#8217;t necessary. They&#8217;re what other founders ask me about after a couple of weeks.</p><p><strong>The weekly digest.</strong> Create a second scheduled task that runs every Friday at 5pm. Same prompt structure, but instead of &#8220;last 24 hours&#8221; it looks at &#8220;last 7 days&#8221; and produces a pattern view: fulfilment rate, top three people you over-commit to, top three days you make the most promises, top three commitment types you actually miss. This is where the self-coaching lives. Read it on Saturday morning. You will see something about yourself.</p><p><strong>Tighter commitment detection.</strong> If the first week catches too much noise, add this line above Step 3 in the prompt: <em>&#8220;Only capture commitments with an explicit verb of delivery &#8212; send, share, book, prepare, check, confirm, revert, schedule. Ignore softer phrases like &#8216;I&#8217;ll think about it&#8217;, &#8216;happy to&#8217;, or &#8216;let me see what I can do&#8217;.&#8221;</em> Tightens the net considerably.</p><p>That&#8217;s it. Set it up tonight. Tomorrow morning the list will already have you on the back foot. It&#8217;s the best back foot I&#8217;ve ever been on.</p>]]></content:encoded></item><item><title><![CDATA[The most uncomfortable AI tool I've ever used]]></title><description><![CDATA[Most note-takers tell you what was said, this one tells you what wasn't said.]]></description><link>https://letters.jonohorne.com/p/the-most-uncomfortable-ai-tool-ive</link><guid isPermaLink="false">https://letters.jonohorne.com/p/the-most-uncomfortable-ai-tool-ive</guid><dc:creator><![CDATA[Jonathan Horne - YDY Venutres]]></dc:creator><pubDate>Fri, 29 May 2026 20:25:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yJQS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350c0559-aa8a-4f85-92eb-6103ab756e6c_1495x1052.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_!yJQS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350c0559-aa8a-4f85-92eb-6103ab756e6c_1495x1052.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yJQS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350c0559-aa8a-4f85-92eb-6103ab756e6c_1495x1052.png 424w, https://substackcdn.com/image/fetch/$s_!yJQS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350c0559-aa8a-4f85-92eb-6103ab756e6c_1495x1052.png 848w, https://substackcdn.com/image/fetch/$s_!yJQS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350c0559-aa8a-4f85-92eb-6103ab756e6c_1495x1052.png 1272w, https://substackcdn.com/image/fetch/$s_!yJQS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350c0559-aa8a-4f85-92eb-6103ab756e6c_1495x1052.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yJQS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350c0559-aa8a-4f85-92eb-6103ab756e6c_1495x1052.png" width="1456" height="1025" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/350c0559-aa8a-4f85-92eb-6103ab756e6c_1495x1052.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1025,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1838115,&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://letters.jonohorne.com/i/199791548?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350c0559-aa8a-4f85-92eb-6103ab756e6c_1495x1052.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_!yJQS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350c0559-aa8a-4f85-92eb-6103ab756e6c_1495x1052.png 424w, https://substackcdn.com/image/fetch/$s_!yJQS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350c0559-aa8a-4f85-92eb-6103ab756e6c_1495x1052.png 848w, https://substackcdn.com/image/fetch/$s_!yJQS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350c0559-aa8a-4f85-92eb-6103ab756e6c_1495x1052.png 1272w, https://substackcdn.com/image/fetch/$s_!yJQS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350c0559-aa8a-4f85-92eb-6103ab756e6c_1495x1052.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>It tells you which question you should have asked and didn&#8217;t. Which objection the buyer hinted at but you let slide. Which moment you fumbled. Which commitment you let go vague when you should have pinned it down.</p><div><hr></div><h2>The problem with meeting transcripts</h2><p>If you&#8217;re using Granola, Fathom, Fireflies, Gong, Otter &#8212; any of them &#8212; you already get a transcript. Maybe a summary. Maybe some action items.</p><p>That&#8217;s useful. It saves you taking notes.</p><p>It is not useful for getting better.</p><p>A transcript tells you what happened. It does not tell you whether what happened was good.</p><p>A summary tells you the topics. It does not tell you which topic you should have spent more time on.</p><p>Action items list what got assigned. They do not list what should have been assigned but wasn&#8217;t.</p><p>If you want to actually improve as a salesperson &#8212; or coach a sales team that&#8217;s improving &#8212; you need a layer above the transcript. You need someone who watched the meeting with adult eyes and is willing to tell you the truth.</p><p>This is that layer.</p><h2>What the Meeting Report Card does</h2><p>You paste in a Granola link. Or you upload a transcript. Or you paste the raw text into Claude.</p><p>You get back a 14-section report. About 25 pages. Designed to be printed and read.</p><p>The sections cover:</p><ol><li><p>Executive summary &#8212; what actually happened, in three sentences</p></li><li><p>Meeting scorecard &#8212; graded A to F on six dimensions</p></li><li><p>What was explicitly said &#8212; decisions, commitments, exact wording</p></li><li><p>What was indirectly said &#8212; subtext, deflections, what they meant vs what they said</p></li><li><p>Concepts explained &#8212; anything technical that came up, in plain English</p></li><li><p>Outcomes and decisions &#8212; what got decided, what got deferred</p></li><li><p>Action items and follow-ups &#8212; who owns what, by when</p></li><li><p>Performance assessment &#8212; how you actually did</p></li><li><p>How you could have performed better &#8212; coaching tied to specific moments</p></li><li><p>What wasn&#8217;t said but should have been &#8212; the gaps</p></li><li><p>Hidden signals &#8212; the throwaway comment that mattered</p></li><li><p>Tone and dynamic analysis &#8212; who had the upper hand, who shifted</p></li><li><p>Strategic implications &#8212; what this means for the bigger picture</p></li><li><p>The bottom line &#8212; two paragraphs, no hedging</p></li></ol><p>Every claim cites the transcript. Every grade comes with a reason. Every coaching note points to a specific moment in the call.</p><p>The thing was built to be brutally honest. It is.</p><h2>The section that changes how you sell</h2><p>Section 4 &#8212; &#8220;What was indirectly said.&#8221;</p><p>Most meetings, the buyer doesn&#8217;t say no. They say &#8220;let me think about it.&#8221; They say &#8220;send me some information.&#8221; They say &#8220;the timing&#8217;s a bit tricky right now.&#8221;</p><p>You hear those phrases and your brain registers &#8220;okay, soft yes, follow up next week.&#8221;</p><p>The report card hears those phrases and tells you exactly what was being signalled. It quotes the exact words. It tells you what they almost certainly meant. It tells you the moment in the call where they shifted from interested to polite.</p><p>The first time I read this section about one of my own calls, I realised I&#8217;d been reading &#8220;warm follow-up&#8221; on deals that were dead in the room.</p><p>Half my pipeline cleaned itself out the next week.</p><h2>How to install it</h2><p>Same setup as the <a href="https://substack.com/home/post/p-198348151">Contact Deep Dive skill</a> &#8212; if you&#8217;ve already installed that one, you already have everything you need. Skip to &#8220;How to run it.&#8221;</p><p>If you haven&#8217;t, here&#8217;s the full setup:</p><h3>Step 1. Turn on Code Execution</h3><p>Open Claude. Click your name (bottom left) &#8594; <strong>Settings &#8594; Capabilities</strong>. Toggle on <em>Code Execution and File Creation</em>.</p><p>The skill won&#8217;t work without this. Claude needs to actually produce the HTML report file, not just text.</p><h3>Step 2. Install the skill</h3><p>Go to <strong>Customize &#8594; Skills</strong>. Click &#8220;Create a new skill.&#8221; Paste the skill file (at the bottom of this post) into the editor. Save.</p><h3>Step 3. (Optional) Make Granola easier</h3><p>You don&#8217;t need to connect Granola for this skill to work. The skill takes Granola share links via web fetch. To use that, just open the meeting in Granola, click Share, copy the share link, paste it into Claude.</p><p>If you&#8217;d rather not share-link every meeting, upload the transcript file directly or paste the raw text. Both work.</p><h2>How to run it</h2><p>Three ways depending on where your transcript lives.</p><p><strong>If you use Granola</strong> &#8212; paste the share link into Claude:</p><blockquote><p><code>analyse this meeting https://app.granola.so/shared/abc123</code></p></blockquote><p><strong>If you have a transcript file</strong> (.txt, .vtt, .srt, .md) &#8212; drag it into Claude and say:</p><blockquote><p><code>meeting report card on the attached</code></p></blockquote><p><strong>If you have the raw text</strong> &#8212; paste it in and say:</p><blockquote><p><code>score this meeting</code></p></blockquote><p>Any of those will trigger the skill. Wait about a minute. You&#8217;ll get a single HTML file. Open it in your browser. Print it if you want.</p><h2>Make it sharper with context</h2><p>The report card is good with just the transcript. It gets sharper if you give it context.</p><p>If you&#8217;re running this in a Claude project, drop these into the project folder before you run the skill:</p><ul><li><p>The meeting agenda or brief</p></li><li><p>A one-pager on the company you met with</p></li><li><p>What you wanted out of the meeting</p></li><li><p>Notes from previous meetings with this person or company</p></li></ul><p>The skill reads everything in the project folder before grading. The difference between &#8220;no context&#8221; and &#8220;two background docs&#8221; is the difference between a report that says &#8220;you fumbled the pricing question&#8221; and one that says &#8220;you fumbled the pricing question &#8212; and given your goal was to anchor at the high tier, this was the worst moment to soft-pedal.&#8221;</p><p>You don&#8217;t need this. But it&#8217;s a step up if you&#8217;ve got 30 seconds.</p><h2>How to actually use the output</h2><p>Don&#8217;t read the whole thing the day of the meeting. You&#8217;re too close to it. You&#8217;ll be defensive.</p><p>Read it the morning after. With coffee. Out loud if you can.</p><p>Three things to do every time:</p><p><strong>1. Pull one coaching note into your prep doc for the next call with this prospect.</strong> Just one. &#8220;Last call, when they said X, I responded with Y. Next time, try Z.&#8221;</p><p><strong>2. Update your CRM with the hidden signals.</strong> If the report flagged a deflection or a tell, write it down. These become the things you raise next call.</p><p><strong>3. If the meeting got a C or below &#8212; and you&#8217;ll get a lot of those at first &#8212; schedule a 10-minute call with whoever runs your sales.</strong> Not to be defensive. To get specific.</p><p>The report card replaces the generic &#8220;how&#8217;d it go?&#8221; debrief with something specific enough to actually act on.</p><h2>What this isn&#8217;t</h2><p>It&#8217;s not a replacement for a sales coach. A good coach asks questions the report card never will.</p><p>It&#8217;s not magic. It analyses what&#8217;s in the transcript. If your transcript is garbage, the report is garbage. Get a half-decent recorder. A meeting at least 45 mins long. </p><p>It&#8217;s not for every meeting. You don&#8217;t need a 14-section report on a 12-minute standup. Use it on the calls that matter &#8212; discovery, demos, negotiations, board meetings.</p><p>It&#8217;s for the meetings where you&#8217;d genuinely want to know what you missed.</p><h2>The uncomfortable truth</h2><p>The first three or four times you run this, you&#8217;ll get grades you don&#8217;t like.</p><p>You&#8217;ll see moments you fumbled that you didn&#8217;t realise you&#8217;d fumbled. You&#8217;ll see questions you should have asked. You&#8217;ll see leverage you left on the table.</p><p>This is the point.</p><h2>A note on recording</h2><p>Different countries have different rules about recording meetings. In Victoria, where I&#8217;m based, you can record a meeting with one-party consent &#8212; which means as long as you&#8217;re a party to it, you&#8217;re allowed to record.</p><p>The reason I use Granola specifically is that it transcribes rather than records. In some jurisdictions that&#8217;s an easier path. Check your local laws or check with your legal team if you&#8217;re unsure.</p><p>The ethical default &#8212; and it costs you nothing &#8212; is to tell the room. &#8220;I&#8217;m using a transcription tool, it&#8217;ll be in my notes after the call.&#8221; Nobody has ever objected.</p><h2>Get the skill</h2><p>The generic skill file is below.</p><p>Copy it. Paste it into Claude as a new skill (Customize &#8594; Skills &#8594; Create a new skill).</p><p>Then run it on your worst meeting from this week. Not your best.</p><p>The worst one is the one that teaches you.</p><p>Reply to this post and tell me what grade you got. I read every reply.</p><div><hr></div><h2>The skill file</h2><p>Copy everything in the block below into Claude as a new skill.</p><p>markdown</p><pre><code><code>---
name: meeting-report-card
description: "Generate a comprehensive, brutally honest meeting intelligence report from a meeting transcript. Use this skill whenever the user provides a transcript, uploads a transcript file (.txt, .md, .vtt, .srt), pastes a meeting share link (e.g. app.granola.so/shared/..., otter.ai, fireflies.ai, fathom.video), or asks for analysis of a specific meeting. Trigger phrases: \"analyse this meeting\", \"meeting report card\", \"score this meeting\", \"debrief this call\", \"meeting report on\", \"report card on the attached\". ALWAYS trigger when a transcript or meeting share link is present alongside any of these intents. Required: an actual transcript, file, or meeting URL must be present. Without one, ask the user to provide it before running."
---

# Meeting Report Card

Generate a meeting intelligence report that extracts maximum value from any meeting transcript &#8212; what was said, what wasn't said, what the user should do about it.

**Prerequisites:** Code Execution and File Creation must be enabled (required to produce the HTML output).

**Time budget:** Aim for 60&#8211;120 seconds total for a typical transcript.

---

## Step 1: Locate and Ingest the Transcript

The user will provide one of the following:

1. **A meeting share link** (Granola, Otter, Fireflies, Fathom). Use `web_fetch` on the URL to retrieve the transcript. Do NOT ask the user to paste it manually first &#8212; go fetch it yourself. If `web_fetch` returns a login page, expired link, or no transcript content, then ask the user to either make the link public, upload the transcript file, or paste the raw text.

2. **An uploaded file** (`.txt`, `.md`, `.vtt`, `.srt`, or similar). Read it directly from `/mnt/user-data/uploads/`. For `.vtt` or `.srt`, strip the timestamp/index lines if they're not useful.

3. **Pasted raw text.** Use what's in the message.

4. **A URL to a meeting tool you don't recognise.** Try `web_fetch` first. If it fails, ask the user to paste or upload.

If none of these is present, ask the user to provide a transcript before running the rest of the skill.

### Project context (optional but valuable)

If the user is working inside a Claude project, read all files in the project folder before starting analysis. Useful context includes:

- An agenda or meeting brief
- Background docs on the people or company involved
- Stated goals or desired outcomes for the meeting
- Previous meeting notes or relationship history
- Any relevant business context

Context is critical for assessing whether objectives were achieved, and for reading subtext correctly. If the project has context, use it. If not, work from the transcript alone.

---

## Step 2: Identify the User's Perspective

The "user" in the report is the person whose performance is being graded. By default, assume this is the person running the skill, and that they were a participant in the meeting (typically the host or the salesperson).

If the transcript or project context makes it clear the user is someone else (e.g. they say "analyse my rep Sarah's call" or the project context names a specific participant), grade that person's performance instead.

If it's genuinely ambiguous who to grade, default to the most senior or most active participant on the "selling" or "presenting" side of the conversation.

---

## Step 3: Read the Full Transcript Carefully

- Read it through at least twice
- Read all project context documents
- Identify all participants by name and role
- Map the chronological flow of the conversation
- Note timestamps if available
- Flag any moments where tone or energy clearly shifts

---

## Step 4: Build the Report

Generate a single self-contained HTML file with the 14 sections below. Every section should be substantive &#8212; no filler, no generic observations. If a section genuinely has no signal in this transcript, say so honestly in one sentence rather than padding.

### Key Analytical Principles

**Be brutally honest.** The user wants unvarnished truth, not diplomatic fluff. If they fumbled, say so directly. If the other party was evasive, call it out. The value of this report is in its honesty.

**Read between the lines.** Half the value of a meeting is in what's NOT said. Pay attention to:
- Questions that were deflected or answered indirectly
- Topics that were conspicuously avoided
- Changes in tone, energy, or engagement
- When someone says "yes" but their language signals hesitation
- Power dynamics and who controlled the conversation flow
- Commitments that were vague vs specific
- When someone "agreed" without actually committing to anything

**Assume the user is smart but busy.** They were IN the meeting &#8212; they heard the words. What they need is the stuff they might have missed because they were focused on performing.

**Ground everything in evidence.** Quote the transcript directly when making claims. Don't assert "they seemed hesitant" without pointing to the specific language.

**Think about power and leverage.** Who had it? How did it shift? What created or destroyed leverage? What leverage was left on the table?

---

## The 14 Report Sections

### 1. Executive Summary (3&#8211;5 sentences)
The headline. What happened, what the outcome was, and the single most important thing the user needs to know. Sharp briefing, not a wishy-washy recap.

### 2. Meeting Scorecard
A quick-glance grading table:
- **Outcome Achievement**: Did the meeting achieve what it was supposed to? (A&#8211;F)
- **Preparation &amp; Positioning**: How well was the user set up going in? (A&#8211;F)
- **Communication Clarity**: How clearly did the user convey their points? (A&#8211;F)
- **Listening &amp; Adaptability**: Did the user pick up on cues and adjust? (A&#8211;F)
- **Relationship Building**: Did the meeting strengthen or weaken the relationship? (A&#8211;F)
- **Strategic Positioning**: Did the user improve their position for future interactions? (A&#8211;F)
- **Overall Grade**: Weighted composite (A&#8211;F)

Each grade gets a one-line justification with a transcript reference.

### 3. What Was Explicitly Said &#8212; Key Statements &amp; Commitments
A structured breakdown of the most important things said, organised by speaker:
- Decisions made
- Commitments given (with exact wording &#8212; vague commitments get flagged)
- Key information shared
- Positions stated
- Numbers, dates, specifics

Quote directly. Flag any commitments that were ambiguous or had escape clauses built in.

### 4. What Was Indirectly Said &#8212; Subtext &amp; Implications
The high-value section. Analyse the subtext:
- What did people imply without stating directly?
- What was communicated through tone, word choice, or framing?
- Where did someone say one thing but mean another?
- What signals were sent through what was NOT addressed?
- What can be inferred about the other party's true position, priorities, or constraints?

For each observation, provide the evidence (actual words used) and your interpretation.

### 5. Concepts &amp; Context Explained
Identify any technical terms, industry jargon, references, frameworks, regulations, or concepts the user might benefit from understanding more deeply. For each:
- What it is (plain English)
- Why it matters in this context
- How it connects to the user's interests or position
- Any nuance to be aware of

If nothing technical came up, say so in one sentence and move on.

### 6. Outcomes &amp; Decisions
A clean, definitive list:
- **Decisions Made**: What was actually decided
- **Decisions Deferred**: What was kicked down the road, and why
- **Open Questions**: What remains unresolved
- **Implicit Agreements**: Things that seem agreed but were never explicitly confirmed

For each, note who owns it and whether there's a clear next step.

### 7. Action Items &amp; Follow-Ups
Two distinct lists:

**Immediate (next 48 hours):** What | Who | By When | Priority | Notes

**Follow-Up (longer-term):** What | Who | Timeline | Dependencies | Notes

Flag any action items mentioned but not assigned &#8212; these will fall through the cracks.

### 8. Performance Assessment &#8212; How You Did
An honest, specific evaluation of the user's performance:
- **Strengths**: What they did well, with specific examples
- **Missed Opportunities**: Moments where they could have pushed harder, asked a better question, made a stronger point
- **Tactical Errors**: Anything they said or did that weakened their position
- **Tone Signals**: Filler words, hedging language, confidence level

Rate their overall performance and explain why.

### 9. How You Could Have Performed Better &#8212; Coaching Notes
Specific, actionable coaching tied to actual moments in THIS meeting:
- "When [person] said X, you responded with Y. A stronger response would have been Z, because..."
- "You missed an opportunity at [moment] to ask about..."
- "Your framing of [topic] could have been more effective if..."
- "Next time you're in this situation, consider..."

Frame these as coaching from someone who's done 10,000 of these meetings.

### 10. What Wasn't Said But Should Have Been
Critical gaps in the conversation:
- Topics that should have been raised
- Questions that should have been asked
- Objections that should have been voiced
- Boundaries that should have been set
- Context that should have been shared

For each, explain why it matters and what the risk is of leaving it unaddressed.

### 11. Hidden Signals &#8212; What You Might Have Missed
Things said that carry significance the user may not have caught in real-time:
- Throwaway comments that actually signal something important
- Subtle shifts in position
- Trial balloons or testing language
- Emotional reactions quickly masked
- Status signals or power moves
- References to external pressures or constraints mentioned briefly

For each, explain the signal and what it likely means.

### 12. Tone &amp; Dynamic Analysis
A read on the meeting dynamics:
- **Overall Tone**: Collaborative? Adversarial? Cautious? Enthusiastic?
- **Power Dynamic**: Who had the upper hand? How did it shift?
- **Engagement Levels**: Who was checked in vs checked out? When did energy shift?
- **Relationship Temperature**: Warmer or cooler than expected? Friction points?
- **Pace &amp; Control**: Who controlled the flow? Was the meeting well-structured?

### 13. Strategic Implications
Zoom out. What does this meeting mean for the bigger picture?
- How does this affect the user's position?
- What new information changes the strategic calculus?
- What should the user be thinking about or preparing for next?
- Are there risks that emerged that need mitigation?
- Are there opportunities that opened up?

### 14. The Bottom Line
Two paragraphs maximum. Brutally honest "here's what actually happened and here's what you need to do about it." No hedging. Straight talk.

---

## Step 5: Output Format

Produce a single self-contained HTML file with embedded CSS:

- Light theme (white/light grey background, dark text) for readability and easy printing
- Sticky navigation sidebar or floating TOC for the 14 sections
- Transcript quotations styled distinctly (monospace or highlighted background)
- Grades colour-coded (A=green, B=blue, C=amber, D=orange, F=red)
- Collapsible sections so the user can drill in
- Print-friendly via `@media print` styles
- Professional but not corporate &#8212; this is an intelligence briefing, not a board report

### Suggested CSS Variables

```css
:root {
  --bg: #FAFAFA;
  --surface: #FFFFFF;
  --text-100: #050505;
  --text-60: rgba(5,5,5, 0.55);
  --text-25: rgba(5,5,5, 0.2);
  --text-12: rgba(5,5,5, 0.1);

  --grade-a: #4ADE80;
  --grade-b: #5B8DEF;
  --grade-c: #FBBF24;
  --grade-d: #FB923C;
  --grade-f: #F87171;

  --quote-bg: #F5F5F5;
  --quote-border: #E5E5E5;

  --font-sans: 'Inter', -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
}
```

### Typography
- Display heading: Inter 300, letter-spacing -2px
- Section titles: Inter 400, letter-spacing -1px
- Body: Inter 400, 16px, line-height 1.7
- Transcript quotes: JetBrains Mono 400, 14px, in a quote block with left border

---

## Step 6: Save and Deliver

Save the HTML to `/mnt/user-data/outputs/&lt;meeting_title_or_date&gt;_report.html`. If you can't determine a meeting title, use the date and the primary participant's name (e.g. `2026-05-18_smith_report.html`).

Present the file with a 2&#8211;3 sentence headline of the most important finding from the report. Don't recap the whole thing &#8212; the user is about to read it.

---

## Quality Checklist

Before delivering, verify:

- Every claim is grounded in transcript evidence
- All 14 sections are substantive (or honestly marked as "no signal")
- Action items have owners and timelines
- Subtext analysis goes beyond surface-level observations
- Coaching notes reference specific moments, not generic advice
- Grades are justified with evidence
- The tone is direct and honest, not diplomatic
- Concepts are explained clearly for a non-specialist
- Strategic implications connect to the user's actual goals
- The "Bottom Line" section is genuinely useful, not a restatement of the summary

---

## Edge Cases

- **Very short transcript (under ~500 words):** Note that confidence is limited. Still produce the report, but flag that several sections may be thin.
- **Multiple meetings combined in one transcript:** Ask the user to clarify which meeting to analyse, or analyse the most substantial one and note the others.
- **No clear "user" / observer-only transcript:** Grade the most senior or most active participant on the presenting side. State who you're grading at the top of the report.
- **Transcript with poor speaker labels ("Speaker 1", "Speaker 2"):** Infer roles from content and label them inferred (e.g. "Speaker 1 (likely the buyer)").
- **Granola/Otter URL that returns no transcript content via web_fetch:** Tell the user the link didn't return readable content and ask them to either make it public, upload the file, or paste the text.</code></code></pre>]]></content:encoded></item><item><title><![CDATA[How to walk into any sales meeting like you’ve known them for years (Skill.md at bottom)]]></title><description><![CDATA[Last month I sat in a board meeting with a CEO I&#8217;d never met.]]></description><link>https://letters.jonohorne.com/p/how-to-walk-into-any-sales-meeting</link><guid isPermaLink="false">https://letters.jonohorne.com/p/how-to-walk-into-any-sales-meeting</guid><dc:creator><![CDATA[Jonathan Horne - YDY Venutres]]></dc:creator><pubDate>Tue, 19 May 2026 01:51:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TOSW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F911c6414-1221-454d-86c7-f88690470223_1478x1064.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_!TOSW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F911c6414-1221-454d-86c7-f88690470223_1478x1064.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TOSW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F911c6414-1221-454d-86c7-f88690470223_1478x1064.png 424w, https://substackcdn.com/image/fetch/$s_!TOSW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F911c6414-1221-454d-86c7-f88690470223_1478x1064.png 848w, https://substackcdn.com/image/fetch/$s_!TOSW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F911c6414-1221-454d-86c7-f88690470223_1478x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!TOSW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F911c6414-1221-454d-86c7-f88690470223_1478x1064.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TOSW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F911c6414-1221-454d-86c7-f88690470223_1478x1064.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/911c6414-1221-454d-86c7-f88690470223_1478x1064.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2068084,&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://letters.jonohorne.com/i/198348151?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F911c6414-1221-454d-86c7-f88690470223_1478x1064.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_!TOSW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F911c6414-1221-454d-86c7-f88690470223_1478x1064.png 424w, https://substackcdn.com/image/fetch/$s_!TOSW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F911c6414-1221-454d-86c7-f88690470223_1478x1064.png 848w, https://substackcdn.com/image/fetch/$s_!TOSW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F911c6414-1221-454d-86c7-f88690470223_1478x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!TOSW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F911c6414-1221-454d-86c7-f88690470223_1478x1064.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>Last month I sat in a board meeting with a CEO I&#8217;d never met.</p><p>He was talking about an international brand his manufacturing group had just acquired. Multi-million dollar deal. The kind of acquisition you&#8217;d expect went through twelve months of due diligence and an army of advisors.</p><p>He paused. He turned to me. He said: &#8220;You know what, I think I&#8217;m going to go with my gut on this next one. I don&#8217;t usually but I will.&#8221;</p><p>I interrupted him. I said: &#8220;Actually, you&#8217;ve done it before. You bought the international group over a coffee. You were bidding against a Chinese conglomerate. The seller went with you because they didn&#8217;t have to sit through six months of due diligence.&#8221;</p><p>His jaw dropped. He said: &#8220;How the #### did you know that?&#8221;</p><p>I didn&#8217;t know that an hour earlier.</p><p>I learned it on the drive to his office. Listening to a podcast about him. Generated by Claude.</p><p>I got the contract.</p><p>This is what AI is actually useful for in sales right now. Not replacing the call. Not writing the proposal. Not closing the deal.</p><p>Just letting you walk into a room, genuinely curious about the person across the table.</p><h2>The thing nobody admits about sales prep</h2><p>Most &#8220;sales prep&#8221; is a LinkedIn skim and a glance at the company website on the way to the meeting.</p><p>You learn where they worked last. You learn what they posted about three months ago. You learn the official &#8220;About Us&#8221; version of the company.</p><p>You learn nothing that makes the conversation interesting.</p><p>Then you walk in, ask three discovery questions, deliver your pitch, and wonder why every meeting feels the same.</p><p>You sounded the same. Same buzzwords. Same slides. Same opening lines as the eight other vendors that month.</p><p>A senior buyer told me to my face once: &#8220;You&#8217;re all a joke. I don&#8217;t have five minutes for a coffee with someone who can&#8217;t tell me something I couldn&#8217;t have found myself.&#8221;</p><p>He was right. Most of us couldn&#8217;t.</p><h2>What you actually want from prep</h2><p>You don&#8217;t want a dossier of facts. You can find those.</p><p>You want the interesting part. The part that makes you curious before you walk in. The part that makes you ask a question nobody else has asked them.</p><p>The pivot in their career nobody remembers. The acquisition they pulled off on instinct. The community board seat that tells you what they care about outside work. The fact that their company just lost a partnership and is quietly looking for a replacement.</p><p>You want context, not coverage.</p><h2>The Contact Deep Dive skill</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cbYT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee17050c-5e47-4fdd-a211-2be9bb8f86f1_1478x1064.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cbYT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee17050c-5e47-4fdd-a211-2be9bb8f86f1_1478x1064.png 424w, https://substackcdn.com/image/fetch/$s_!cbYT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee17050c-5e47-4fdd-a211-2be9bb8f86f1_1478x1064.png 848w, https://substackcdn.com/image/fetch/$s_!cbYT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee17050c-5e47-4fdd-a211-2be9bb8f86f1_1478x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!cbYT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee17050c-5e47-4fdd-a211-2be9bb8f86f1_1478x1064.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cbYT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee17050c-5e47-4fdd-a211-2be9bb8f86f1_1478x1064.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee17050c-5e47-4fdd-a211-2be9bb8f86f1_1478x1064.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1736677,&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://letters.jonohorne.com/i/198348151?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee17050c-5e47-4fdd-a211-2be9bb8f86f1_1478x1064.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_!cbYT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee17050c-5e47-4fdd-a211-2be9bb8f86f1_1478x1064.png 424w, https://substackcdn.com/image/fetch/$s_!cbYT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee17050c-5e47-4fdd-a211-2be9bb8f86f1_1478x1064.png 848w, https://substackcdn.com/image/fetch/$s_!cbYT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee17050c-5e47-4fdd-a211-2be9bb8f86f1_1478x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!cbYT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee17050c-5e47-4fdd-a211-2be9bb8f86f1_1478x1064.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>This is a Claude skill. You install it once. You give it an email address. It does the rest.</p><p>It pulls from whatever you&#8217;ve got connected:</p><ul><li><p>Your CRM (Attio, HubSpot, Salesforce, Pipedrive, whatever you use)</p></li><li><p>Your email history with this person</p></li><li><p>Your calendar (past and upcoming meetings)</p></li><li><p>Your meeting notes app (Granola, Fathom, Fireflies)</p></li><li><p>Your team&#8217;s internal notes about them</p></li><li><p>Their LinkedIn</p></li><li><p>News about their company</p></li><li><p>Public filings if their company is listed</p></li><li><p>Their company website, services page, leadership team, recent press</p></li></ul><p>It runs all of this in parallel. Takes about three minutes.</p><p>Then it produces two things.</p><ol><li><p><strong>A clean profile page.</strong> Single HTML file. Editorial design. The person, the company, the relationship, the recent context. Stuff you can scan in 90 seconds before you walk in.</p></li></ol><ol start="2"><li><p><strong>An AI-narrated podcast.</strong> Eight to ten minutes. Same content, but as a conversation you listen to on the way to the meeting. This is the part that actually changes how you show up.</p></li></ol><p>A profile makes you informed. The podcast makes you curious.</p><h2>What you need before you start</h2><p>Three things. Two are free. One is optional.</p><ol><li><p><strong>A Claude account.</strong> The Free plan works for a few runs a week. Pro ($20/month) or Max if you want to run it on every meeting.</p></li><li><p><strong>Code Execution turned on.</strong> This is how Claude actually produces the HTML file rather than just text. Free to enable.</p></li><li><p><strong>ElevenLabs (optional).</strong> This is what makes the podcast sound like a human narrator instead of your browser&#8217;s built-in robot. Free tier covers a few podcasts a month.</p></li></ol><p>If you skip ElevenLabs, the skill still runs. You still get the HTML profile. You still get the podcast &#8212; just narrated by your browser&#8217;s built-in voice. It works. It&#8217;s just not the same.</p><div><hr></div><h2>How to install it</h2><h3>Step 1. Turn on Code Execution</h3><p>Open Claude. Click your name (bottom left) &#8594; <strong>Settings &#8594; Capabilities</strong>. Toggle on <em>Code Execution and File Creation</em>.</p><p>The skill won&#8217;t work without this. Claude needs to actually produce files, not just text.</p><h3>Step 2. Install the skill</h3><p>Now go to <strong>Customize &#8594; Skills</strong>. Click &#8220;Create a new skill.&#8221; Paste the skill file (at the bottom of this post) into the editor. Save.</p><h3>Step 3. Connect your tools</h3><p>Go to <strong>Connectors</strong> in Claude settings. Connect whatever you&#8217;ve got &#8212; Gmail, Outlook, your CRM, your meeting notes app, Notion. If a connector you use isn&#8217;t there yet, just web search alone is enough to get a useful run.</p><h3>Step 4 (optional). Set up ElevenLabs</h3><p>This is the part that turns a profile into a podcast you&#8217;d actually listen to.</p><ol><li><p>Sign up at <a href="https://elevenlabs.io">elevenlabs.io</a>. Free tier is enough for a handful of podcasts a month. The paid Starter plan ($5/month) gives you much more.</p></li><li><p>In Claude, go to <strong>Connectors</strong> and add ElevenLabs. Authenticate with your ElevenLabs account.</p></li><li><p>Pick a voice you like. The skill defaults to a confident, warm narrator. If you want an Australian voice, use Charlie. If you want British, use George. You can swap voices later by telling Claude.</p></li><li><p>Done.</p></li></ol><p>If you skip this step, the skill detects no ElevenLabs connector and falls back to Web Speech API. You still get a working player. It&#8217;s just less compelling.</p><h2>How to run it</h2><p>Type any of these into Claude:</p><ul><li><p>deep dive sarah@acme.com</p></li><li><p>pull everything on michael@bigcorp.com</p></li><li><p>who is jonathan@somecompany.com</p></li><li><p>full profile for ceo@startup.io</p></li></ul><p>The skill triggers automatically the moment you include an email and a research intent. You don&#8217;t have to remember a specific command.</p><p>In three minutes you have the HTML profile open in your browser and the podcast ready to play.</p><p>I usually queue the podcast on my phone before I get in the car.</p><h2>What to actually use it for</h2><p>Don&#8217;t memorise the profile. That&#8217;s not the point.</p><p>The point is to walk in interested. The point is to ask a question that surprises them. The point is to make a connection that nobody else made.</p><p>Three useful things to look for in the output:</p><ol><li><p><strong>The thing they&#8217;re known for that isn&#8217;t on their LinkedIn.</strong> Usually a press story. A board seat. A talk they gave. A deal they did.</p></li></ol><ol start="2"><li><p><strong>The recent change.</strong> They started six months ago. The CEO just left. They acquired someone. They lost a partner. Recent shifts are where the real conversations live.</p></li></ol><ol start="3"><li><p><strong>The shared edge.</strong> Someone you both know. A school you both went to. A board you&#8217;ve both sat on. A vendor you&#8217;ve both used.</p></li></ol><p>That&#8217;s it. Three things. Don&#8217;t try to weave in twelve facts. You&#8217;ll sound like a stalker.</p><h2>What this isn&#8217;t</h2><p>This is not a tool to replace listening.</p><p>It&#8217;s a tool to make you ready to listen.</p><p>If you walk in with the deep dive and use it as a script, you&#8217;ll sound worse than you did before. The whole point is to free your brain from trying to remember basic facts so you can actually be present.</p><p>The deep dive does the homework. You do the meeting.</p><h2>A note on accuracy</h2><p>The skill will sometimes get things slightly wrong. It&#8217;s pulling from web search results, public filings, and your CRM. If something is misreported online, the skill will report it the same way.</p><p>I learned this the hard way. I once walked into a meeting and confidently referenced a board seat the contact had stepped off six months earlier. He corrected me, politely. The meeting never quite recovered.</p><p>So when you walk in and want to reference something specific, check the source first. The deep dive shows you where each fact came from. One click to verify.</p><p>I won&#8217;t make that mistake again.</p><h2>Get the skill</h2><p>The generic skill file is below.</p><p>Copy it. Paste it into Claude as a new skill. Connect your tools. Run it on someone you&#8217;re meeting tomorrow.</p><p>Then reply to this post and tell me what surprised you in the output. I read every reply.</p><div><hr></div><h2>The skill file</h2><p>Copy everything in the block below into Claude as a new skill (Customize &#8594; Skills &#8594; Create a new skill &#8594; paste).</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;9c71ff4d-ac66-4630-ae6d-de5158a0143e&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">---
name: contact-deep-dive
description: "Performs a comprehensive contact research workflow when given an email address and a trigger phrase like \"deep dive\", \"pull everything on\", \"full profile for\", \"research this contact\", or \"who is\". Searches whatever CRM, email, calendar, meeting notes, billing and web sources the user has connected, then synthesises everything into a single HTML profile and an AI-narrated podcast summary. ALWAYS use this skill the moment the user provides an email address alongside a research intent &#8212; do not wait for explicit instruction. Required trigger: an email address must be present. Without an email, do not trigger."
---

# Contact Deep Dive Skill

Given an email address and a research trigger, conduct a multi-source investigation across whatever connectors the user has available, and produce a polished HTML contact profile plus an AI-narrated podcast.

This skill is intentionally tool-agnostic. It uses whatever you have. If a connector is missing, skip that source silently and use what you can. The output should feel complete, not list what's missing.

**Time budget: aim to complete the full run in under 3 minutes.**

---

## Step 1: Parse Input

Extract:

- Email address from the message
- Domain (e.g. `microsfot.com.au` &#8594; company domain)
- Name hint if present (e.g. "Michael" in "deep dive michael@...")

If no email is present, do not run this skill. Ask the user for one.

---

## Step 2: Detect Available Connectors

Check what the user has connected. Run lookups only on sources that are available. Skip the rest silently.

Typical sources, grouped by purpose:

- **CRM**: Attio, HubSpot, Salesforce, Pipedrive, Close, Copper
- **Email**: Gmail, Outlook, Microsoft 365
- **Calendar**: Google Calendar, Outlook Calendar
- **Meeting notes**: Granola, Fathom, Fireflies, Otter, Gong
- **Knowledge base**: Notion, Confluence, Google Drive
- **Billing**: Stripe, Chargebee
- **Web research**: web_search and web_fetch (always available)
- **Audio narration**: ElevenLabs (optional &#8212; falls back to Web Speech API if absent)

**Minimum viable run:** if only web_search is available, the skill still produces a useful HTML profile + podcast. Web research alone covers the company, public filings, news, and LinkedIn (via search snippets).

---

## Step 3: Parallel Data Gathering

Run all available lookups simultaneously.

### CRM
- Search for person and company records matching the email
- Pull notes, comment threads, linked deals/opportunities
- Capture last interaction date

### Email
Build a timeline:
- Search inbox + sent for `from:&lt;email&gt; OR to:&lt;email&gt;`, last 20 threads
- For each thread: date, subject, direction, 1&#8211;2 sentence summary
- For the 3&#8211;5 most recent threads, fetch full body
- Group by thread

### Calendar
- Past and upcoming events with the contact
- Title, date, attendees, location/link
- Note recurring patterns

### Meeting Notes
- Search for any meetings with the contact
- Capture: title, date, attendees, AI summary, action items, source citation links

### Knowledge Base
- Search for documents mentioning the contact's name or company
- Capture title, last-modified date, snippet

### Billing / Payments
If a billing connector is configured:
- Find customer by email
- Fetch in parallel: profile, charge history, subscriptions, invoices
- Calculate lifetime value (sum of succeeded charges, divide cents by 100 for display)
- Show status pills for subscription states

### Web Research &#8212; Person
Run via web_search:
- `"&lt;Full Name&gt;" "&lt;Company&gt;" LinkedIn`
- `"&lt;Full Name&gt;" "&lt;Company&gt;" director founder CEO`
- `"&lt;Full Name&gt;" "&lt;Company&gt;" news`

LinkedIn often blocks direct fetching &#8212; use search snippets instead.

### Web Research &#8212; Company Deep Dive
Run 5&#8211;8 searches covering:

**What they do:**
- `"&lt;Company&gt;" services OR solutions OR products`
- `site:&lt;domain&gt;` &#8212; fetch homepage, about, services

**Recent news:**
- `"&lt;Company&gt;" news &lt;current year&gt;`
- `"&lt;Company&gt;" announcement OR launch OR partnership &lt;current year&gt;`
- `"&lt;Company&gt;" acquisition OR merger OR funding`

**Public filings (if listed):**
- `"&lt;Company&gt;" ASX OR NYSE OR NASDAQ OR LSE`
- `"&lt;Company&gt;" annual report OR earnings`

**Market position:**
- `"&lt;Company&gt;" competitors OR "market share"`
- `"&lt;Company&gt;" review OR award`

**Leadership:**
- `"&lt;Company&gt;" CEO OR founder OR leadership team`

---

## Step 4: Synthesise

Organise findings into these sections. Use only what you found. Omit any section with no data.

**Person:**
- Personal Details (CRM, email signatures, LinkedIn)
- Career / Role (LinkedIn, web)
- Interaction History (CRM, email, calendar)
- Meeting Notes
- In Their Own Words (quotes from LinkedIn, testimonials)
- Social Presence
- Notes &amp; CRM Activity
- Billing &amp; Payments
- Recent Emails

**Company:**
- Company Overview
- What They Do
- Who They Serve
- Products &amp; Technology
- Leadership Team
- Recent News
- Partnerships &amp; Acquisitions
- Financial / Investor (if public)
- Notable Clients
- Market Position
- Awards &amp; Recognition

---

## Step 5: Generate the HTML Profile

Produce a single self-contained HTML file with embedded CSS. Default aesthetic: clean, editorial light theme. Restrained, professional. Generous whitespace, light font weights, feels like a premium magazine.

### Colour palette (CSS variables)

```css
:root {
  --bg: #FAFAFA;
  --surface: #FFFFFF;
  --surface-elevated: #F5F5F5;
  --text-100: rgba(5,5,5, 1.0);
  --text-80:  rgba(5,5,5, 0.8);
  --text-60:  rgba(5,5,5, 0.55);
  --text-40:  rgba(5,5,5, 0.35);
  --text-25:  rgba(5,5,5, 0.2);
  --text-12:  rgba(5,5,5, 0.1);
  --accent-blue:  #5B8DEF;
  --accent-green: #4ADE80;
  --accent-amber: #FBBF24;
  --accent-red:   #F87171;
  --font-sans: 'Inter', -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', 'Menlo', monospace;
}
```

### Typography
- Display headings: Inter 300, letter-spacing -2px to -4px
- Section titles: Inter 300, letter-spacing -1px
- Body: Inter 300, 18px, line-height 1.7, colour `--text-60`
- Labels: JetBrains Mono 400, 11px, uppercase, letter-spacing 2px
- Data values: JetBrains Mono 300

### Layout
- CSS grid, max-width 1100px, responsive
- Border-radius: 0 on buttons, tags, chips. 8px on quote/callout blocks.
- Spacing: 80px vertical between sections, 48px between cards
- Cards: white background, 1px border in `--text-12`
- No shadows heavier than `0 1px 3px rgba(0,0,0,0.04)`. No gradients.

### Required sections

**Header**
- Person's name in display heading
- Role + Company + Location subtitle
- Contact chips (email, phone, LinkedIn)
- Source badges (which sources contributed) &#8212; small monospace tags

**Person section** (2-column card grid)
- Personal Details
- Interaction History
- Notable Quote (full-width, left-border accent &#8212; only if found)
- Career Timeline
- Social Presence

**Company section** (full-width divider before)
- Company Overview (2-column inner grid)
- What They Do (2&#8211;4 paragraphs)
- Products &amp; Services
- Who They Serve
- Recent News (chronological, last 12 months)
- Leadership Team
- Financial (only if public)
- Partnerships &amp; Acquisitions
- Market Position

**Relationship section**
- Billing / Payments (blue accent, status pills, invoice links)
- Notes &amp; CRM Activity
- Meeting Notes (green accent)
- Calendar Events
- Recent Emails (full-width: date, direction, subject, 1-line summary per row)

**Footer**
- "Profile compiled [date]"
- List of sources that contributed data

### Data handling rules
- Missing field &#8594; omit the row (no "N/A")
- Empty section &#8594; omit the whole card
- Phone &#8594; `&lt;a href="tel:..."&gt;`, Email &#8594; `&lt;a href="mailto:..."&gt;`
- Linked CRM records &#8594; add a "View in [CRM] &#8599;" button

### Save and deliver
Save the HTML to `/mnt/user-data/outputs/&lt;firstname&gt;_&lt;lastname&gt;_profile.html` (use email local-part if name unknown). Present the file with a 2&#8211;3 sentence summary of headline findings. Proceed immediately to Step 6.

---

## Step 6: Generate Audio Podcast

Always follow the HTML with a narrated podcast summary.

### Script
Write a 900&#8211;1100 word script broken into 12&#8211;18 segments covering:

1. Introduction &#8212; name, role, company
2. Who they are &#8212; background, experience, location
3. Career arc &#8212; prior roles, notable achievements
4. Recent roles &amp; community involvement
5. Company overview &#8212; what, when, where, size
6. What the company does &#8212; like a pitch
7. Who they serve &#8212; customers, industries
8. Products &amp; technology
9. Recent news &#8212; last 12 months
10. Leadership &amp; team
11. Financial snapshot (if public)
12. Your history together &#8212; relationship context
13. CRM relationship
14. Billing summary (if applicable)
15. Recent emails &#8212; what the last 3&#8211;5 threads suggest
16. Meeting notes &#8212; recurring themes, action items
17. Calendar &amp; engagement depth
18. Summary &#8212; the person, the company, the relationship, key actions

**Script rules:**
- Professional podcast narrator voice &#8212; conversational but informative
- Spell out numbers for TTS ("forty-five million" not "$45M")
- Reference specific dates, amounts, names
- Company section should be substantial (300+ words)
- Skip empty chapters silently

### Audio generation

**If ElevenLabs is connected:**
- Use the highest-quality multilingual model
- Default voice: confident, warm narrator. Match region (Australian for AU, British for UK)
- Output: MP3
- If the script exceeds the TTS character limit, split at segment boundaries and concatenate

**If ElevenLabs is NOT connected:**
- Skip MP3 generation
- Build the player to use the browser's Web Speech API for narration
- Note to the user: "Podcast will use browser narration. For higher-quality voice, connect ElevenLabs in Claude settings."

### Interactive player
Build a self-contained React `.jsx` file that acts as either:
- An MP3 player (if ElevenLabs produced audio), or
- A Web Speech API player (fallback)

**Player UI matches the HTML profile aesthetic** &#8212; same palette, same typography.

Components: header with title + contact name; waveform visualiser (60 bars); clickable progress bar with monospace timestamps; transport (prev chapter / play-pause / next chapter); speed selector (0.75x / 1x / 1.25x / 1.5x); chapter list with active highlight; collapsible transcript.

**Constraints:**
- No localStorage or sessionStorage &#8212; React state only
- Import only from `react` (hooks)
- All segment data embedded in the component

### Save and deliver
- Save MP3 (if generated) to `/mnt/user-data/outputs/&lt;firstname&gt;_&lt;lastname&gt;_podcast.mp3`
- Save React player to `/mnt/user-data/outputs/&lt;firstname&gt;_&lt;lastname&gt;_podcast.jsx`
- Present all files alongside the HTML profile
- Note: "Here's a podcast summary &#8212; queue it up before the meeting."

---

## Notes &amp; Tips

- **Connector silence:** If a source returns nothing, don't mention it. Output should feel complete.
- **Name resolution:** If the CRM returns a full name, use it. Otherwise parse from email local-part.
- **Company name:** Prefer the CRM company record. Fall back to the domain root.
- **Multiple CRM matches:** Pick the exact email match.
- **LinkedIn:** Direct fetching usually blocked &#8212; use search snippets.
- **Time-sensitive data:** Anchor news and financial queries to the current year.
- **Privacy:** This skill is for sales/account research the user is permitted to do. Don't surface information from sources the user shouldn't have access to.
- **Minimum viable run:** Even with only web_search available, produce a useful profile. Don't refuse to run.
</code></pre></div>]]></content:encoded></item><item><title><![CDATA[Three workflows. One outcome. Salespeople who actually sell.]]></title><description><![CDATA[Your B2B salespeople spend 22% of their day actually selling.]]></description><link>https://letters.jonohorne.com/p/three-workflows-one-outcome-salespeople</link><guid isPermaLink="false">https://letters.jonohorne.com/p/three-workflows-one-outcome-salespeople</guid><dc:creator><![CDATA[Jonathan Horne - YDY Venutres]]></dc:creator><pubDate>Thu, 14 May 2026 01:32:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vudx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F828905ee-4c7e-4d9c-930a-ddc287219f2b_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Your B2B salespeople spend 22% of their day actually selling.</p><p>The other 78% is admin, prep, follow-up, and chasing things they wrote down on a napkin three weeks ago.</p><p>Then you wonder why the average tenure is 16.8 months.</p><p>You hired them. You ramped them for seven months. You got nine months of actual output before they disconnected and left. Then you spent another four months replacing them.</p><p>That&#8217;s a 13-month hole in your territory. The competition walked straight through it.</p><p>This isn&#8217;t a tooling problem. It isn&#8217;t a CRM problem. It isn&#8217;t a &#8220;we need more leads&#8221; problem.</p><p>It&#8217;s a leverage problem.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vudx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F828905ee-4c7e-4d9c-930a-ddc287219f2b_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vudx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F828905ee-4c7e-4d9c-930a-ddc287219f2b_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!vudx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F828905ee-4c7e-4d9c-930a-ddc287219f2b_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!vudx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F828905ee-4c7e-4d9c-930a-ddc287219f2b_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!vudx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F828905ee-4c7e-4d9c-930a-ddc287219f2b_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vudx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F828905ee-4c7e-4d9c-930a-ddc287219f2b_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/828905ee-4c7e-4d9c-930a-ddc287219f2b_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1705290,&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://letters.jonohorne.com/i/197610038?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F828905ee-4c7e-4d9c-930a-ddc287219f2b_1477x1065.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_!vudx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F828905ee-4c7e-4d9c-930a-ddc287219f2b_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!vudx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F828905ee-4c7e-4d9c-930a-ddc287219f2b_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!vudx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F828905ee-4c7e-4d9c-930a-ddc287219f2b_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!vudx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F828905ee-4c7e-4d9c-930a-ddc287219f2b_1477x1065.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><h2>The two ways to grow (and the one everyone picks)</h2><p>There are only two ways to drive sales growth.</p><p>The first is to put more deals at the top of the funnel. More calls, more meetings, more marketing, more more more. That&#8217;s the lever almost every sales leader pulls first because it&#8217;s the one they can see.</p><p>The second is to convert more of what you already have. Higher conversion at each stage. Less waste. Less time spent on deals that were never going to close.</p><p>The first lever is exhausted. You&#8217;ve been pulling it for years. CAC keeps going up. Sales and marketing now cost 60&#8211;70% of revenue. The buyers are sick of you. Your reps are sick of you.</p><p>The second lever is wide open. And AI is the thing that finally moves it.</p><h2>What people get wrong about AI and sales</h2><p>There is a video on LinkedIn right now of a guy claiming his AI agent runs his sales team while he sleeps. It does not.</p><p>I tried.</p><p>A few months ago I built a fully autonomous AI sales agent to handle low-value domain name inquiries at one of my businesses. I named her after my wife. In hindsight, mistake.</p><p>The agent followed instructions. To the minute. Every 24 hours she emailed the buyer: &#8220;Have you paid?&#8221; Every 24 hours. To the minute.</p><p>When the buyer asked for the company ABN, she made one up.</p><p>When another buyer wrote back to say they didn&#8217;t want to proceed, she confirmed they didn&#8217;t want to proceed, then emailed them 24 hours later asking why they were ignoring her.</p><p>She killed every single sale that day.</p><p>I shut her off that night. My wife is still annoyed about it.</p><p>The lesson isn&#8217;t that AI doesn&#8217;t work. The lesson is that AI does not yet replicate the thing your salespeople are actually paid for &#8212; building trust under uncertainty. Reading the room. Knowing when to push and when to shut up.</p><p>What AI is good at right now is freeing the salesperson to do that one thing better.</p><h2>The three workflows that actually move the needle</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-jPP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F869b8c6e-e066-4534-8494-4408e695484b_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-jPP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F869b8c6e-e066-4534-8494-4408e695484b_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!-jPP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F869b8c6e-e066-4534-8494-4408e695484b_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!-jPP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F869b8c6e-e066-4534-8494-4408e695484b_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!-jPP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F869b8c6e-e066-4534-8494-4408e695484b_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-jPP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F869b8c6e-e066-4534-8494-4408e695484b_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/869b8c6e-e066-4534-8494-4408e695484b_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1734569,&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://letters.jonohorne.com/i/197610038?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F869b8c6e-e066-4534-8494-4408e695484b_1477x1065.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_!-jPP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F869b8c6e-e066-4534-8494-4408e695484b_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!-jPP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F869b8c6e-e066-4534-8494-4408e695484b_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!-jPP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F869b8c6e-e066-4534-8494-4408e695484b_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!-jPP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F869b8c6e-e066-4534-8494-4408e695484b_1477x1065.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>Stop chasing the shiny object. There are three places AI changes a salesperson&#8217;s day right now. None of them are autonomous agents. All of them 10x what the human does.</p><p><strong>1. Before the meeting &#8212; Meeting Prep.</strong></p><p>You don&#8217;t walk in cold anymore. You walk in already curious about the person across the table. You know the deal they almost lost. You know the bid they won on instinct over a coffee. You know the company&#8217;s last three press releases and what the CEO actually thinks of the new partnership.</p><p>You learn it on the drive over. From an AI-narrated podcast.</p><p>This is the Contact Deep Dive workflow. Full post on it next.</p><p><strong>2. During and after the meeting &#8212; Meeting Review.</strong></p><p>You record the meeting. Granola, Fathom, Otter, Gong &#8212; pick one. Then you don&#8217;t just get a transcript. You get a brutally honest 14-section report.</p><p>What was said. What wasn&#8217;t said. What you fumbled. What the other party deflected. What you should have asked but didn&#8217;t. Where the leverage went. Which objections weren&#8217;t raised but should have been.</p><p>This is the Meeting Report Card workflow. Full post on it after.</p><p><strong>3. After everything &#8212; Commitment Extractor.</strong></p><p>Every day at midnight, a scheduled task scans your sent emails. It pulls out every promise you made. &#8220;I&#8217;ll send you that contract on Wednesday.&#8221; &#8220;I&#8217;ll loop in Sarah by Friday.&#8221; &#8220;I&#8217;ll check with finance and revert.&#8221;</p><p>It creates a task with the due date. It watches your outbound emails. When you actually send the thing, it self-clears.</p><p>You never miss a promise. You never have a buyer wondering where the document is. You never have to keep a running list in your head while you&#8217;re trying to listen.</p><p>Full post on this one last.</p><h2>Why these three together</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ohVN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe39f8d83-0d79-40dd-abe5-fb8d357d9e8e_1478x1064.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ohVN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe39f8d83-0d79-40dd-abe5-fb8d357d9e8e_1478x1064.png 424w, https://substackcdn.com/image/fetch/$s_!ohVN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe39f8d83-0d79-40dd-abe5-fb8d357d9e8e_1478x1064.png 848w, https://substackcdn.com/image/fetch/$s_!ohVN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe39f8d83-0d79-40dd-abe5-fb8d357d9e8e_1478x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!ohVN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe39f8d83-0d79-40dd-abe5-fb8d357d9e8e_1478x1064.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ohVN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe39f8d83-0d79-40dd-abe5-fb8d357d9e8e_1478x1064.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e39f8d83-0d79-40dd-abe5-fb8d357d9e8e_1478x1064.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1836642,&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://letters.jonohorne.com/i/197610038?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe39f8d83-0d79-40dd-abe5-fb8d357d9e8e_1478x1064.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_!ohVN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe39f8d83-0d79-40dd-abe5-fb8d357d9e8e_1478x1064.png 424w, https://substackcdn.com/image/fetch/$s_!ohVN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe39f8d83-0d79-40dd-abe5-fb8d357d9e8e_1478x1064.png 848w, https://substackcdn.com/image/fetch/$s_!ohVN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe39f8d83-0d79-40dd-abe5-fb8d357d9e8e_1478x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!ohVN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe39f8d83-0d79-40dd-abe5-fb8d357d9e8e_1478x1064.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>Each of these on its own is useful. The compounding is where it gets ridiculous.</p><p>You prep with the deep dive. You show up curious and informed. You don&#8217;t sound like every other vendor.</p><p>You record the meeting. You leave the call free to actually listen, because the note-taking is handled. The report card tells you what you missed.</p><p>You commit clearly inside the meeting, knowing the commitment extractor will pick it up and track it. You become someone who actually does what they say.</p><p>In three meetings, you&#8217;ve built more trust than most reps build in three quarters.</p><h2>What you should do this week</h2><p>I don&#8217;t care if you do all three. Pick one.</p><p>If your reps are walking into meetings cold, start with meeting prep.</p><p>If your reps are great in the room but the follow-up is leaking, start with the commitment extractor.</p><p>If you have no idea why some reps close and others don&#8217;t, start with the meeting report card.</p><p>The rest will follow.</p><p>The next three posts in this series walk you through each workflow. What it does, how to install it, how to run it. The skill files are free. You&#8217;ll need a Claude subscription. $20 a month.</p><p>Your competitors are still arguing about which CRM to buy.</p><p>You can be three workflows ahead by Friday.</p>]]></content:encoded></item><item><title><![CDATA[AI agents are becoming addictive]]></title><description><![CDATA[I was watching Minions with my family the other night and caught myself thinking about the next prompt I could give an AI agent to move my app forward.]]></description><link>https://letters.jonohorne.com/p/ai-agents-are-becoming-addictive</link><guid isPermaLink="false">https://letters.jonohorne.com/p/ai-agents-are-becoming-addictive</guid><dc:creator><![CDATA[Jonathan Horne - YDY Venutres]]></dc:creator><pubDate>Tue, 07 Apr 2026 05:21:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QEs7!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbda529ab-5616-47ed-b500-2e701faf5d06_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I was watching Minions with my family the other night and caught myself thinking about the next prompt I could give an AI agent to move my app forward.</p><p>Not, &#8220;I should reply to that email tomorrow.&#8221;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://letters.jonohorne.com/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>More like: one feature, one fix, one more little burst of progress. One more skill attached to OpenClaw: one more scheduled task, setting CoWork.</p><p>I was on the couch, but mentally I was back at the keyboard.</p><p>That was the moment the pattern became obvious.</p><p>We are not just building better tools.</p><p>We are building systems that make it much harder for certain people to switch off.</p><p>That matters because the people most drawn to AI are usually the people most vulnerable to overusing it. Ambitious people. Curious people. People who love leverage. People who get a genuine thrill from turning ideas into outcomes.</p><p>AI agents press every button those people already have.</p><p>They are always available. They reduce friction. They reward action. They make progress visible almost instantly.</p><p>That is why this is so hard to talk about honestly.</p><p>It does not feel like self-destruction.</p><p>It feels like initiative.</p><p>It feels like momentum.</p><p>It feels like building.</p><h2>Why this is different</h2><p>Most bad habits at least look bad while you are doing them.</p><p>This one often looks admirable.</p><p>You are making things. Shipping things. Learning faster. Testing ideas you would never have had the time or energy to test before.</p><p>And because the upside is real, the rationalisation gets stronger.</p><p>You tell yourself:</p><ul><li><p>this project could change my career</p></li><li><p>this tool could create more freedom</p></li><li><p>this app could become real income</p></li><li><p>this feature could be the thing that makes it work</p></li></ul><p>Sometimes those things are even true.</p><p>That is what makes the loop dangerous.</p><p>If AI were useless, this would be easy to dismiss.</p><p>But it is not useless. It is genuinely powerful.</p><p>That is exactly why it becomes so easy to let it invade the rest of your life.</p><h2>The real problem is not future job loss</h2><p>A lot of the conversation around AI gets framed as a future question.</p><p>Will it take jobs? How fast? Who gets displaced first?</p><p>Those questions matter.</p><p>But there is another problem that is already here.</p><p>The anxiety is here. The burnout is here. The compulsive checking is here. The inability to mentally switch off is here.</p><p>That is not hypothetical.</p><p>It is happening now.</p><p>You can see it in the way people follow model releases like breaking news. You can see it in the way every new tool creates both excitement and dread. You can see it in the rising fear that if you look away for a week, the whole field will move without you.</p><p>That combination is brutal.</p><p>Curiosity pulls you in. Fear stops you from putting it down.</p><h2>The boundary collapse is the actual issue</h2><p>The problem is not just that agents are powerful.</p><p>It is that they collapse boundaries that used to protect us.</p><p>There was a time when building required enough friction that work stayed in its lane. You had to sit down properly. You had to be at your machine. You had to go through enough effort that there was still a natural edge between work and not-work.</p><p>That friction was annoying.</p><p>It was also healthy.</p><p>Now the lane is gone.</p><p>If your agent is always there, work is always there.</p><p>You think of a better auth flow while walking? Message your agent.</p><p>You remember an API endpoint while waiting in line? Message your agent.</p><p>You are meant to be present with your wife or your kids, but part of your brain is still chewing on a workflow? Message your agent.</p><p>Technically, this is amazing.</p><p>Humanly, it is messy.</p><p>Every quiet moment becomes vulnerable to the thought that maybe you should just do one more thing.</p><p>That is addictive territory.</p><h2>This is where it gets personal</h2><p>I can already see it in myself.</p><p>AI has expanded what I am capable of building. That part is real. I can move faster. I can test ideas that would have stayed trapped in my head a year ago.</p><p>But I can feel the cost too.</p><p>I think about projects when I am away from the computer. I catch myself planning the next feature in moments that are supposed to be ordinary and shared. I can feel how easy it would be to call that ambition while quietly letting it colonise everything.</p><p>And I know I am not the only one.</p><p>A lot of smart, capable people seem to be having the same private experience.</p><p>They are fascinated by the tools. They are grateful for the leverage. They are excited by what is possible. And they are exhausted.</p><p>That is not a minor side effect.</p><p>That is the story.</p><h2>Human skill still matters</h2><p>One of the worst responses to AI anxiety is to become passive and over-dependent.</p><p>Access to AI will not be the differentiator for long. That will be normal.</p><p>What will still matter is whether you can think, judge, steer, verify, and recover when the machine gets it wrong.</p><p>If the output is bad, someone still has to catch it.</p><p>If the workflow breaks, someone still has to diagnose it.</p><p>If the model sounds confident and is completely wrong, someone still has to know better.</p><p>So no, I do not think the answer is to disengage from learning.</p><p>I think the answer is to keep building real skill while refusing to let the tools eat your whole life.</p><h2>What I am trying to do about it</h2><p>For me, this comes back to boundaries.</p><p>Mine are simple:</p><ul><li><p>I only use agents at my computer</p></li><li><p>I do not work past 9pm</p></li><li><p>Sundays are fully off</p></li></ul><p>That sounds basic, but I think it needs to be visible and non-negotiable.</p><p>Not a vibe. A rule.</p><p>The second thing is remembering that I am not missing out.</p><p>Most of what is being built with AI right now is not that good. Some of it is useful. A tiny amount of it is exceptional. But the internet constantly shows you the exceptional slice and implies that if you just push harder, maybe you will be next.</p><p>That is how people burn themselves out chasing the 1%.</p><p>The third thing is remembering that more code does not mean better software.</p><p>It never did.</p><p>The goal is not to generate more.</p><p>The goal is to build something that actually matters.</p><h2>The thing I keep reminding myself of</h2><p>I already have a beautiful life.</p><p>I have a family I love. People I love. A life that already contains much of what I claim I am trying to build toward.</p><p>And still, I can fall into the trap of acting like satisfaction is always one more project away.</p><p>That is the real risk here.</p><p>Not just that AI makes us more productive.</p><p>That it keeps us permanently on.</p><p>That it turns every spark of thought into an actionable temptation.</p><p>That it keeps dangling the possible future so aggressively that we stop inhabiting the life that is already here.</p><p>Maybe the answer is not more access.</p><p>Maybe the answer is protecting the parts of life where ideas are allowed to breathe without being turned into labour immediately.</p><p>That feels healthier to me.</p><p>More human too.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://letters.jonohorne.com/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>