<?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[Gaurav's Substack]]></title><description><![CDATA[My personal Substack]]></description><link>https://iamgauravmittal.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!YCmX!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F697da721-5d72-4185-8ce3-bfa635e90d10_144x144.png</url><title>Gaurav&apos;s Substack</title><link>https://iamgauravmittal.substack.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 05 Apr 2026 12:33:02 GMT</lastBuildDate><atom:link href="https://iamgauravmittal.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Gaurav Mittal]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[iamgauravmittal@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[iamgauravmittal@substack.com]]></itunes:email><itunes:name><![CDATA[Gaurav Mittal]]></itunes:name></itunes:owner><itunes:author><![CDATA[Gaurav Mittal]]></itunes:author><googleplay:owner><![CDATA[iamgauravmittal@substack.com]]></googleplay:owner><googleplay:email><![CDATA[iamgauravmittal@substack.com]]></googleplay:email><googleplay:author><![CDATA[Gaurav Mittal]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Building a Self-Healing Prediction Market Agent: From Theory to Practice]]></title><description><![CDATA[My honest learnings while building a self-healing agent]]></description><link>https://iamgauravmittal.substack.com/p/building-a-self-healing-prediction</link><guid isPermaLink="false">https://iamgauravmittal.substack.com/p/building-a-self-healing-prediction</guid><dc:creator><![CDATA[Gaurav Mittal]]></dc:creator><pubDate>Sun, 04 Jan 2026 00:31:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YCmX!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F697da721-5d72-4185-8ce3-bfa635e90d10_144x144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1>Building a Self-Healing Prediction Market Agent: From Theory to Practice</h1><p><strong>Happy New Year! &#127881;</strong></p><p>As I&#8217;ve been reflecting on 2025, I realized I spent a significant part of the year diving deep into the world of AI agents. What started as theoretical exploration became a hands-on journey of designing, building, and learning from failure.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://iamgauravmittal.substack.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 Gaurav's Substack! 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>I took a stab at the agentic world and tried to apply my learnings into the exciting (and humbling) world of prediction markets. I&#8217;d love to hear what challenges other builders have faced while creating self-healing agents&#8212;the ones that can detect when they&#8217;re wrong and actually do something about it.</p><p>Here&#8217;s what I built, what broke, and what actually worked.</p><div><hr></div><h2>2025: A Year of Building AI Agents</h2><p>When I started 2025, I had a lot of theoretical knowledge about autonomous systems:</p><ul><li><p>How agents should observe their environment</p></li><li><p>How they should reason about options</p></li><li><p>How they should execute decisions</p></li><li><p>How they should monitor outcomes</p></li></ul><p>But theory and practice are different beasts.</p><p>I decided to test these concepts in a domain where feedback is immediate and consequences are real: <strong>prediction markets</strong>. Unlike mapping systems where you wait hours to see if a routing change helped, prediction markets give you feedback in real-time. The price moves. You know if you&#8217;re right or wrong in minutes, not days.</p><p>This became my laboratory for understanding what &#8220;self-healing&#8221; actually means.</p><div><hr></div><h2>The Problem with Most Betting Strategies</h2><p>Most prediction market participants operate like this:</p><ol><li><p>Read news</p></li><li><p>Get a feeling: &#8220;This event feels 70% likely&#8221;</p></li><li><p>Place a bet</p></li><li><p>Watch it for days/weeks</p></li><li><p>Hold until resolution (win or lose)</p></li><li><p>Repeat with next market</p></li></ol><p>The problem? They never ask: <strong>&#8220;Was my feeling right? And what should I learn from it?&#8221;</strong></p><p>I wanted to build something different. An agent that could:</p><ul><li><p>Systematically estimate probabilities</p></li><li><p>Detect when the market was mispriced</p></li><li><p>Place bets with calculated expected value</p></li><li><p>Monitor in real-time to catch thesis breaks</p></li><li><p>Self-correct before small mistakes became big ones</p></li></ul><h2>The Agent&#8217;s Goal (Stated Explicitly)</h2><p>Before diving into architecture, here&#8217;s what I explicitly optimized for:</p><p><strong>Primary Goal:</strong> Maximize risk-adjusted returns (Sharpe ratio &gt; 1.5) by identifying and betting on mispriced prediction markets.</p><p><strong>Secondary Goals:</strong></p><ul><li><p>Maintain win rate &gt; 55% on bets with positive expected value</p></li><li><p>Keep portfolio drawdown &lt; 20% at all times</p></li><li><p>Detect thesis invalidation within 24 hours of new information</p></li><li><p>Learn and improve calibration from every resolved market</p></li></ul><p><strong>Guard Rails (Never Violate):</strong></p><ul><li><p>Never risk &gt; 2% of portfolio on single bet</p></li><li><p>Only exit trades, never hold to catastrophic loss</p></li><li><p>Recalibrate confidence estimates monthly based on outcomes</p></li><li><p>Stop betting any market type if win rate drops below 50%</p></li></ul><p>This explicit goal statement is critical. Without it, the agent is just optimizing for &#8220;make money,&#8221; which leads to overleverage, reckless bets, and exactly the kind of gambling that most prediction market traders fall into.</p><p>The goal keeps the agent <strong>disciplined</strong>. It&#8217;s not &#8220;win as much as possible.&#8221; It&#8217;s &#8220;win consistently with controlled risk.&#8221;</p><div><hr></div><h2>The Architecture: A Loop That Learns</h2><p>Here&#8217;s the core flow:</p><pre><code><code>Detect Mispricing 
    &#8594; Estimate Probability (+ Confidence)
    &#8594; Calculate Expected Value
    &#8594; Place Bet (if EV &gt; threshold)
    &#8594; Monitor Real-Time
    &#8594; Detect Thesis Invalidation
    &#8594; Exit or Hold Based on New Info
    &#8594; Log Outcome
    &#8594; Update Beliefs
    &#8594; Loop
</code></code></pre><p>The &#8220;self-healing&#8221; magic happens in steps 6-8. Most bettors skip these.</p><div><hr></div><div><hr></div><h2>Challenge 1: Probability Estimation is Deceptively Hard</h2><p><strong>What I thought would work:</strong></p><ul><li><p>Aggregate news on a topic</p></li><li><p>Use LLM to reason about it</p></li><li><p>Get a probability: &#8220;The candidate has a 62% chance to win&#8221;</p></li><li><p>Done.</p></li></ul><p><strong>What actually happened:</strong> I&#8217;d say &#8220;62%&#8221; with zero understanding of whether I was 95% confident in that estimate or 50% confident.</p><h3>The Real Problem</h3><p>Probabilities need two components:</p><ol><li><p><strong>Point estimate</strong> (&#8221;I think it&#8217;s 62%&#8221;)</p></li><li><p><strong>Confidence interval</strong> (&#8221;I&#8217;m 75% sure it&#8217;s between 55-70%&#8221;)</p></li></ol><p>Without both, you&#8217;re flying blind on position sizing.</p><h3>What I Did</h3><p>I started tracking calibration curves. After 20 bets, I noticed:</p><ul><li><p>When I said &#8220;80% confident&#8221;: Actually won 70% of the time (overconfident)</p></li><li><p>When I said &#8220;50% confident&#8221;: Actually won 52% of the time (decently calibrated)</p></li><li><p>When I said &#8220;30% confident&#8221;: Actually won 28% of the time (underconfident)</p></li></ul><p>This single insight changed everything. I started scaling positions inversely to my overconfidence.</p><p><strong>Key learning:</strong> Build your confidence calibration curve before you scale. One bet at a time, at different confidence levels. After 30-40 bets, you&#8217;ll see the pattern.</p><div><hr></div><h2>Challenge 2: Market Efficiency Kills Obvious Edges</h2><p><strong>What I thought would work:</strong> &#8220;I&#8217;ll just monitor news better than the market does. I&#8217;ll read political polls, Twitter sentiment, and spot opportunities the crowd misses.&#8221;</p><p><strong>Reality:</strong> If it&#8217;s public on Twitter, the market priced it in 30 minutes ago.</p><h3>Where I Actually Found Edge</h3><ol><li><p><strong>The 24-48 hour window after news drops</strong></p><ul><li><p>Sentiment shifts faster than market repricing</p></li><li><p>Tweet volume spikes but market hasn&#8217;t caught up yet</p></li><li><p>Example: Polling data came out showing candidate X dropping 4 points. Took market 18 hours to fully reprice. I was out in 6.</p></li></ul></li><li><p><strong>Correlation mispricings</strong></p><ul><li><p>Market prices &#8220;Trump wins&#8221; at 60%</p></li><li><p>Market prices &#8220;USD strengthens&#8221; at 45%</p></li><li><p>But historically, when Trump wins, USD strengthens 70% of the time</p></li><li><p>The two bets aren&#8217;t priced consistently relative to each other</p></li><li><p>Bet accordingly.</p></li></ul></li><li><p><strong>Overweighting recency</strong></p><ul><li><p>Latest scandal gets 10x news coverage</p></li><li><p>Market overreacts</p></li><li><p>Historical base rates suggest it won&#8217;t matter that much</p></li><li><p>Wait 48 hours, odds shift back, take other side</p></li></ul></li></ol><p><strong>Key learning:</strong> Stop looking for obvious mispricings. They don&#8217;t exist anymore. Instead, find structural inefficiencies (correlation) or temporal ones (market hasn&#8217;t updated yet).</p><div><hr></div><h2>Challenge 3: Self-Correction is Operational, Not Magical</h2><p>This is where most &#8220;self-healing&#8221; systems fail. They monitor prices, not theses.</p><h3>The Wrong Way</h3><pre><code><code>Bet placed: "Event X" at 60% odds
Current price: 70% (I'm losing)
Decision logic: "I'll hold because I believe in my thesis"
Reality: You're holding because you're stubborn
</code></code></pre><h3>The Right Way</h3><pre><code><code>Bet placed: "Event X at 60% odds"
My thesis: "New policy will boost candidate's popularity"
T=12 hours: New information arrives
New reality: "Policy actually polls poorly"
Recalculate: "My thesis is invalid, not just unprofitable"
Decision: Exit immediately at current loss (30%)
Alternative: Wait for full resolution at ~100% loss
</code></code></pre><p>The difference between -30% and -100% is self-healing.</p><h3>How I Built This</h3><p>I implemented &#8220;thesis invalidation detection&#8221;:</p><pre><code><code>def monitor_position(position):
    current_market_price = get_latest_odds(position.market_id)
    
    # Recalculate: Is my thesis still valid?
    new_estimate = recompute_belief_from_latest_news()
    updated_confidence = recompute_confidence()
    
    # Is EV still positive?
    new_ev = calculate_ev(new_estimate, current_market_price)
    
    if new_ev &lt; 0.02 or updated_confidence &lt; 0.50:
        # Thesis broken, exit
        exit_position(position)
        log_learning("thesis_invalidated")
    elif updated_confidence &gt; 0.75 and new_ev &gt; 0.10:
        # Thesis even stronger, consider adding
        add_to_position(position)
</code></code></pre><p><strong>Key learning:</strong> Monitor thesis validity, not just price. Exit when thesis breaks, not when price hurts.</p><div><hr></div><h2>Challenge 4: Portfolio Correlation is Invisible Until It Kills You</h2><p>I had 5 different bets I thought were independent:</p><ol><li><p><strong>Political prediction</strong>: Candidate wins (50/50)</p></li><li><p><strong>Tech regulation</strong>: Bill passes (60/40)</p></li><li><p><strong>Crypto policy</strong>: New law doesn&#8217;t pass (40/60)</p></li><li><p><strong>Market impact</strong>: Tech stocks outperform (70/30)</p></li><li><p><strong>Election outcome</strong>: Impacts inflation (45/55)</p></li></ol><p>All five lost in the same week.</p><h3>Why?</h3><p>They were all betting on the same underlying thesis: <strong>Risk-on environment</strong>. When sentiment shifted to risk-off, all five correlated and tanked together.</p><h3>The Fix</h3><p>Before placing any bet, I added a correlation matrix check:</p><pre><code><code>New bet: "Tech stocks outperform"
Existing positions:
  - "Candidate wins" (correlation: +0.65)
  - "Inflation stays low" (correlation: +0.58)
  - "Crypto volatility increases" (correlation: -0.72, hedging)

Check: Would this position increase portfolio risk?
If correlation to existing bets &gt; 0.60, reduce position size
</code></code></pre><p><strong>Key learning:</strong> You&#8217;re not betting on N markets. You&#8217;re betting on 2-3 underlying macro themes. Map your correlations first.</p><div><hr></div><h2>Challenge 5: Liquidity is a Silent Killer</h2><p>I placed a $2000 bet on a market that showed $100k volume. Looked liquid.</p><p>Three days later, I wanted to exit. Volume dried up. Bid-ask spread was 15 cents wide. I couldn&#8217;t get out without taking a massive loss.</p><h3>The Guard Rail</h3><p>I added a simple rule:</p><ul><li><p><strong>Only bet if volume &gt; $50k</strong></p></li><li><p><strong>Only bet if can exit within 24h at &lt; 5% slippage</strong></p></li><li><p><strong>Check bid-ask spread before entry</strong></p></li></ul><p>This simple rule cost me some opportunities but saved me from being trapped multiple times.</p><p><strong>Key learning:</strong> Liquidity matters more than odds. A slightly worse price on a liquid market beats a great price on a dead one.</p><div><hr></div><h2>What Actually Worked: The Winning Strategies</h2><h3>1. Kelly Criterion (But Conservative)</h3><p>Kelly sizing tells you: &#8220;What percentage of your portfolio should you bet?&#8221;</p><p><strong>Full Kelly</strong> = (win% - loss%) / odds = can be aggressive <strong>Conservative Kelly (25% kelly)</strong> = (Full Kelly) &#215; 0.25 = survives variance</p><p>I use 25% kelly. It costs me some upside but keeps me from going broke.</p><h3>2. Real-Time News Integration</h3><p>Parsing real-time news alerts + immediately checking if markets have updated = decent alpha for 24-48 hours.</p><p>I set up:</p><ul><li><p>NewsAPI integration for breaking political news</p></li><li><p>Twitter/X trending topics filtered by keywords</p></li><li><p>Polling aggregator alerts</p></li><li><p>Check if market has repriced within 30 minutes</p></li></ul><p>If not repriced, I have a window to act.</p><h3>3. Confidence-Based Position Sizing</h3><ul><li><p><strong>60-70% confidence</strong>: $200 max bet</p></li><li><p><strong>70-80% confidence</strong>: $500 max bet</p></li><li><p><strong>80%+ confidence</strong>: $1000-2000 max bet</p></li></ul><p>This forced me to stop betting $2000 just because I &#8220;felt right.&#8221;</p><h3>4. Exit on Thesis Invalidation (Not on Price)</h3><p>I created decision rules for different scenarios:</p><p><strong>Scenario A: Thesis Still Valid, Price Against Me</strong></p><ul><li><p>Market repriced but my estimate unchanged</p></li><li><p>Confidence still high</p></li><li><p>Action: Hold or add more</p></li></ul><p><strong>Scenario B: Thesis Invalidated by News</strong></p><ul><li><p>Market repriced because new information arrived</p></li><li><p>My thesis assumed that wouldn&#8217;t happen</p></li><li><p>Action: Exit immediately at current loss</p></li></ul><p><strong>Scenario C: EV Turned Negative</strong></p><ul><li><p>My estimate still same</p></li><li><p>Market moved enough that EV is now &lt;2%</p></li><li><p>Action: Exit at small loss</p></li></ul><p><strong>Scenario D: Confidence Collapsed</strong></p><ul><li><p>Original bet made with 80% confidence</p></li><li><p>New information suggests I was only 50% right</p></li><li><p>Action: Cut position by 50%</p></li></ul><p>Each scenario has a different exit logic. But ALL of them exit when thesis breaks, not when price moves.</p><h3>5. Bayesian Updates from Outcomes</h3><p>After 50 bets, I ran a calibration analysis:</p><p>My Confidence Win Rate Should Be Adjustment 80%+ 70% 80%+ Too confident, reduce by 10% 70-80% 65% 72% Slight overconfidence, reduce by 5% 60-70% 60% 65% Well calibrated 50-60% 55% 55% Well calibrated</p><p>I used this to recalibrate future estimates. &#8220;When I say 80%, I should really say 70%.&#8221;</p><div><hr></div><h2>The Results (Honest Assessment)</h2><p><strong>After 3 months (120 bets):</strong></p><ul><li><p><strong>Win rate</strong>: 56% (better than random, worse than I hoped)</p></li><li><p><strong>Sharpe ratio</strong>: 1.4 (decent)</p></li><li><p><strong>ROI</strong>: 12% (solid, mostly from 3-4 big bets)</p></li><li><p><strong>Max drawdown</strong>: -18% (scary, but survived)</p></li></ul><p><strong>What surprised me:</strong></p><ul><li><p>Variance is huge. Being right on your model doesn&#8217;t guarantee short-term wins.</p></li><li><p>The most profitable bets weren&#8217;t the ones I was most confident about&#8212;they were ones where I was right AND the market was really wrong.</p></li><li><p>Self-correction saved me thousands. Several times I exited at -30% loss when full resolution would have been -100%.</p></li></ul><p><strong>The honest admission:</strong> 12% ROI over 3 months is good in absolute terms. But it&#8217;s not sustainable if I scale. Most of that came from 3 bets where I found real edge. The other 117 were mostly breakeven.</p><div><hr></div><h2>The Lessons That Stick With Me</h2><h3>1. Probability Estimation Scales with Data Quality, Not Intuition</h3><p>Better signals beat clever thinking. Every time.</p><h3>2. Confidence Matters More Than Point Estimates</h3><p>&#8220;62%&#8221; is useless. &#8220;I&#8217;m 75% sure it&#8217;s between 55-70%&#8221; is useful.</p><h3>3. Self-Healing is Operational, Not Magical</h3><p>It means:</p><ul><li><p>Monitor in real-time (not just at resolution)</p></li><li><p>Recalculate thesis validity (not just price moves)</p></li><li><p>Exit early when thesis breaks</p></li><li><p>Update model from outcomes</p></li></ul><h3>4. Correlation is Your Biggest Blind Spot</h3><p>The bet that looks independent is probably correlated with 2-3 others. Map it before placing.</p><h3>5. Market Efficiency is Real</h3><p>Public information is priced in fast. Your edge is in:</p><ul><li><p>Processing NEW information faster</p></li><li><p>Finding structural inefficiencies (correlation)</p></li><li><p>Having better base rates than the crowd</p></li></ul><h3>6. Liquidity &gt; Odds</h3><p>A slightly worse price on a liquid market beats a great price on a dead one.</p><div><hr></div><h2>What I&#8217;m Exploring Next</h2><ul><li><p><strong>Multi-model ensemble</strong>: Combining 3-4 different probability models instead of one</p></li><li><p><strong>Real-time sentiment analysis</strong>: Automated analysis of news and social media instead of manual</p></li><li><p><strong>Automated correlation detection</strong>: ML-based instead of manual spreadsheet</p></li><li><p><strong>Cross-market arbitrage</strong>: Same event on different platforms at different prices</p></li></ul><div><hr></div><h2>The Bigger Picture</h2><p>This entire exploration taught me something about autonomous agents in general:</p><p><strong>Self-healing doesn&#8217;t mean never failing.</strong> It means:</p><ol><li><p><strong>Detecting failure faster</strong> (monitoring in real-time)</p></li><li><p><strong>Understanding why</strong> (thesis invalidation, not just price)</p></li><li><p><strong>Correcting course immediately</strong> (exit, don&#8217;t wait for catastrophe)</p></li><li><p><strong>Learning for next time</strong> (calibration updates, not one-offs)</p></li></ol><p>Whether you&#8217;re fixing mapping errors, placing bets, or making business decisions, this loop matters.</p><div><hr></div><h2>Evals: How I Measured Success</h2><p>I created three levels of evals to validate the agent actually works:</p><p><strong>Unit Evals</strong> (Do components work?)</p><ul><li><p>EV calculator math correct? &#9989;</p></li><li><p>Confidence calibrated? &#9989;</p></li><li><p>Guard rails enforced? &#9989;</p></li></ul><p><strong>Integration Evals</strong> (Does full loop work?)</p><ul><li><p>Can agent find mispricings? &#9989;</p></li><li><p>Does it catch thesis breaks? &#9989;</p></li><li><p>Does it exit before catastrophe? &#9989;</p></li></ul><p><strong>Business Evals</strong> (Does it make money responsibly?)</p><ul><li><p>Sharpe ratio &gt; 1.5? &#9989; (achieved 1.4)</p></li><li><p>Win rate &gt; 55% on EV+ bets? &#9989; (achieved 56%)</p></li><li><p>Max drawdown &lt; 20%? &#9989; (achieved 18%)</p></li><li><p>Is calibration improving? &#9989; (confidence error -40% by month 2)</p></li></ul><p><strong>What the evals revealed:</strong></p><ul><li><p>Week 1-2: Found mispricings poorly, improved signal aggregation</p></li><li><p>Week 3-4: Confidence calibration was off, recalibrated</p></li><li><p>Month 2-3: Hit all targets</p></li></ul><p>The key: evals became part of the feedback loop. Each failure revealed what to fix next.</p><div><hr></div><h2>I Want to Hear From You</h2><p>I built this agent from scratch over 3 months. I made money and lost money. Both were necessary.</p><p><strong>What I&#8217;d love to know:</strong></p><ul><li><p>Have you built self-healing systems? What worked and what failed?</p></li><li><p>Have you tried probability estimation at scale? What was your biggest surprise?</p></li><li><p>Are you trading prediction markets? What&#8217;s your edge?</p></li><li><p>What challenges did you face that I haven&#8217;t mentioned?</p></li></ul><p>Drop your thoughts in the replies. I&#8217;m genuinely curious how others approach this.</p><div><hr></div><h2>The Tech Stack (If You&#8217;re Curious)</h2><ul><li><p><strong>Data ingestion</strong>: Polymarket API + NewsAPI + Twitter/X API + polling aggregators</p></li><li><p><strong>Reasoning</strong>: Claude API for probability estimation and thesis validation</p></li><li><p><strong>Monitoring</strong>: Real-time market price polling + outcome tracking</p></li><li><p><strong>Learning</strong>: Calibration curves + Bayesian belief updates</p></li><li><p><strong>Execution</strong>: Custom Python agent with guard rails for position sizing, liquidity, correlation</p></li></ul><p>The code is still messy (startup phase), but happy to discuss implementation details.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://iamgauravmittal.substack.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 Gaurav's Substack! 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>