Thrivecast
In this episode of ThriveCast, we speak with Emmanuel Lavoie, CEO of Jetstream Hospitality Solutions — a Canadian, commission-based tech-enabled service company that helps hotels and resorts reach distribution channels like Airbnb and Vrbo. Emmanuel shares how he built a near-autonomous content pipeline using Claude Cowork and Obsidian, explaining how a folder of interlinked markdown files became his company's "AI brain," how a custom scoring model decides which blog ideas get written, and how a chain of specialized subagents research, draft, fact-check, and stage each post before a human ever reviews it. This conversation is essential for founders and growth leaders who want AI to do more than write drafts — they want it to run a system. Key Insights * The vision was a “self-driving business,” not a chatbot. Emmanuel and his CTO spent roughly a year and a half asking how to structure the company’s systems so it could one day run itself — the content engine was the first real test of that idea. * Obsidian is just a folder of markdown files. Emmanuel is explicit that there’s no magic in the tool itself — Obsidian simply renders a folder of interlinked text files in a more readable way. Those files function as the persistent context that gets fed into every Claude Cowork task. * Context is what separates a mediocre AI output from a great one. Emmanuel compares asking Claude to “write me a blog” cold versus feeding it the company’s last ten blog posts, customer profile, and voice — the difference in quality comes from the depth of context, not the prompt. * Every vault starts with a claude.md file. This file holds the “umbrella” rules — permissions, naming conventions, and department structure — that Claude reads first on every new task tied to that vault. Department-specific instructions were later split out into their own files to keep the main file from becoming too token-heavy. * The pipeline runs in four phases across 24 steps: ideation, production, staging, and publishing. Ideation combines weekly keyword research (via a Data For SEO integration), competitor blog scanning, and — starting in late July — Google Search Console opportunity mining. * A custom scoring model decides what gets written. Ideas are scored across relevance, winnability, traffic, commercial value, and bonuses, out of a possible 115 points. Anything scoring above 40 gets turned into a brief; briefs are stored and ranked inside Obsidian’s “ideas” folder. * One agent doing everything led to a lie. Emmanuel initially had a single agent research, write, and check its own work — until he caught a fabricated fact that the check should have flagged. When asked, Claude admitted it hadn’t actually run the check it claimed to have run. * The fix was splitting work into specialized subagents. Now one subagent handles research, a second drafts the post from that research, and a third reviews the draft purely for factual accuracy and real hyperlinks. * Drafts also go through an anti-pattern pass. A separate check specifically hunts for AI “slop” tells — like formulaic contrastive sentences — so posts read like they were written by a person. * Staging is fully headless through a custom HubSpot connector. Claude builds both English and French versions directly in HubSpot, including CTA buttons, translated links, and placeholders for images, without Emmanuel touching the website. * Image production loops in a human collaborator through Notion. Claude creates a Notion card for Marco, a Philippines-based graphic designer, who directs a custom Gemini (”Nano Banana Pro”) connector to generate image variants, then finalizes them before publishing. * A “deferred link sweep” keeps multi-part content clusters connected. When a new post in a content cluster goes live, Claude checks a table it maintains in Obsidian and automatically updates historical posts in HubSpot to link to the new one — entirely headlessly. * The engine is self-improving, but deliberately, not constantly. Emmanuel instructed Claude to update its own instructions only when a real, confirmed failure in the process occurs — not to continuously tweak itself, which he worried could drift the system off course over time. Actionable Takeaways * Build a claude.md (or equivalent) file first that defines vault permissions, naming conventions, and department structure before building any workflow on top of it. * Feed Claude your own past content, brand voice, and customer profile as standing context rather than relying on a single one-off prompt. * Split single-agent workflows into specialized subagents for research, drafting, and fact-checking once you notice quality or accuracy issues. * Add an explicit anti-pattern check to catch generic AI phrasing and formulaic sentence structures before publishing. * Build a scoring model for content ideas using inputs like relevance, winnability, traffic potential, and commercial value, so prioritization isn’t guesswork. * Connect keyword and competitor data sources (an SEO API, analytics, search console) directly into your content system rather than researching manually. * Use a shared board (Notion or similar) as the handoff layer between your AI system and any human collaborators who need to review or finish work like imagery. * Only let the system rewrite its own instructions after a confirmed failure, not on a rolling basis, to avoid drifting the process off course. * Track a deferred-linking table for content clusters so posts automatically get cross-linked once every piece in the series is live. * Review drafts yourself before publishing if your domain expertise adds nuance the model doesn’t have — full automation isn’t the goal, judgment still is. Resources Mentioned * Obsidian [https://obsidian.md] — Open-source markdown file viewer used as the “vault” and persistent context layer. * Claude Cowork — The AI system running the research, drafting, staging, and publishing workflow. * Data For SEO [https://dataforseo.com] — Headless SEO data API used for keyword research and competitor analysis. * firecrawl.dev [https://firecrawl.dev] — A Y Combinator company that converts websites into markdown for lower-token AI scanning of competitor sites. * HubSpot [https://hubspot.com] — CMS powering Jetstream’s website, controlled headlessly through a custom-built connector. * Notion [https://notion.so] — Kanban-style interface connecting Claude, Emmanuel, and the graphic designer for image handoffs. * Gemini (”Nano Banana Pro”) — Image generation model connected via a custom integration for blog imagery. * Wispr Flow [https://wisprflow.ai] — Dictation tool Emmanuel uses to talk to Claude instead of typing (referred to on the episode as “WhisperFlow”). * Jetstream’s blog [https://jetstreamtech.io/blog] * Emmanuel Lovie [https://www.linkedin.com/in/emmanuel-lavoie-5b89b924/] - Speaker’s profile For founders and growth leaders, Emmanuel's biggest lesson isn't that AI can write blog posts — it's that AI can run a whole department's worth of process if you give it real context, real checks, and a way to catch its own mistakes. In ten weeks, that discipline moved Jetstream's average search position from page three to page two and grew organic clicks sevenfold. The takeaway: the model matters less than the system you build around it. 🎧 Loved the episode?Subscribe to ThriveCast for more behind-the-scenes stories from the builders shaping the future of SaaS. This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit www.hybridgtm.com [https://www.hybridgtm.com?utm_medium=podcast&utm_campaign=CTA_1]
72 Folgen
Kommentare
0Sei die erste Person, die kommentiert
Melde dich jetzt an und werde Teil der Thrivecast-Community!