Author: Ruby Catharin Arokyaswamy

  • How I Stopped Burning Claude Code Tokens

    I kept hitting Claude Code rate limits way earlier than made sense.

    Not because I was doing anything at scale. I wasn’t running massive jobs or processing huge datasets. I was just using it — normally — and somehow burning through tokens faster than I expected.

    Turns out most of the inefficiency wasn’t from what I was doing. It was how I was doing it. Specifically: unnecessary context. Claude was doing a lot of work that had nothing to do with the actual task.

    Spent a few weeks paying closer attention and cleaning things up. Sharing what I found in case it saves someone else the same frustration.

    The quick wins

    These are the ones that took maybe five minutes to change and had immediate impact.

    Edit your original prompt instead of stacking follow-ups. This was a habit I didn’t realize I had. When Claude gave a mediocre answer, I’d just… reply. Try to redirect. Add more context. The problem is every reply extends the chain, and Claude has to reason over all of it — the good parts, the bad parts, the failed attempts. Going back and editing the original prompt is almost always cleaner. You get a better answer and don’t carry the weight of a failed exchange into the next one.

    Reset conversations periodically. Around every 10–20 turns, I’d ask Claude for a summary of where we were, then start a fresh session with that summary as the opening context. Sounds like extra work but it’s really not. You keep almost everything that matters, and you drop all the cruft. Same quality of continuity, fraction of the tokens.

    Match the model to the task. This sounds obvious. I still wasn’t doing it. I was defaulting to more powerful models far more than necessary — Opus for things that Sonnet handles easily, Sonnet for things Haiku would knock out. Once I started being intentional about it (Haiku for simple, scoped tasks, Sonnet for most work, Opus only when I genuinely need deep reasoning), the usage dropped noticeably.

    The ones that actually made a dent

    Be specific about files. “Fix this repo” is an expensive instruction. Claude has to orient itself, scan around, figure out what’s relevant before it can do anything. “Look at /src/payments/checkout.ts” skips all of that. The more precisely you point it at what matters, the less searching happens — and searching is where a lot of tokens quietly disappear.

    Keep a simple repo map. This is just a short reference document — a few lines — that tells Claude where things live. Auth lives here, payments there, utils somewhere else. You paste it in at the start of a session and Claude navigates directly instead of exploring. It’s a small thing to set up and it changes how sessions feel entirely.

    Use /compact to control context growth. Honestly this was my biggest single inefficiency. I wasn’t managing context at all. I just let it grow indefinitely, assuming more context was always better. Running /compact periodically trims it down to what’s actually relevant. Combined with a soft mental limit on session length before I compact or reset, this made a real difference.

    Add a .claudeignore. Think of it as a .gitignore for tokens. node_modules, build folders, large generated files — none of that needs to be in Claude’s context. Setting this up once means it’s never a problem again.

    If you want to go deeper — look at rtk. I came across this repo a few weeks in and found it genuinely useful. The idea is that when Claude Code runs commands, rtk sits in between and strips out tokens that are useful for humans but wasteful for agents — extra whitespace, unnecessary newlines, that kind of thing. Stuff we need to read code comfortably, but Claude doesn’t. It’s more involved to set up, but if you’re using Claude Code heavily it’s worth knowing about.

    None of this is individually groundbreaking. But it compounds. The cumulative effect of cleaner prompts, shorter sessions, the right models, and less noise in context — it adds up faster than you’d expect.

    I’m still looking to tighten things further. Curious what others have found that works.

  • Rethinking What “It Works” Means

    The biggest learning as a PM transitioning into AI: “𝗪𝗼𝗿𝗸𝗶𝗻𝗴” 𝗶𝘀 𝗻𝗼 𝗹𝗼𝗻𝗴𝗲𝗿 𝗯𝗶𝗻𝗮𝗿𝘆.

    In traditional software, PRDs define requirements, engineering writes test cases, and you validate against clear pass/fail criteria. That works when “does it work?” has a yes or no answer.

    AI doesn’t behave that way. It can pass predefined test cases and still fail in production because inputs are unpredictable and “correct” is often a spectrum, not a checkbox.

    That’s when I realized evals aren’t the AI version of QA. They’re not something you bolt on after building the product. They become the foundation – the thing you design first because without them, you genuinely don’t know what you’re building toward. Without evals, you’re essentially flying blind with a well-prompted prototype.

    Working on conversational AI made this painfully concrete for me. A chatbot can retrieve the right data, call the right API, and still deliver a response that’s useless to the user. A voice agent can have great pick-up rates but fail because the conversation breaks at turn three. 𝗔𝗴𝗴𝗿𝗲𝗴𝗮𝘁𝗲 𝗺𝗲𝘁𝗿𝗶𝗰𝘀 𝘁𝗲𝗹𝗹 𝘆𝗼𝘂 𝘀𝗼𝗺𝗲𝘁𝗵𝗶𝗻𝗴 𝗶𝘀 𝘄𝗿𝗼𝗻𝗴. 𝗘𝘃𝗮𝗹𝘀 𝗵𝗲𝗹𝗽 𝘆𝗼𝘂 𝘂𝗻𝗱𝗲𝗿𝘀𝘁𝗮𝗻𝗱 𝘄𝗵𝗲𝗿𝗲 𝗮𝗻𝗱 𝘄𝗵𝘆.

    That meant learning to evaluate at every layer of the conversation: was the right intent captured? Were the right tools called? Was the response actually useful in context? And doing this not once during deployment, but continuously on real production interactions.

    I also learned that off-the-shelf evals give you a starting point, but they rarely capture what matters for your specific product context. Hence, defining what “good” looks like for your users, edge cases, and failure modes is where most of the actual product thinking now lives.

    Some of this can be measured with fixed metrics. A lot can’t, which is where approaches like LLM-as-a-judge help add qualitative judgment. And then there’s model drift, quietly degrading performance over time, making continuous monitoring non-negotiable.

    All of this fundamentally changed what I deliver to engineering. It’s no longer a one-time product spec. 𝗜𝘁’𝘀 𝗮𝗻 𝗼𝗻𝗴𝗼𝗶𝗻𝗴 𝘀𝘆𝘀𝘁𝗲𝗺 𝗼𝗳 𝗱𝗲𝗳𝗶𝗻𝗶𝗻𝗴, 𝗺𝗲𝗮𝘀𝘂𝗿𝗶𝗻𝗴, 𝗮𝗻𝗱 𝗿𝗲𝗳𝗶𝗻𝗶𝗻𝗴 𝘄𝗵𝗮𝘁 “𝘄𝗼𝗿𝗸𝗶𝗻𝗴” 𝗮𝗰𝘁𝘂𝗮𝗹𝗹𝘆 𝗺𝗲𝗮𝗻𝘀.

    One thing building AI products has made clear: teams that define quality upfront don’t just ship better products. They move faster, because everyone is aligned on what they’re optimizing for and how to iterate toward it.

  • Airlines Are Banks. The Planes Are Just the Cover Story.

    The $28 billion business model hiding inside your boarding pass — and what it means if you’re building in this space.


    Here’s a fact that took me a full minute to process.

    During COVID, when Delta Air Lines needed emergency cash, they didn’t pledge their planes. Not their gates. Not their routes. Not their slots at JFK. They pledged their loyalty program. Delta borrowed $9 billion against SkyMiles. United raised $6.8 billion by securitizing MileagePlus. American got $10 billion using AAdvantage as collateral — the largest airline-backed financing in history.

    Now here’s the kicker.

    United’s MileagePlus, at the time, was appraised at $21.9 billion. United’s market cap? $9.8 billion. The frequent flyer program was worth more than double the airline itself. Delta’s SkyMiles? Valued at roughly $26 billion. American’s AAdvantage? Somewhere between $18 and $31.5 billion.

    Analyst Byrne Hobart did the math on Delta: without SkyMiles, the physical airline operation would be worth less than zero — negative $6 billion. Israel’s El Al once sold its Matmid frequent flyer scheme at a $500 million valuation while the airline’s entire market cap sat under $180 million.

    Read that again. The loyalty program. Worth more. Than the airline.

    As one Atlantic writer put it — airlines are “essentially financial institutions that fly airplanes on the side.”

    This is not a marketing story. This is a financial engineering story. And once you see the structure underneath it, you genuinely cannot unsee it.


    A Brief History of How We Got Here

    The airline loyalty story begins, like many great business pivots, with deregulation.

    When President Carter signed the Airline Deregulation Act of 1978, carriers suddenly had a real problem: how do you retain customers when routes are open and fares are competitive? Texas International Airlines took the first swing in 1979 — a crude system called “Payola Passes,” where passengers earned paper coupons for free flights. Charming, right? Western Airlines followed with its “Travel Bank” in 1980.

    But the program that changed aviation forever launched on May 1, 1981: American Airlines AAdvantage.

    The backstory is worth knowing. CEO Bob Crandall and VP Tom Plaskett originally conceived it as a frequent traveler discount. They pivoted to mileage accumulation after realizing a simple discount would be instantly matched by every rival. Smart move. American used its SABRE reservation system to identify its most frequent callers and pre-enrolled roughly 190,000 members before anyone else knew what was happening.

    United launched MileagePlus within days — their team had been caught completely flat-footed. Delta, Continental, and others scrambled to follow. By 1984, 75% of U.S. business travelers were enrolled in at least one program.

    The really transformative moment, though, came from banking. Continental linked a MasterCard to its frequent flyer program in 1986–87. American partnered with Citibank in 1987 to create what’s widely considered the industry’s first co-branded airline credit card.

    That single innovation would eventually generate more revenue than flying passengers. Let that sit for a second.

    If you map the evolution as a strategy table — and as a PM, I think you should — it looks like this:

    EraPrimary MetricStrategic StatusTech Focus
    1981–1995Miles FlownMarketing TacticMainframe databases
    1996–2010Partner AccrualProfit CenterGDS Systems
    2011–2020Spend-Based TiersFinancial SubsidiaryCRM + Data Warehousing
    2021–2030Lifetime Value (LTV)Lifestyle PlatformAgentic AI + NDC

    Each era is a fundamental rethink of what loyalty actually is. And each shift moved it further from “marketing tool” and closer to “the actual business.” The pattern is unmistakable if you look at it this way.


    The Currency-Minting Machine

    Unit economics that would make a fintech founder genuinely jealous.

    Okay. This is the section I’d ask you to lean in for.

    Here’s the core mechanism. Airlines create miles at a marginal cost typically below 0.5 cents per mile. They sell those miles to bank partners — Chase, Amex, Citi — for 1.5 to 3.0 cents each. The resulting gross margins: 53% for AAdvantage, 44% for MileagePlus, 39% for SkyMiles.

    In an industry where single-digit operating margins are considered excellent, the loyalty programs are running at 300–500% gross margins.

    Right?

    The economics work because banks are the real customers here — not the travellers. Over 70% of miles revenue for major U.S. programs comes from third-party partners, primarily credit card issuers. Delta’s American Express partnership alone generated $7.4 billion in 2024 — nearly equivalent to Delta’s entire operating profit — and is targeting $10 billion by 2029. United’s Chase partnership delivered over $5.3 billion annually. American’s Citi relationship generated $6.1 billion in 2024.

    Delta’s CEO Ed Bastian has noted that spending on Delta co-branded Amex cards approaches roughly 1% of entire U.S. GDP. One airline’s credit card. One percent of the American economy flowing through it. That’s not a loyalty program — that’s a financial institution with a runway attached.

    Then there’s breakage — the 14–18% of miles that are never redeemed. Pure profit. Money collected, no service delivered, no cost incurred. When Alaska Airlines tightened its expiration policy in 2008, it recognized $42.3 million in additional revenue overnight, cutting its net loss by 24%. McKinsey estimates 30+ trillion unredeemed miles sit in accounts worldwide — a deferred liability that airlines erode through controlled devaluation, functioning much like a central bank using inflation to quietly reduce real debt.

    Here’s the data in one view:

    Airline2024 Loyalty RevenueBank PartnerProgram Valuation
    Delta SkyMiles~$7.4B (Amex alone)American Express~$26–28B
    United MileagePlus~$5.3B+JPMorgan Chase~$22B
    American AAdvantage~$6.1BCiti (exclusive from 2026)$18–31.5B
    Southwest Rapid Rewards~21% of revenueChaseNot publicly valued
    Alaska/Atmos~16% of revenueBank of AmericaNot publicly valued

    The five largest U.S. carriers collectively generated $28 billion in loyalty revenue in 2024, averaging $35.48 per passenger — up from $25.71 just five years earlier.

    A Visual Approach Analytics study of 2024 operating data found something stark: no major U.S. airline would be profitable without loyalty program revenue. Delta’s 10.5% operating margin would flip to -2.5%. Southwest’s 1.2% margin would collapse to -19.9%.

    The planes are the cost center. The loyalty program is the business. The planes are, in a very real accounting sense, just the mechanism by which the loyalty program justifies its existence.


    The Aeroplan Saga: A Case Study in Separation Anxiety

    No case study illustrates the financial power — and the strategic risk — of loyalty programs better than Air Canada’s Aeroplan. And it’s worth going through properly.

    Created in 1984, Aeroplan was spun off via IPO in 2005 at a $2 billion valuation — the world’s first publicly traded loyalty program. Air Canada fully divested it by 2008, and the entity rebranded as Aimia Inc.

    Then came the reckoning.

    In May 2017, Air Canada announced it would not renew its Aeroplan contract. Aimia’s shares plummeted 63% in a single day. By January 2019, Air Canada — along with TD Bank, CIBC, and Visa Canada — reacquired Aeroplan for approximately CA$450 million plus $1.9 billion in future redemption liabilities.

    They sold it for roughly $688 million combined. They bought it back for less.

    The relaunched Aeroplan, debuting November 2020, became one of the world’s best-rated programs — and a cautionary tale about what happens when you try to separate loyalty from the parent airline. The lesson, if you’re thinking about this from a product or strategy lens: a loyalty program’s value is tightly coupled to the airline’s control over seat inventory, brand, and customer experience. Separate them and you create arbitrage opportunity for the airline and existential risk for the program operator. Keep them together, and you get a compounding flywheel.

    The Aeroplan story is also the reason why, when United structured MileagePlus as a separate legal entity (Mileage Plus Holdings, LLC) to secure its $6.8 billion COVID loan, it raised eyebrows. The SEC filing from that transaction revealed something fascinating: MileagePlus revenue had fallen only 2% during the 2008–09 recession while parent company revenue dropped 19%. Even in a crisis, the currency-minting machine kept running.


    Behavioral Engineering: Why Losing Platinum Feels Like a Breakup

    If the economics are the engine, behavioral psychology is the fuel.

    Modern loyalty programs don’t just reward behavior — they engineer it. Through a toolkit borrowed directly from behavioral science and game design, assembled with a level of precision that should honestly impress anyone who builds products for a living.

    Loss aversion is the big one. Members will overspend to maintain elite status because the emotional pain of losing lounge access is roughly twice as powerful as the joy of gaining it. One loyalty analyst put it plainly: losing Platinum status can feel like a breakup for frequent flyers. Airlines design status thresholds to sit just above natural spending levels, creating a perpetual treadmill where the next tier is always tantalizingly close — but never quite automatic.

    The goal-gradient effect amplifies this. As members approach a reward — say, 45,000 of the 50,000 miles needed — their motivation to earn the remainder increases dramatically. Airlines have gotten very deliberate about this: milestone rewards (bonuses for hitting sub-goals), choice benefits (letting elites select perks upon qualification), progress bars in the app, push notifications when you’re “almost there.” The mechanics are not subtle if you look for them.

    Endowed progress works on the front end. Pre-enrolling members with some initial points creates the illusion of momentum — you’re not starting from zero, you’re already 20% of the way there. Research shows this dramatically increases completion rates. You’re not acquiring a new customer. You’re continuing a journey they’ve already started.

    Social identity locks it in. Being a “Diamond Medallion” or “Million Miler” isn’t just a status — it’s an identity. Airlines reinforce this with exclusive boarding lanes, branded bag tags, and increasingly digital badges and social sharing features. The program becomes part of how members see themselves. That kind of identity stickiness is genuinely hard to dislodge.

    The combination is Skinnerian operant conditioning, dressed up in premium cabin livery.

    And yet — here’s the tension — Delta’s September 2023 attempt to raise elite thresholds and restrict Sky Club access triggered unprecedented backlash. CEO Ed Bastian admitted they “probably went too far.” But bookings and card acquisitions held steady. When you’ve built a $26 billion ecosystem with deep behavioral lock-in, you have significant pricing power even when customers are openly furious. The FlyerTalk community had already nicknamed Delta’s currency “SkyPesos.” They were still flying Delta.

    That’s the power of a well-built loyalty moat. And it’s worth studying.


    The Loyalty Paradox: More Revenue, Less Influence

    Here’s the structural tension that I think doesn’t get enough attention — and it matters if you’re thinking about where this goes next.

    McKinsey’s 2023 survey showed that airline programs’ ability to influence flier behavior declined between 2017 and 2023. Travelers belong to 3–4 programs simultaneously, with only 60% wallet share going to their “preferred” brand. When asked which company they’re most loyal to, Amazon received more votes than the top six travel players combined — despite having no traditional points program. Amazon. No miles. No tiers. No elite status. Just frictionless utility.

    At the same time, loyalty programs are generating record revenue.

    Less effective at changing behavior. More profitable as financial instruments. Simultaneously. This is the loyalty paradox — and it’s a structural tension that will eventually demand resolution. You can run a profitable program for customers who are only technically loyal, but not indefinitely.

    BCG’s “Loyalty Margin” framework explains why the paradox holds for now. Loyalty Margin = value of benefits to consumers minus cost to the program. Airlines enjoy enormous margins here because a free seat costs almost nothing to provide but is valued at hundreds or thousands of dollars by the consumer. Retailers offering 5% cashback have effectively zero loyalty margin by comparison. The spread is what makes the model work.

    But the consultants converge on the same forecast: Bain, McKinsey, BCG all agree that experience beats points going forward. Experiential factors are 2x more likely to influence purchase frequency than tangible benefits. The programs that survive the paradox will be the ones that evolve from earn-and-burn currency schemes into genuine lifestyle platforms.


    Kong vs. Godzilla: The Real Strategic Battle Underneath

    IdeaWorksCompany frames the competitive dynamic perfectly: “Kong vs. Godzilla.” Banks holding hundreds of millions of card accounts fighting airlines controlling the actual travel experience — for dominance over $1.1 trillion in annual U.S. travel spending.

    This framing matters because it’s where the existential risk actually lives.

    Airline loyalty is entwined with credit card economics in ways that create structural dependency. In the U.S., banks earn roughly 1.8–3% per swipe in interchange fees, and they funnel a significant portion back into co-brand rewards. Loyalty drives over 20% of Southwest’s revenue and 11–14% at Delta, United, and American.

    Planned U.S. regulations — like the Credit Card Competition Act — threaten to cut interchange fees or allow merchant surcharges. Barclays warns such changes could erode frequent-flyer rewards by channeling spend toward basic, no-reward cards. In regions where fees are already capped — the EU caps at roughly 0.3–0.9% — carriers must rely more on annual fees, fuel surcharges, or partner marketing than raw interchange to keep programs profitable.

    Banks control the card accounts and the spending data. Airlines control the travel experience and the seat supply. The winner of this contest determines whether loyalty programs continue growing at double-digit rates or face disruption from the very partners that fund them.

    For anyone building in this space: interchange regulation is not a hypothetical. It’s the single biggest macro risk to the loyalty business model as it currently exists. Your roadmap needs a Plan B. And if you don’t have one, that’s the conversation to start.


    The India Angle — And Why I Care About This

    A brief but important detour.

    In late 2024, Air India completed its merger with Vistara. Club Vistara is being folded into Air India’s Flying Returns — rebranded as “Maharaja Club” — with all tier statuses and points migrated. The goal: a single currency across Tata’s network, integrated co-brand programs, and consistent elite benefits that lift India’s program toward global best-practice standards.

    Bain & Google identified five distinct Indian traveler segments: Frequent Flyers ($17B spend), Budget Business ($20B), Experience-Oriented ($22B), Budget Group ($29B), and Occasional ($6B). This is a market where the loyalty playbook is still being written — and the stakes are enormous.

    I had the chance to work through a version of this problem firsthand. I was the national winner of Air India’s loyalty program case competition and the thing that struck me most — stress-testing their model across those five segments — was how the unit economics look completely different when you’re designing for a market that is simultaneously price-sensitive and aspirational. The breakage math, the tier psychology, the co-brand dependency — all of the fundamentals hold. But the calibration is an entirely different problem.

    The playbook exists. Applying it to India’s complexity is the interesting question. And it’s one the Tata Group is now in a unique position to answer with the Maharaja Club consolidation.


    Where It’s All Going: 2026–2030

    Five forces. Different stages of maturity. Here’s the honest version, not the press release version.

    Agentic AI is the most certain near-term shift. Not just AI that predicts — AI that acts. IDC predicts that by 2030, 30% of travel bookings will be executed by AI agents acting autonomously on behalf of travelers. Picture this: your flight is delayed, the agent detects it, rebooks you on the next available option matching your preferences, issues a lounge voucher, adjusts your hotel check-in time, and sends you a notification summarizing what it did — before you’ve even opened the app. McKinsey reports agentic AI could create tailored loyalty rewards and proactively deliver them based on real-time member context, boosting engagement and lifetime value. The airline that builds the best agent wins. Full stop.

    Subscription models are gaining traction. Frontier’s GoWild! Pass ($599 annually for unlimited flights, now in its third year), Alaska’s regional Flight Pass, WizzAir’s monthly subscription, AirAsia’s unlimited ASEAN pass — all signal a Netflix-like shift in how loyalty is priced and consumed. British Airways launched an Avios subscription plan. Mastercard identifies paid subscriptions as “a new and effective revenue stream.” This is early-stage but directionally important.

    Sustainability is becoming table stakes, not a differentiator. Qantas’s Green Tier — where members earn “leaves” for sustainable actions like carbon offsetting, eco-hotel stays, and recycling — is the most sophisticated implementation so far. Lufthansa’s Miles&More rewards members who purchase sustainable aviation fuel with up to 80% extra miles. Etihad’s “Conscious Choices” rewards reduced baggage and green actions. With 73% of Gen Z travelers willing to pay more for sustainable options, green loyalty will be mandatory by 2030. By then, a formalized “carbon tier” will be table stakes across major programs.

    Gen Z is forcing a fundamental rethink. Only 65% of Gen Z and 70% of Millennials are enrolled in loyalty programs, compared to 89% of Boomers. Nearly half switch airline loyalty within a single year. They want instant rewards, experiential redemptions, cross-brand flexibility, mobile-first experiences. Gen Alpha (born 2010–2025) already influences 70% of family vacation decisions and values hyper-personalized, tech-integrated planning. By 2030, these generations will represent half of all U.S. leisure travel. Airlines that continue designing programs for road warriors will lose this demographic entirely — and they may not notice until it’s too late.

    Lifestyle ecosystem integration is extending loyalty into daily life. Delta SkyMiles now lets members earn miles on Starbucks purchases, Lyft rides, and Instacart grocery orders. A latte earns travel miles. A grocery run earns travel miles. The goal is to make the loyalty program a “daily utility” — not a travel perk you think about four times a year. BCG identifies this evolution from earn-and-burn into lifestyle membership clubs as the defining trend of the next five years.

    By 2027, fixed award charts will likely be extinct. Singapore Airlines has already launched KrisPay, the world’s first blockchain-based airline loyalty digital wallet. The direction is clear: loyalty becomes the operating system for travel, not a rewards scheme bolted on top.


    The PM Synthesis: Three Layers

    If you’re a PM, a consultant, or a strategy person who’s made it this far — here’s what I think the synthesis actually boils down to. Three layers, the way I’d frame this.

    Layer 1 — The core insight is arbitrage. Airlines mint a virtual currency at near-zero cost and sell it at 300–500% markup. Everything else — the behavioral engineering, the gamification, the tier architecture, the app UX — is in service of maintaining and expanding that spread. The moment you understand that, every strategic decision in this space looks different. Route planning, cabin investment, technology budget — all of it should be evaluated partly through the lens of loyalty program economics.

    Layer 2 — The loyalty program is the real business. Not a feature of the airline. Not a retention tool. The business. The planes are the mechanism by which the loyalty program justifies its seat inventory. This is how Delta thinks about it. It’s how the entire U.S. industry has quietly come to operate. If you’re working in or adjacent to this space and you’re still treating loyalty as a marketing function, you’re solving the wrong problem.

    Layer 3 — The paradox demands resolution. Programs are becoming less effective at changing behavior even as they generate record revenue. That tension can’t hold indefinitely. The programs that resolve it — through genuine experiential design, agentic AI, and lifestyle ecosystem integration — will define the next era. The ones that don’t will find themselves running very profitable programs for customers who are only technically loyal. There’s a difference, and the market will eventually price it in.

    The 2030 blueprint, if I were building it: invest in ML and next-best-action engines. Build open ecosystems via APIs with non-airline partners. Gamify milestone rewards that tap behavioral biases without crossing into slot-machine territory — there’s a line, and Duolingo has probably crossed it for most users. Embed sustainability. Modernize the tech stack: cloud CRM, CDPs, zero-party data collection. Track profits per member, not just membership counts. And above all — design for the segment of one. Not Gold/Silver/Platinum. One person, one context, one next-best action, in real time.

    The planes, as it turns out, are almost beside the point.


    Further Reading


    If you’re building in the loyalty, fintech, or travel space — what’s the piece of this model that nobody in your organisation actually talks about? I’d genuinely like to know. Drop it in the comments.

  • I Failed A1 German Mock Test With a 500-Day Duolingo Streak. So, I Built My Own Language Learning App.

    And learned the most important lesson about vibe coding along the way.

     I believe in learning at least a little bit of the local language of wherever I live – even if it means suffering through embarrassingly broken conversations. To my surprise, people have usually been super supportive of my attempts rather than laughing at my faults.

     So, when my move to Germany became certain, I started learning Deutsch. I racked up a 500+ day Duolingo streak and thought I could clear the A1 exam with no sweat.

     Then I tried a mock test. Failed miserably.  Turns out, I’d gotten into the habit of logging in for 1-2 lessons a day just to keep the streak alive – without actually progressing enough to pass anything. The gamification had done its job too well: I was playing the game of rewards, not the game of learning.

    This isn’t just hindsight. I extensively studied gamification during my elective at IIM Bangalore and gamification of IIMB’s e-learning app was literally my final project. I understand the merits of gamifying learning. But there’s a line where over-gamification kills the joy of learning and turns education into a dopamine slot machine. Duolingo had crossed that line for me.

     The Search for Something Better

      I needed a tool that was:

      – Gamified enough to keep me hooked

      – Aligned to the CEFR curriculum so I’d actually pass the exam

      – Able to bookmark words and phrases that just wouldn’t stick despite seeing them multiple times

      – A tutor I could ask custom questions to

      – Exam-oriented: covering all four sections of a German exam (Hören, Sprechen, Lesen, Schreiben) after every chapter  

     Professional online courses bored me fast. So, I began the quest of finding a better interesting way of language learning (preferably free😉) .  I had the luck of finding a bunch of AI-powered language sites, but I couldn’t maintain consistency with any of them

      So, I thought: why not build it myself using claude code? One that is personalized to my needs and tastes.

      The 5-Line Prompt Disaster

     I fired up Claude and gave it a roughly 5-line description of what I wanted. Told it to “ask me 3 questions and take whatever assumptions it needs” and build me a web app.

      And Claude did build something. Really scrappy. Poor UX. Barely functional.

     I kept giving more generic instructions: “do this,” “I want all these implemented” only to get slightly different UIs with different broken elements each time. I was going in circles.

    I was about to give up. Moved on to other tasks. And then it hit me.

      The Epiphany

     As a software engineer, I used to program every bit of instruction with precise syntax that came from detailed documentation, from managers, from specs. And as a PM, I wrote those docs PRDs and TRDs with every workflow thought through, every edge case covered, in excruciating detail.

     What miracle was I expecting from a 5-line prompt with “take your own assumptions”?

     That question changed everything.

     The 3-Hour Brainstorm

    I went back to the drawing board. This time, I told Claude: “… This is my idea. Interview me using the AskUserQuestion tool. Let’s build the PRD and TRD together. Do not write code yet.”

    What followed was three hours of answering one question after another — the same excruciating detail I’d put into any product spec, just not in programming syntax or even specific PRD formats. In just plain English, I kept answering until Claude rate-limited me, then I waited impatiently for the window to reopen.

      Every question forced me to think through trade-offs:

      – If I use this database, what happens? do I need this server?

      – Could I make it fully front-end and skip a backend?

      – What about voice? (Thanks to my professional experience, I understood the complexity and cost of real-time voice agents – TTS, STT, the whole stack – so I decided to skip the Sprechen section for the prototype.)

      – I had already collected enough free A1 curriculum resources from my own prep. Fed it all in.

      Et voilà. The first real prototype was functional, professional, had solid UI/UX, and actually did what I asked.

    Does it have bugs? Yes. Are there sections that need more attention? Absolutely. But the gap between the broken toys Claude gave me before and the functional product we built together after that brainstorming session was miles apart.   

      The Real Lesson About Vibe Coding

      Here’s what I got wrong about AI-assisted development:

      The trade-off decisions, the tech stack choices, the UX decisions; all of it still requires the same painstaking detail that a PM needs to think through and an engineer needs to implement. What disappeared is the pain of remembering syntax. What disappeared is being limited by framework knowledge. I could just converse in plain English.

      What didn’t disappear — what can’t disappear — is the thinking. LLM coding agents (Claude code, Gemini CLI, Codex etc.) are not there for outsourcing the thought process but helping think better & consider way more options than you normally would.

     These tools turned the process from solo problem-solving into a two-way brainstorming session with a mentor-like collaborator that helps you understand the impact of every decision. You still make every call. You make sure all the puzzle pieces fit together. You just make them through conversation instead of code.

    That was a pivot in my vibe-coding journey: not a realization that AI replaces thinking, but a profound understanding of exactly where I stay relevant as a PM and engineer – and where AI removes the friction.

    The price of building software has plummeted; the era of truly personalized software is here. And is here to stay!

     The German Buddy along with a summarized version of my marathon conversation threads with Claude, if you want to see the brainstorming in action.

    Note: I am still working on ironing out some bugs & issues. I’ll try to fix them & publish on Github. I’ll also try to host the app soon for people to try it out.

    P.S. That was only a mock test (which I didn’t clear). Happy to say I did pass my German A1 with this buddy’s help and I’m now onto A2.

  • I Automated My Job Search, Then Deliberately Broke the “Apply” Button

    I built an AI tool to automate my job search.
    Then I intentionally stopped it from applying anywhere.

    Not to move faster. To make better decisions.

    The problem: high effort, low signal

    Ten days into my job search, I realized something was off.

    I was spending more than two hours a day across LinkedIn, Xing, StepStone, and Glassdoor. Multiple logins. Duplicated listings. Half-maintained notes and spreadsheets.

    Despite all that effort:

    • ~50 listings reviewed per day
    • ~8 applications sent

    The bottleneck wasn’t effort. It was signal quality.

    Most of my time went into false starts. Roles that looked promising until you noticed a German language requirement halfway through. Or a seniority mismatch buried at the end of the JD.

    The scroll felt productive. It wasn’t.

    The actual constraints

    Once I stepped back, the problem reduced to three concrete constraints:

    1. Recency
      Job boards don’t reliably prioritize fresh listings. I was spending time on roles that were likely already filled.
    2. Relevance
      Titles are noisy. “Product Manager” spans a massive experience range, and you only know which one it is after reading the JD.
    3. State management
      The same role appears on multiple platforms. I couldn’t reliably tell what I’d already seen, shortlisted, or applied to.

    That’s when I stopped searching and started building.

    Here’s how it works:

    1. Searches multiple job platforms simultaneously using Exa, a search API designed for this kind of structured content extraction.
    2. AI filters each listing against my criteria. Role type, experience level, location, language requirements. Claude Haiku reads each job and decides if it’s a match.
    3. Extracts metadata like posting date, remote/hybrid/onsite, and whether the position is still active.
    4. Extracts relevance score based on my CV’s match to the job description
    5. Deduplicates across sources. Same job posted on LinkedIn and Indeed? Shows up once.
    6. Exports to Excel with columns for my notes, application status, and tracking.
    7. Backs up the sheet before each run so I never lose my notes.

    Total build time: ~1.5 hours.

    Results

    First run:

    • 127 raw listings
    • 97 after deduplication
    • 43 after filtering

    Two-thirds of the listings were never worth my attention.

    The important part wasn’t efficiency. It was cognitive load.

    Instead of scanning 100+ listings to find 20 usable ones, I now review ~40 pre-qualified roles, sorted by recency, with my notes preserved across days.

    The trade-offs

    Every tool has trade-offs. I made mine deliberately.

    Haiku over more powerful models. I used Claude Haiku 3, the cheapest model in the Claude family. Smarter models exist, but Haiku is good enough for this task. It correctly identifies whether a JD matches my criteria. That’s all I need. Cost per run: less than $0.01.

    Batch processing over real-time alerts. I run the script once a day. No push notifications, no live feed. Fresh listings once a day is plenty.

    Excel over a custom dashboard. I wanted to build something and ship it quickly, not spend weeks on a SaaS product. Zero learning curve. I already live in spreadsheets. The output is a file I can open, filter, sort, and annotate without building a UI.

    The feature I chose not to build:

    My first instinct was to go further. Auto-fill applications. Pre-populate cover letters. Maybe even auto-submit.

    I stopped myself.

    Because a job application isn’t just a form. It’s a representation of me. No company is looking for a bot that can fill fields quickly. They’re looking for someone who understood the role, thought about the team, and made a conscious decision to apply.

    I didn’t want my job search to become mechanical. I wanted it to have intention. To reflect how I think, what I’ve done, and what I’m actually excited about.

    So, I broke the Apply button on purpose.

    The scraper handles discovery. Every application decision is still mine.

    What changed

    Before, I spent entire days scrolling. Twenty listings reviewed. Eight applications sent. Exhausted by mis-fits. Constantly unsure of what I’d already seen or applied to.

    Now, I spend about thirty minutes reviewing a filtered list. I apply to roughly the same number of roles, but each one is deliberate. Each cover letter is written for that role. Each resume tweak has a reason behind it. I’m not reacting anymore. I’m choosing.

    The quality of each application went up. More importantly, I felt good about every single one I sent.

    The line I drew

    Automate the noise. Stay present for the signal.

    The soul-crushing scroll through irrelevant listings is gone. The meaningful decisions stayed human.

    The code is open source. You can fork it, adapt the criteria, and run it yourself.

    GitHub Repo Link: https://github.com/ruby-catharin/ai-job-search

    What would you never automate in your job search?