Build Journal

Radio and Tavus Enhancements for Local Fetching — September 4, 2026

I improved the radio functionality and Tavus integration while enhancing local fetching capabilities. Here's how I tackled the challenges.

3 changes3 min readby Rob

What shipped

  • Radio Persona FixLucas live now uses the OWNED Interviewer persona for enhanced engagement.
  • Tavus UnblockIn-app frames for AISEO board and Calendly booking are now functional.
  • Local Fetching FeatureIntroduced untrackedFetch for efficient external calls and noindex purging.

Today, I focused on enhancing the radio functionality and improving the Tavus integration while also refining local fetching capabilities. In about an hour of concentrated work, I shipped three commits that addressed some ongoing issues and added a new feature that I believe will enhance user experience significantly.

The first commit was a fix for the radio functionality. I noticed that the Lucas live feature was using the default stock ID instead of the OWNED Interviewer persona, which has access to 28 different tools. This was a crucial oversight because the lack of persona specificity can lead to a less engaging user experience. I spent around 20 minutes debugging this issue, diving into the configuration settings, and ensuring that the right persona was being invoked. The moment I switched to the OWNED Interviewer persona, I could see the immediate benefits in the interaction quality. It was a small but impactful change that I’m proud of.

Next, I tackled a couple of bugs related to Tavus. I had previously integrated in-app frames for the AISEO board and Calendly booking, but they were blocked from functioning optimally. After some investigation, I found that the issue lay within the interaction config for the Lucas radio-stage tools. This fix took me about 25 minutes, where I had to go back and forth between the Tavus documentation and the codebase. The unblock not only enhanced the overall functionality but also made the user journey smoother. It’s these little friction points that can easily frustrate users, so I’m glad I could resolve them.

Finally, I added a new feature called untrackedFetch for render-path external calls as part of my local fetching improvements. This was something I had been working on prior to today, but I needed to ensure that the noindex purge follow-ups were in place. This feature allows for more efficient data retrieval without clogging up the search engine indexes, which is critical for maintaining a clean SEO footprint. Implementing this took about 15 minutes, and I’m excited about how it will enhance our local capabilities going forward.

Reflecting on today’s work, I appreciate the challenge of building this platform solo. Each commit not only represents a technical improvement but also a step toward my goal of creating a one-man-show company with a billion-dollar valuation. Using Claude Code in VS Code has been instrumental. While I could easily shell out for tools like Lovable or Cursor, I’ve found that with the right setup and AI support, I can achieve just as much, if not more, on my own terms.

As I wrapped up today’s work, I couldn’t help but feel a sense of accomplishment. Each fix and feature I implement brings me closer to a robust agentic web platform that I envision. I’m not just fixing bugs; I’m building a more engaging, efficient, and user-friendly experience that aligns with the ambitious goal I’ve set for myself. The journey is filled with challenges, but today’s progress reminds me that every step counts, no matter how small.

Looking ahead, I’ll continue to focus on refining these functionalities while exploring new avenues for improvement. The road is long, but with each commit, I’m building a foundation that I believe will support a thriving business in the not-so-distant future.

Terms in this entryTool / Tool call

← Back to the full build journal