<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: 25TH</title>
    <description>The latest articles on Forem by 25TH (@25th).</description>
    <link>https://forem.com/25th</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3826448%2F109c1c8a-a018-426c-be96-793ce71ebbea.png</url>
      <title>Forem: 25TH</title>
      <link>https://forem.com/25th</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/25th"/>
    <language>en</language>
    <item>
      <title>I Built an AI That Argues Back at Your Startup Pitch in Real Time</title>
      <dc:creator>25TH</dc:creator>
      <pubDate>Mon, 16 Mar 2026 06:18:17 +0000</pubDate>
      <link>https://forem.com/25th/i-built-an-ai-that-argues-back-at-your-startup-pitch-in-real-time-4409</link>
      <guid>https://forem.com/25th/i-built-an-ai-that-argues-back-at-your-startup-pitch-in-real-time-4409</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This article was created for the purposes of entering the Gemini Live Agent Challenge 2026. #GeminiLiveAgentChallenge&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every founder has been there. You rehearse your pitch until it sounds bulletproof. You walk into the room. An investor asks one question and the whole thing falls apart.&lt;/p&gt;

&lt;p&gt;Not because the idea is bad. Because you never had anyone argue back.&lt;/p&gt;

&lt;p&gt;That's what I built for the Gemini Live Agent Challenge: &lt;strong&gt;PitchFire&lt;/strong&gt;, a realtime AI pitch steelmanning agent that challenges every weak claim you make, validates every strong one, and generates a battlehardened pitch deck from only the arguments you successfully defended.&lt;/p&gt;

&lt;p&gt;Live at: &lt;a href="https://pitchfire.up.railway.app" rel="noopener noreferrer"&gt;pitchfire.up.railway.app&lt;/a&gt;&lt;br&gt;
Code: &lt;a href="https://github.com/iam25th1/pitchfire" rel="noopener noreferrer"&gt;github.com/iam25th1/pitchfire&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;You tap the orb and start speaking your pitch. PitchFire listens using Voice Activity Detection: the moment you pause, it captures the segment, sends it to &lt;strong&gt;Gemini 2.5 Flash&lt;/strong&gt;, and fires challenge cards within 2–3 seconds.&lt;/p&gt;

&lt;p&gt;Say &lt;em&gt;"our TAM is $50 billion"&lt;/em&gt; with no source, a red challenge card fires:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A $50B TAM from what source? What year? What percentage can you realistically capture in 24 months? TAM without SAM/SOM is theater."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Your conviction score drops. Say &lt;em&gt;"we have 3 paying pilots at $5K/month"&lt;/em&gt; — a green validation card fires, score goes up. At the end, hit END and Gemini generates a pitch deck containing only the claims that survived.&lt;/p&gt;

&lt;p&gt;Two modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Interrupt Mode&lt;/strong&gt; — Interrupts when inconsistencies detected or you are having awkward silence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full Pitch Mode&lt;/strong&gt; — 3 seconds of silence. Deliver your entire pitch, get the full breakdown after.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every card has three actions: &lt;strong&gt;READ&lt;/strong&gt; the full challenge, &lt;strong&gt;▶ LISTEN&lt;/strong&gt; to hear it spoken aloud, or &lt;strong&gt;↩ RESPOND&lt;/strong&gt; to type a direct defense — which goes back through Gemini, keeping the conversation anchored to that specific claim.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Technical Stack
&lt;/h2&gt;

&lt;p&gt;The audio pipeline was the interesting part.&lt;/p&gt;

&lt;p&gt;The browser captures raw PCM16 at 16kHz using a &lt;code&gt;ScriptProcessorNode&lt;/code&gt;. Per buffer, I compute RMS volume to detect voice activity. When voice is detected, chunks accumulate. When silence crosses the threshold, the chunks are concatenated and wrapped in a 44-byte WAV header before being base64 encoded and sent to Gemini's multimodal REST endpoint.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Gemini Made Possible
&lt;/h2&gt;

&lt;p&gt;The entire product is one well engineered Gemini prompt. The model transcribes the audio AND analyzes every claim in a single call. It identifies whether a claim is weak or strong, generates a sharp investor-style challenge, cites relevant counterevidence, scores the claim, and categorizes it across six pitch dimensions all in one response.&lt;/p&gt;

&lt;p&gt;Without a model that can do multimodal input and structured reasoning simultaneously, this product wouldn't exist. The Gemini 2.5 Flash API made it a 2-5 days build instead of a 2 month one.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Investor persona modes: VC, angel, strategic&lt;/li&gt;
&lt;li&gt;Team practice mode with multiple founders&lt;/li&gt;
&lt;li&gt;Integration with pitch deck tools&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built solo for the Gemini Live Agent Challenge 2026. #GeminiLiveAgentChallenge&lt;/em&gt;&lt;/p&gt;

</description>
      <category>gemini</category>
      <category>hackathon</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
