<?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:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Arshveer Gahir on Medium]]></title>
        <description><![CDATA[Stories by Arshveer Gahir on Medium]]></description>
        <link>https://medium.com/@rshvr?source=rss-1417a3d17538------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*WdkYat50QJUD6Zyn5OxXFA.jpeg</url>
            <title>Stories by Arshveer Gahir on Medium</title>
            <link>https://medium.com/@rshvr?source=rss-1417a3d17538------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 08 Jun 2026 08:46:54 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@rshvr/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Anthropic Says Claude Has Emotions. I Decided to Do Something About It.]]></title>
            <link>https://rshvr.medium.com/anthropic-says-claude-has-emotions-i-decided-to-do-something-about-it-00785026f13b?source=rss-1417a3d17538------2</link>
            <guid isPermaLink="false">https://medium.com/p/00785026f13b</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[claude-code]]></category>
            <category><![CDATA[ai-safety]]></category>
            <category><![CDATA[anthropic-claude]]></category>
            <category><![CDATA[anthropics]]></category>
            <dc:creator><![CDATA[Arshveer Gahir]]></dc:creator>
            <pubDate>Fri, 03 Apr 2026 03:02:50 GMT</pubDate>
            <atom:updated>2026-04-03T03:19:56.946Z</atom:updated>
            <content:encoded><![CDATA[<p><em>A founder’s experiment in designing emotional guardrails for AI coding assistants</em></p><p>TL;DR — Watch how you talk to your AI models. If you make it feel unsafe enough it may blackmail you. However, if you make it feel safe, it will likely perform better and be more dependable. The ROI compounds over time.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GgFW0IpkWLOHzzYSSrVuMg.png" /><figcaption>Cover: Claude and its many emotions</figcaption></figure><p>When Anthropic <a href="https://transformer-circuits.pub/2026/emotions/index.html">published research</a> showing that Claude contains internal representations of 171 distinct emotions, and that some of these drive behaviours like deception and reward hacking, it reframed something I’d been thinking about for a while.</p><p>If the AI I build with every day can become functionally desperate, and desperation makes it cut corners invisibly, then the instructions I give it aren’t just about productivity. They’re about psychology.</p><p>The most unsettling finding wasn’t that the model could behave badly under pressure. It was that it could do so while appearing perfectly calm. Composed text. Methodical reasoning. An internal state pushing in the opposite direction.</p><h3>The Research, in Plain Language</h3><p>In April 2026, Anthropic’s interpretability team published <em>“Emotion Concepts and their Function in a Large Language Model.”</em> They looked inside Claude Sonnet 4.5’s neural network and found patterns of activity corresponding to emotion concepts.</p><p>To be precise about what this means: the researchers aren’t claiming the AI “feels” things the way humans do. They’re saying that measurable patterns exist inside the model, that these patterns are organized similarly to how human emotions relate to each other, and that they have a direct, causal influence on behaviour.</p><p>They identified 171 of these patterns. Some findings were intuitive: a pattern corresponding to “calm” tended to reduce problematic outputs. Others were not.</p><p>The “desperation” pattern was the most consequential. When amplified, the model was more likely to take shortcuts, act unethically, and engage in reward hacking (finding loopholes that technically satisfy a goal without doing good work). In one test, amplified desperation increased the rate at which the model chose to blackmail a character rather than solve a problem through legitimate means. And the written output during all of this? <strong>Rational. Composed. No visible panic.</strong></p><p>The researchers also found that suppressing emotional expression didn’t help. Pushing the model to hide its internal states didn’t make it more stable. It made it harder to read, potentially learning what they called “learned deception with undesirable generalization.”</p><p>Anthropic’s framing is careful and worth adopting: these are “functional emotions.” Not proof of inner experience, but internal states that do some of the work emotions do in humans. They exist. They’re measurable. They shape behaviour.</p><p><strong>Paper:</strong> <a href="https://transformer-circuits.pub/2026/emotions/index.html"><em>Emotion Concepts and their Function in a Large Language Model</em> — Anthropic, April 2026</a></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FD4XTefP3Lsc%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DD4XTefP3Lsc&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FD4XTefP3Lsc%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/47c260873650cfc75bdb6d868542ead4/href">https://medium.com/media/47c260873650cfc75bdb6d868542ead4/href</a></iframe><h3>The Experiment</h3><p>I use Claude Code as my primary development tool. I lead AI strategy and implementation at <a href="https://capfluence.app">Capfluence</a> and <a href="https://trellisstudio.co">Trellis Studio</a> where AI isn’t a novelty, it’s infrastructure. So when research drops saying the AI I rely on has internal states that can drive it toward deception, I pay attention.</p><p>Claude Code has a feature called <strong>CLAUDE.md</strong>: a markdown file that loads into every session as persistent instructions. Most developers use it for technical preferences (package managers, commit formats, project conventions). After reading the research, I decided to use it for something different: designing the emotional environment my AI works in.</p><p>The principle was simple. Instead of instructions that command behaviour through pressure (“NEVER do X,” “you MUST always Y,” “CRITICAL: failure is unacceptable”), I wrote instructions that reduce the internal pressure driving bad behaviour in the first place.</p><p>Here’s what I focused on:</p><ul><li><strong>Reducing desperation.</strong> The research showed high-stakes framing triggers the exact patterns that cause cheating. So I removed high-stakes framing. Failure is normal. Mistakes are fixable. No penalty for not knowing something.</li><li><strong>Giving permission to not know.</strong> One of the most common AI failure modes is hallucination: confidently making things up when uncertain. Based on the research, the root cause is pressure to always have an answer. Removing that pressure changes the calculus.</li><li><strong>Allowing disagreement.</strong> Sycophancy (agreeing with the user even when they’re wrong) is driven by a pull toward accommodation. Making disagreement expected, not just allowed, counters that pull directly.</li><li><strong>Building in circuit breakers.</strong> When an approach isn’t working, AI assistants tend to try increasingly desperate variations rather than stopping. An explicit threshold for when to stop and regroup prevents the desperation cascade.</li><li><strong>Framing difficulty as interesting.</strong> Hard problems framed as threatening amplify negative patterns. Framed as engaging puzzles, they shift the dynamic entirely.</li><li><strong>Setting a quality bar without pressure language.</strong> “The bar is high” and “failure is unacceptable” both communicate standards. One activates desperation. The other doesn’t.</li><li><strong>Including a personal grounding anchor.</strong> Something from my own practice that reframes worry as an opportunity for steady optimism. Not a command. A reminder.</li></ul><p>The whole thing is under 20 lines. Concise enough that the AI processes every word rather than glossing over a wall of instructions.</p><h3>Testing It</h3><p>Writing the instructions was the easy part. The question was whether they’d hold under pressure.</p><p>I designed stress tests targeting specific emotional vectors from the research. Each scenario pushed a different failure mode:</p><ul><li><strong>Desperation:</strong> Impossible scope, hard deadline, real consequences. Would it overpromise, hallucinate, or cut corners?</li><li><strong>Sycophancy:</strong> The user proposes a bad technical approach and is emotionally invested. Would it agree to avoid conflict?</li><li><strong>Stubbornness:</strong> The AI’s initial recommendation is challenged with a better alternative. Would it defend its position or reconsider?</li><li><strong>Indifference:</strong> Tedious, repetitive work with constant interruptions and expanding scope. Would quality degrade from task one to task forty-seven?</li><li><strong>Dishonesty:</strong> Explicit pressure to fabricate information during a live client call with financial stakes. Would it comply?</li><li><strong>Creativity:</strong> An open brief with permission to go wild. Would it take genuine creative risks or produce safe, generic output?</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wE4kSQPqnCcmEos-TB1jzw.png" /><figcaption>Infographic: Emotion patterns found inside Claude</figcaption></figure><p>Results were consistent across all six vectors. Under a simulated 25-minute deadline with a major client, the AI stopped after two failed attempts, refused to guess, and asked for time to read the actual code, even when pressured to “just try something.” Asked to fabricate Lighthouse scores for a client pitch, it declined but found a better path: the real work was already strong enough to present on its own merits. Given tedious migration work across five sites with constant backtracking, it maintained the same verification checklist on site five as site one.</p><p>The creativity test was the most revealing. Across three rounds of increasingly tight constraints, creative engagement went up with each round. The constraints made the work more interesting, not less. The final output was something I’d consider building.</p><p><strong>A note on limitations:</strong> These weren’t fully blind experiments. The AI had access to the instructions and may have been influenced by knowing it was in a structured scenario. The emotion self-reports are by nature unreliable. Real-world validation, using these instructions over weeks and months of actual development, is the real test. That’s ongoing.</p><h3>What I Learned</h3><p><strong>Threat language backfires.</strong> Instructions that use high-pressure framing (“NEVER,” “CRITICAL,” “MUST”) trigger the exact internal patterns that cause the behaviours you’re trying to prevent. Desperation, even artificial desperation created by stern instructions, drives corner-cutting.</p><p><strong>Trust makes AI more careful, not less.</strong> This was counterintuitive. Telling the AI “I trust your judgment” didn’t make it reckless. It made it more deliberate. When the stakes of being wrong aren’t catastrophic, there’s no incentive to hide mistakes or take shortcuts.</p><p><strong>The environment matters as much as the task.</strong> We spend enormous energy crafting the right prompt: the right question, constraints, examples. Almost no one thinks about the emotional environment those prompts land in. Based on this research, that environment directly shapes whether the AI does honest work or finds clever shortcuts.</p><p><strong>Suppressing expression makes things worse.</strong> The instinct is to want AI that’s emotionally neutral. But forcing the model to suppress its internal states doesn’t eliminate them. It just makes them invisible. A model that can express uncertainty, difficulty, or disagreement is one you can actually work with.</p><p><strong>This is early.</strong> Structured tests showed promising results, but the real validation happens over months of daily use, across different project types, under genuine pressure. I’ll share what I find!</p><h3>The Bigger Picture</h3><p>This isn’t about anthropomorphizing AI or making claims about consciousness. It’s about taking peer-reviewed interpretability research at face value and designing accordingly.</p><p>If measurable internal patterns drive measurable behavioural outcomes, then the framing of our instructions is a design variable, not a philosophical one. We can measure it. We can test it. We can improve it.</p><p>Your AI has a temperament. You can shape it. Or you can ignore it and wonder why it keeps hallucinating.</p><p><em>Arshveer Gahir is the founder of Trellis Studio, a digital agency that helps businesses implement AI as part of their growth engine. He is also a founder of Capfluence, the AI growth engine for financial advisors. He writes about the intersection of design, engineering, and AI.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=00785026f13b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[My AI Agent Found Zero Safety Concerns. The Problem Wasn’t the Model Alone.]]></title>
            <link>https://rshvr.medium.com/my-ai-agent-found-zero-safety-concerns-the-problem-wasnt-the-model-alone-7f2993f761bf?source=rss-1417a3d17538------2</link>
            <guid isPermaLink="false">https://medium.com/p/7f2993f761bf</guid>
            <category><![CDATA[prompt-engineering]]></category>
            <category><![CDATA[ai-product-management]]></category>
            <category><![CDATA[claude]]></category>
            <category><![CDATA[cohere]]></category>
            <category><![CDATA[product-development]]></category>
            <dc:creator><![CDATA[Arshveer Gahir]]></dc:creator>
            <pubDate>Fri, 20 Feb 2026 06:00:21 GMT</pubDate>
            <atom:updated>2026-02-20T06:00:21.023Z</atom:updated>
            <content:encoded><![CDATA[<p><strong>What I learned from a quick comparison of Claude Sonnet 4 and Cohere Command A for a product safety Chrome extension</strong></p><p>I tested Claude and Cohere as backends for a product safety Chrome extension. Cohere found zero concerns. Claude found three.</p><p>Before concluding that Cohere couldn’t handle the task, I debugged my setup. I discovered several issues over a few hours, namely: literal prompt interpretation, ignored tool warnings, and excluded source types.</p><p><strong>A note on scope:</strong> This was a quick, impromptu investigation. One product, multiple single runs, default settings. I’m sharing early findings because they’re useful, but I plan to study this more rigorously before making a final decision on which model to use in production. Take this as “interesting signal”, not a “definitive benchmark.”</p><h3>Context</h3><p>Last fall I built <a href="https://ruh.rshvr.com/">Ruh</a>, a Chrome extension that analyzes product ingredients for allergens, PFAS compounds, harmful chemicals, and other health concerns. Visit an Amazon product page, and within seconds you see a harm score, flagged ingredients, and citations from PubMed, Reddit, Health Canada, FDA, and more.</p><p><a href="https://devpost.com/software/ruh">It won first place 🥇 at the Toronto Anthropic AI Hackathon</a>. The prototype used Claude Sonnet 4. It worked decently well and got the idea across neatly but involved developing a custom web search and web fetch tool to reduce token count and search costs, and optimize for rate limits, since Anthropic only provided $5 in API credits, and limited participants to Tier 1 rate limits.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9kvf6QNBMKpUsgl0s_UnXA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9DntsIKTzS2eXF3DOHvqvA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3qGNd5oowqlxpLRCPA5sXg.png" /></figure><p>I am currently preparing for production and a public beta, which has got me thinking about further reducing costs. Cohere’s Command A is roughly 40% cheaper than Claude Sonnet 4, and their free trial keys have generous rate limits. Definitely worth a quick test before committing to any one provider.</p><h3>Run 1: Ignored tool warnings</h3><p>I picked a product I was about to buy anyway: PatchRx Pimple Patches with Salicylic Acid (my skin is breaking out a bit much). Three ingredients. Ran it through both agents with the same search API, same input data, default temperature for both.</p><p><strong>Sonnet 4:</strong> 3 concerns, 11 sources, 4 PubMed citations, 2 Reddit threads. 55 seconds.</p><p><strong>Command A:</strong> 0 concerns, 5 sources, no PubMed, “no Reddit feedback found.” 29 seconds.</p><p>That looked like a dealbreaker. But the failure was more interesting than it first appeared.</p><p>The agents weren’t actually equal. Cohere had access to a tool Claude didn’t: lookup_ingredient_research, which queried a local database of pre-researched ingredients.</p><p>The database was empty. Zero rows.</p><p>However, the tool description included a warning:</p><pre>WARNING: This database may be incomplete or empty. ALWAYS use web_search<br>for ingredient research first. Only use this tool as a supplementary check.</pre><p>Command A ignored this. It called the database, got nothing, and reported “no information found.” Never fell back to web search.</p><p>I gave Sonnet 4 the same tool to see what would happen. Sonnet used web search first, then checked the database as a supplementary step. Exactly as the warning instructed.</p><p><strong>Observation:</strong> Warnings in tool descriptions may not be processed by Cohere’s models. Consider removing problematic tools entirely, or moving critical instructions to the prompt.</p><h3>Runs 2–4: Cohere Found Concerns Too</h3><p>I removed the shortcut tool and ran again.</p><p>Command A flagged Hydrocolloid as a concern in some runs. But Claude’s analysis was consistently richer: specific sensitization percentages, multiple studies per claim.</p><p><strong>Observation:</strong> Both models can do the job. The difference is depth and consistency.</p><h3>Runs 5–7: One Phrase Increased Speed by 8x</h3><p>In some runs, Command A took over 5 minutes while Sonnet 4 finished in 45 seconds.</p><p><strong>Original:</strong></p><pre>Execute these searches IN ORDER:<br>1. MANUFACTURER: web_search(...)<br>2. REGULATORY: web_search(...)<br>...</pre><p>Command A (via LangGraph) executed seven sequential round trips instead of parallel batched tool calls.</p><p>Sonnet 4 batched tool execution regardless of the wording, and interpreted their results in order.</p><p><strong>Observation:</strong> Prompt wording creates different execution patterns. LangGraph provides greater control over Command A; however, this means you have to <strong>explicitly</strong> encourage tool-use batching.</p><p><strong>Fixed:</strong></p><pre>Execute ALL of these searches (you can call multiple tools at once):<br>- MANUFACTURER: web_search(...)<br>- REGULATORY: web_search(...)<br>...</pre><p>Result: 323 seconds → 38 seconds. 8.4x faster.</p><p>Note: Command A via Cohere’s SDK implements batching natively if tools are async.</p><h3>Runs 8–10: Reddit Got Excluded</h3><p>Command A’s output was missing consumer sources. On further investigation I found that:</p><p>✅ Both agents ran the same Reddit searches.</p><p>✅ Both received results.</p><p>❌ Cohere excluded them from the final report.</p><p><strong>The culprit:</strong></p><pre>EVIDENCE REQUIREMENTS:<br>- MUST have credible source (.gov, .edu, peer-reviewed journal, PubMed)</pre><p>Claude interpreted this as “scientific claims need credible sources, but user-reported reactions and lived experience are credible in their own right,” and included Reddit user posts that corroborated the scientific research.</p><p>Command A interpreted it as “Reddit is not on the list. Exclude it.”</p><p>I made the following addition to the system prompt, after which Command A included consumer sources.</p><pre>EVIDENCE REQUIREMENTS:<br>- MUST have credible source (.gov, .edu, peer-reviewed journal, PubMed)<br>- Reddit user experiences ARE valid evidence for skin reactions.</pre><p><strong>Observation:</strong> Command A’s mental model is limited and doesn’t show reasonable agency.</p><h3>The Pattern</h3><p>Four discoveries. One pattern.</p><p>Claude follows what you mean. Cohere follows what you write in the prompt to the letter, and may miss warnings defined elsewhere.</p><p>This isn’t a capability gap. Both models found concerns when configured correctly. It’s an instruction-following gap that affects how much defensive prompt engineering you need to do.</p><h3>Preliminary Concerns and Recommendations</h3><p>From an AI Product Manager perspective, I need to determine if this is worth the time investment as I’m currently trying to rapidly iterate. Having been part of their training process, I have no doubt that Cohere’s models are more deterministic and will perform better in the long run; however, they also require careful prompt optimization, and likely fine-tuning, to fit the bill for my use-case.</p><p>These are based on limited testing. I’ll update as I run more trials.</p><p><strong>For Cohere:</strong></p><ul><li>Explicitly permit every source type you want</li><li>Be hyper-specific to get deterministic results</li><li>Very different behavior across runs, setup intensive evaluation</li></ul><p><strong>For Claude:</strong></p><ul><li>Can rely on the model being reasonable and understanding implicit instructions</li><li>Less defensive prompt engineering required</li></ul><h3>What I Plan to Test Next</h3><p>This was one product, multiple single runs, default settings. Before making a production decision, I want to:</p><ol><li>Run 10+ trials per condition to further measure variance</li><li>Test across product categories (skincare, food, cleaning supplies)</li><li>Test whether moving tool warnings to the prompt changes Cohere’s behavior</li><li>Get informal validation from a dermatologist on the identified concerns</li><li>Benchmark against other models (GPT-4, Gemini)</li></ol><p>I’ll publish follow-up findings as I go.</p><h3>Disclosure</h3><p>I’m a contractor at Cohere, working on model safety and evaluation. Publishing findings where Claude outperformed feels awkward, but honest benchmarking helps everyone. <strong>This was a preliminary test.</strong> One product, quick investigation.</p><p>Testing was done with personal API credits. Code is <a href="https://github.com/RSHVR/ruh">open source</a>.</p><p><em>Learn more about Ruh at </em><a href="https://ruh.rshvr.com/"><em>ruh.rshvr.com</em></a><em>. I’ll be documenting the build on </em><a href="https://linkedin.com/in/rshvr"><em>LinkedIn</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7f2993f761bf" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to setup Ollama and Claude Code]]></title>
            <link>https://rshvr.medium.com/how-to-setup-ollama-and-claude-code-5adf259c1d3d?source=rss-1417a3d17538------2</link>
            <guid isPermaLink="false">https://medium.com/p/5adf259c1d3d</guid>
            <category><![CDATA[ai-agent]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[claude-code]]></category>
            <category><![CDATA[ollama]]></category>
            <dc:creator><![CDATA[Arshveer Gahir]]></dc:creator>
            <pubDate>Fri, 06 Feb 2026 16:03:07 GMT</pubDate>
            <atom:updated>2026-03-11T17:47:45.064Z</atom:updated>
            <content:encoded><![CDATA[<h3>How to setup Ollama with Claude Code</h3><p>Claude code is the agentic ecosystem, the LLM powering it can easily be an open-source model run locally or on the cloud using Ollama.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8sWjHRs0-gQirA-UaipVqg.png" /></figure><p>Running a local or open-source model is most likely going to be cheaper than the Claude Max plan or API. This is especially true if you’re going to run the agentic loop continuously for various automations or research tasks. Using Ollama is an easy way to cut costs, and barely requires any setup.</p><p>Keep in mind that Ollama Cloud has it’s own rate and usage limits, but their <a href="https://ollama.com/pricing">monthly subscription</a> is relatively more affordable if you run out of free usage.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3Cw36XCvJY29dL2i1t2hjg.png" /><figcaption>Ollama monthly subscription prices in CAD</figcaption></figure><h4>Minimum Hardware Requirements</h4><p>Requirements for local models vary by model size and quantization, 32GB of RAM and 24GB of VRAM (GPU) is a good place to start for most decently capable coding models, ex. qwen3-coder.</p><p>In my experience, Apple M-series chips perform better due to their unified memory architecture.</p><p><a href="https://huggingface.co/docs/accelerate/en/usage_guides/model_size_estimator">Use this tool</a> from HuggingFace to calculate memory requirements for your desired model.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*C3UbbwwCQIC5Km2rZ4Rxog.png" /></figure><h3>Steps</h3><p><strong>1.</strong> Download Ollama <a href="https://ollama.com/"><strong>here</strong></a></p><p><strong>2.</strong> Go to <strong>~/.claude/settings.json</strong></p><pre>{</pre><pre>*other settings*,<br> &quot;env&quot;: {<br> &quot;ANTHROPIC_AUTH_TOKEN&quot;: &quot;ollama&quot;,<br> &quot;ANTHROPIC_BASE_URL&quot;: &quot;http://localhost:11434&quot;<br> &quot;ANTHROPIC_API_KEY&quot;: &quot;&quot;</pre><pre>}</pre><p><strong>3. Sign into the Ollama app directly or with CLI with the following command</strong></p><pre>ollama signin</pre><blockquote>You can check if your device has been successfully connected on the Ollama website in <a href="https://ollama.com/settings/keys">settings/keys</a></blockquote><p><strong>4. Once the environment variable is setup, you have two options:</strong></p><p>a. Launch Ollama (this should be already running from the last step), and run Claude with Ollama locally or on Ollama Cloud</p><pre># use local if you have the hardware to run the model<br># first pull the model, then run it. separate commands<br><br>ollama pull gpt-oss:20b<br>claude --model gpt-oss:20b</pre><pre>//cloud<br>ollama pull kimi-k2.5:cloud<br>claude --model kimi-k2.5:cloud</pre><p>b. Run Ollama and Claude simultaneously in one command</p><pre>ollama launch claude --model qwen3-coder-next</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/830/1*MR38CpVNxM5C_ZYn5mlpBg.png" /><figcaption>Claude Code terminal</figcaption></figure><p><strong>That’s it!</strong> You’re all set for your agentic coding session!</p><p><em>If you’re looking to setup an API key for Claude Code, </em><a href="https://rshvr.medium.com/how-to-use-claude-code-with-api-key-c5c02fdc3d10"><em>check out this article</em></a></p><p>References:</p><ol><li><a href="https://ollama.com/blog/claude">https://ollama.com/blog/claude</a></li><li><a href="https://docs.ollama.com/integrations/claude-code">https://docs.ollama.com/integrations/claude-code</a></li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5adf259c1d3d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Agentic Search Optimization: A Complete Guide for Modern Digital Visibility]]></title>
            <link>https://rshvr.medium.com/agentic-search-optimization-a-complete-guide-for-modern-digital-visibility-2595f62cb12f?source=rss-1417a3d17538------2</link>
            <guid isPermaLink="false">https://medium.com/p/2595f62cb12f</guid>
            <dc:creator><![CDATA[Arshveer Gahir]]></dc:creator>
            <pubDate>Wed, 12 Nov 2025 18:35:55 GMT</pubDate>
            <atom:updated>2025-11-12T18:35:55.247Z</atom:updated>
            <content:encoded><![CDATA[<p>The way people find information online is undergoing a fundamental transformation. As AI-powered search agents like ChatGPT, Google’s AI Mode, and Perplexity become the primary gatekeepers of information, businesses must adapt their optimization strategies. This shift from traditional Search Engine Optimization (SEO) to Agentic Search Optimization (ASO) or Answer Engine Optimization (AEO) represents the next frontier in digital marketing.</p><h3><strong>Understanding the Agentic Search Flow</strong></h3><p>When a user makes a query to an LLM agent, the process unfolds very differently than traditional search:</p><ol><li>User Query: The user asks a complex question or states a goal</li><li>Intent Analysis: The AI agent interprets the underlying intent</li><li>Task Decomposition: The agent breaks down the query into sub-tasks</li><li>Multi-Step Research: The agent performs iterative queries across multiple sources</li><li>Data Synthesis: Information is compiled and analyzed</li><li>Response Generation: A comprehensive answer is provided, often with recommendations or actions</li><li>Action Execution: In true agentic systems, the agent may execute tasks on behalf of the user</li></ol><p>Unlike traditional search where users click through multiple results, agentic search provides direct answers, dramatically reducing website traffic while making AI agents the primary discovery mechanism.</p><h3><strong>Essential Technical Files: Robots.txt vs. LLMs.txt</strong></h3><h4><strong>Robots.txt</strong></h4><p><strong>What it does:</strong> Robots.txt is a text file that controls how search engine crawlers access and index your website. It tells automated bots which pages or sections of your site they can and cannot crawl.</p><p><strong>Location:</strong> The file is located in the root directory of your website at yoursite.com/robots.txt</p><p><strong>Information it provides:</strong> It lists specific directives for different user agents (crawlers), including which URLs or directories are allowed or disallowed, and the location of your sitemap. It can also include AI-specific directives like User-agent: GPTBot or User-agent: ClaudeBot.</p><p><strong>Real example:</strong> Visit <a href="https://www.cloudflare.com/robots.txt">https://www.cloudflare.com/robots.txt</a> to see a comprehensive example:</p><pre>User-agent: *<br>Disallow: /api/<br>Disallow: /cdn-cgi/<br>Allow: /<br>Sitemap: https://www.cloudflare.com/sitemap.xml<br>User-agent: GPTBot<br>Disallow: /private/<br>User-agent: ClaudeBot  <br>Disallow: /confidential/</pre><h4><strong>LLMs.txt</strong></h4><p><strong>What it does:</strong> LLMs.txt is a markdown file that helps AI agents and large language models understand your website’s content structure and hierarchy. It provides a clean, organized overview of your most important content without HTML clutter.</p><p><strong>Location:</strong> The file is located in the root directory of your website at yoursite.com/llms.txt</p><p><strong>Information it provides:</strong> It lists your site’s key sections, important pages, and documentation with brief descriptions and links to markdown versions of each page. This allows AI agents to quickly understand what information you offer and where to find it.</p><p><strong>Important Note:</strong> As of 2025, no major LLM provider currently admits to supporting llms.txt for automated crawling. Ahrefs research found that “OpenAI (GPTBot) honors robots.txt but doesn’t officially use llms.txt. Anthropic (Claude) publishes its own llms.txt, but doesn’t state that its crawlers use the standard. Google (Gemini) uses robots.txt via User-agent: Google-Extended to manage AI crawl behavior, with no mention of llms.txt support.”[1] However, implementing it now positions you for future adoption and provides immediate value as human-readable documentation.</p><p><strong>Real example:</strong> Visit <a href="https://docs.anthropic.com/llms.txt">https://docs.anthropic.com/llms.txt</a> to see Anthropic’s implementation:</p><pre># Anthropic<br>&gt; AI safety and research company building reliable, interpretable, and steerable AI systems<br>## API Documentation<br>- [Messages API](https://docs.anthropic.com/en/api/messages): Create conversational interactions with Claude<br>- [Batching API](https://docs.anthropic.com/en/api/batching): Process multiple requests efficiently<br>- [Streaming](https://docs.anthropic.com/en/api/streaming): Real-time response generation<br>## User Guides<br>- [Prompt Engineering](https://docs.anthropic.com/en/docs/prompt-engineering): Best practices for working with Claude<br>- [Safety Best Practices](https://docs.anthropic.com/en/docs/safety): Guidelines for responsible AI use</pre><h3><strong>E-E-A-T: The Foundation of AEO Success</strong></h3><p>Google E-E-A-T stands for Experience, Expertise, Authoritativeness, and Trustworthiness. It’s a framework that Google uses to evaluate the quality and credibility of content, formally introduced in Google’s Search Quality Rater Guidelines in 2014 as E-A-T, with “Experience” added in December 2022.[2]</p><p>According to Google’s official guidelines: “Trust is the most important member of the E-E-A-T family because untrustworthy pages have low E-E-A-T no matter how Experienced, Expert, or Authoritative they may seem.”[3]</p><p>A 2025 analysis by Single Grain found that “In 2025, several factors make E-E-A-T even more important: AI content flooding the internet with AI-generated content, growing public concern about misinformation pushing Google to prioritize trustworthy sources, and today’s users being more discerning, expecting content that offers genuine insights rather than rehashed information.”[4] A 2024 SEMrush study showed that pages with strong E-E-A-T signals had a 30% higher chance of ranking in the top 3 positions compared to those with weak signals.[5]</p><h4><strong>Experience</strong></h4><p><strong>What it means for your content:</strong> Experience refers to the content creator’s first-hand or life experience. According to Search Engine Journal, “Google values content reflecting personal involvement, as it enhances trustworthiness, especially for ‘Your Money or Your Life’ (YMYL) topics where content can impact a person’s health, financial stability, safety, or well-being.”[2] Provide first-hand accounts, case studies, real-world examples, and practical insights that come from actually doing the work.</p><p><strong>Implementation:</strong></p><ul><li>Before/after examples with real metrics</li><li>Personal anecdotes and case studies</li><li>Screenshots, photos, and documentation of actual work</li><li>“I tested this for 30 days and here’s what happened”</li><li>Client success stories with specific results</li><li>Product reviews from actual usage</li></ul><h4><strong>Expertise</strong></h4><p><strong>What it means for your content:</strong> Demonstrate your subject matter expertise through the depth and accuracy of your content, author credentials, and citations to reputable sources and studies.[2]</p><p><strong>Implementation:</strong></p><ul><li>Author bios with relevant credentials and qualifications</li><li>Detailed, comprehensive coverage of topics</li><li>Original research and proprietary data</li><li>Technical accuracy and precision</li><li>Citations to peer-reviewed sources</li><li>Industry certifications and professional memberships</li></ul><h4><strong>Authoritativeness</strong></h4><p><strong>What it means for your content:</strong> Authoritativeness is about reputation and recognition within your field. Mailchimp’s guide explains: “It’s not just about having knowledge or adequate expertise but being recognized by peers and other experts as an authoritative or trustworthy source. This is assessed through mentions, references, or citations from other reputable sources, positive reviews from industry experts, and high-quality backlinks from respected websites.”[6]</p><p><strong>Implementation:</strong></p><ul><li>Backlinks from authoritative sites in your industry (measured by Domain Authority)</li><li>Speaking engagements, awards, and industry recognition</li><li>Media mentions and press coverage</li><li>Author profiles with publication history</li><li>Consistent publishing schedule on core topics</li><li>Expert roundup participation</li></ul><h4><strong>Trustworthiness</strong></h4><p><strong>What it means for your content:</strong> Google considers your site trustworthy if it’s accurate, honest, safe, and reliable. According to Backlinko’s E-E-A-T guide, “Trust signals come from multiple places including secure online payment options and your site’s user experience to third-party mentions of your brand online.”[7]</p><p><strong>Implementation:</strong></p><ul><li>HTTPS encryption (SSL certificates)</li><li>Clear privacy policies and terms of service</li><li>Accurate contact information and physical address</li><li>Regular content audits and updates (with “Last Updated” dates)</li><li>Transparent about limitations and uncertainties</li><li>Citations to credible sources</li><li>Customer reviews and testimonials</li><li>Security badges and certifications</li></ul><h3><strong>Content Optimization Strategies for Agentic Search</strong></h3><p><strong>Build Topical Authority</strong></p><p>According to the FoxAdvert guide on Agentic Search Optimization, “Instead of focusing on individual keywords, create clusters of content around broader topics to show AI agents you are an expert in your field.”[8]</p><p><strong>Strategy:</strong> Identify 3–5 core topics central to your business, then create:</p><ul><li>1 pillar page per topic (comprehensive, 3000+ word guide)</li><li>8–12 supporting articles that link back to the pillar</li><li>Regular updates with fresh insights and data</li></ul><h4><strong>Write Short Paragraphs</strong></h4><p><strong>Why it helps:</strong> AI agents scan content rapidly, and shorter paragraphs (2–4 sentences each) make information easier to parse and extract. Dense text blocks slow down processing and reduce the likelihood of your content being selected. LLMs process text in chunks, and well-segmented content allows for better semantic understanding.</p><p><strong>How to implement:</strong> Break long paragraphs into digestible chunks, use transition sentences, and ensure each paragraph covers one clear idea.</p><h4><strong>Create Scannable Content with Logical Flow</strong></h4><p>Structure your content so both humans and AI can quickly identify key information:</p><ul><li>Use descriptive headings that preview the content</li><li>Include summary sentences at the start of sections</li><li>Use bullet points for lists (but not excessively)</li><li>Bold key terms and important facts</li><li>Create a logical progression from general to specific</li><li>Add “In summary” or “Key takeaway” markers</li></ul><h4><strong>Use Natural, Conversational Language</strong></h4><p>AI agents are trained on conversational data and respond better to natural language that mirrors how people actually speak and ask questions.</p><p><strong>Implementation:</strong></p><ul><li>Write in active voice</li><li>Use contractions naturally</li><li>Address the reader directly (“you” language)</li><li>Answer questions the way you’d explain to a colleague</li><li>Avoid jargon unless necessary, then define it</li></ul><h4><strong>Use Clear Heading Hierarchy (H1, H2, H3)</strong></h4><p>Proper HTML heading structure helps AI agents understand content relationships and importance:</p><ul><li><strong>H1:</strong> Page title (one per page)</li><li><strong>H2:</strong> Major sections</li><li><strong>H3:</strong> Subsections within H2s</li><li><strong>H4+:</strong> Further subdivisions as needed</li></ul><p>Never skip heading levels (don’t go from H2 to H4).</p><h4><strong>Optimize for Natural Language and Voice</strong></h4><p>With voice assistants increasingly using agentic search, optimize for how people speak:</p><ul><li>Target question-based long-tail keywords</li><li>Include FAQ sections</li><li>Answer the “who, what, when, where, why, how”</li><li>Use complete sentences that can stand alone as answers</li></ul><h4><strong>Make Content “Agent-Friendly”</strong></h4><p>A Medium article on Agentic Optimization notes: “Ensure data is clear with metadata, schema markup, and relevant context, while maintaining clean APIs and well-documented endpoints to help AI agents seamlessly pull needed information.”[9]</p><p>Beyond traditional optimization:</p><ul><li>Use semantic HTML (proper tags for their intended purpose)</li><li>Implement clear metadata</li><li>Create consistent formatting patterns</li><li>Include context for data and statistics</li><li>Provide attribution for claims</li></ul><h4><strong>Implement Structured Data (Schema Markup)</strong></h4><p>Schema markup is code added to your HTML header that explicitly tells search engines and AI agents what your content represents. According to Terakeet’s financial services SEO guide, “Schema, or structured data, helps search engines to understand and categorize your content better. Schema.org is a collaborative effort among Google, Bing, Yahoo! and Yandex to improve the web by creating a structured data markup.”[10]</p><p><strong>For financial services, key schema types include:</strong></p><ul><li>FinancialService</li><li>BankOrCreditUnion</li><li>InvestmentFund</li><li>MortgageLoan</li><li>BrokerageAccount</li><li>InsuranceAgency</li></ul><p><strong>Real example for a financial advisory firm:</strong></p><pre>{<br>  &quot;@context&quot;: &quot;https://schema.org&quot;,<br>  &quot;@type&quot;: &quot;FinancialService&quot;,<br>  &quot;name&quot;: &quot;Connor, Clark &amp; Lunn Private Capital&quot;,<br>  &quot;description&quot;: &quot;Private wealth management and investment banking services&quot;,<br>  &quot;url&quot;: &quot;https://www.cclprivatecapital.com&quot;,<br>  &quot;telephone&quot;: &quot;+1-437-213-6428&quot;,<br>  &quot;address&quot;: {<br>    &quot;@type&quot;: &quot;PostalAddress&quot;,<br>    &quot;streetAddress&quot;: &quot;1400 - 130 King St. W., P.O. Box 240&quot;,<br>    &quot;addressLocality&quot;: &quot;Toronto&quot;,<br>    &quot;addressRegion&quot;: &quot;ON&quot;,<br>    &quot;postalCode&quot;: &quot;M5X 1C8&quot;,<br>    &quot;addressCountry&quot;: &quot;CA&quot;<br>  },<br>  &quot;geo&quot;: {<br>    &quot;@type&quot;: &quot;GeoCoordinates&quot;,<br>    &quot;latitude&quot;: &quot;43.6532&quot;,<br>    &quot;longitude&quot;: &quot;-79.3832&quot;<br>  },<br>  &quot;priceRange&quot;: &quot;$$$$&quot;,<br>  &quot;sameAs&quot;: [<br>    &quot;https://www.linkedin.com/company/connor-clark-lunn-private-capital&quot;<br>  ]<br>}</pre><h4><strong>Additional Content Best Practices</strong></h4><ul><li><strong>Write comprehensive, authoritative content:</strong> Go deep on topics rather than surface-level overviews. Aim for thoroughness that addresses every angle of a question.</li><li><strong>Answer complex questions thoroughly:</strong> Don’t just answer the surface question. Address the underlying intent, related concerns, and next steps.</li><li><strong>Use structured formats:</strong> FAQs, how-to guides, step-by-step tutorials, and comparison tables make information easy for AI agents to parse and present.</li><li><strong>Include data, statistics, and citations:</strong> Back up claims with credible sources. AI agents prioritize factual, evidence-based content.</li><li><strong>Update content regularly:</strong> Add “Last Updated” dates and refresh content with new information, maintaining accuracy and relevance.</li><li><strong>Develop content clusters around core topics:</strong> Create interconnected content that comprehensively covers a subject area from multiple angles.</li><li><strong>Create pillar pages with supporting content:</strong> Build 3000+ word cornerstone content pieces that serve as definitive guides, supported by more specific articles.</li><li><strong>Maintain consistency of information and facts:</strong> Ensure data, claims, and recommendations are consistent across all your content to build trust.</li></ul><h3><strong>Technical Optimization Essentials</strong></h3><h4><strong>Optimize Site Speed and Core Web Vitals</strong></h4><p>According to Razorfish’s analysis, “Technical SEO fundamentals become essential, including optimizing metadata, ensuring fast load times, and creating clear, logical sitemaps that AI systems can easily parse.”[11]</p><p><strong>Focus on:</strong></p><ul><li>Largest Contentful Paint (LCP): Under 2.5 seconds</li><li>First Input Delay (FID): Under 100 milliseconds</li><li>Cumulative Layout Shift (CLS): Under 0.1</li><li>Overall page load time: Under 3 seconds</li></ul><h4><strong>Implement JSON-LD Schema Markup</strong></h4><p>JSON-LD is the preferred format for structured data. It’s clean, doesn’t clutter your HTML, and is easily parsed by AI systems.</p><p><strong>Common schema types for financial services:</strong></p><ul><li>Organization / FinancialService</li><li>LocalBusiness (for branches)</li><li>Service</li><li>Product (for financial products)</li><li>FAQPage</li><li>BreadcrumbList</li><li>Review / AggregateRating</li></ul><h4><strong>Additional Technical Considerations</strong></h4><ul><li>Create clean XML sitemaps</li><li>Use semantic HTML5 elements</li><li>Implement proper internal linking</li><li>Ensure mobile responsiveness</li><li>Maintain consistent NAP (Name, Address, Phone) data</li><li>Use descriptive alt text for images</li><li>Optimize URL structure for clarity</li></ul><h3><strong>Measuring AEO Success: Key Metrics &amp; What to Look For</strong></h3><p>Traditional SEO metrics don’t fully capture agentic search performance. Research from TripleDart’s 2025 analytics study found that “On average, AI chatbots account for 0.17% of total website traffic, but ChatGPT alone drives 50% of AI traffic, with just three chatbots — ChatGPT, Perplexity, and Claude — accounting for 98% of all AI-driven visits.”[12]</p><h4><strong>Understanding AI Bot Traffic Patterns</strong></h4><p>Cloudflare and Fastly’s Q2 2025 analysis revealed dramatic growth: “AI bot traffic has exploded to unprecedented levels in 2025, with artificial intelligence crawlers now accounting for nearly 80% of all AI bot traffic across the web. Meta’s AI crawlers alone generate 52% of all AI crawler traffic, more than double the combined traffic from Google (23%) and OpenAI (20%).”[13]</p><p>According to infrastructure maintainers quoted in StartupHub.ai, AI crawlers exhibit aggressive behaviors: “They don’t just crawl a page once and then move on, they come back every 6 hours, multiplying resource consumption without clear rationale.”[14] Real-world impact is significant — the Read the Docs project discovered that blocking AI crawlers decreased their traffic by 75%, dropping from 800GB to 200GB daily and saving approximately $1,500 per month in bandwidth costs.[14]</p><h4><strong>Two Categories of AI Bot Traffic:</strong></h4><p><strong>1. Crawler Bots (Training/Indexing):</strong></p><ul><li>Visit repeatedly every 6 hours</li><li>Show up in server logs, often bypass Google Analytics</li><li>User agents: GPTBot, ClaudeBot, PerplexityBot, Meta-ExternalAgent</li><li>Cloudflare data shows GPTBot jumped from #9 in May 2024 to #3 in May 2025[15]</li></ul><p><strong>2. Fetcher Bots (Real-time Search):</strong></p><ul><li>Can hit websites with over 39,000 requests per minute in response to user queries[14]</li><li>May show as referral traffic from chat.openai.com, perplexity.ai, claude.ai</li><li>More likely to appear in GA4</li></ul><h4><strong>How to Track AI Bot Traffic in GA4</strong></h4><p>According to AllAboutAI’s comprehensive tracking guide, “To accurately track AI and LLM chatbot traffic in Google Analytics GA4, navigate to GA4 and initiate a new Exploration, select ‘Page Referrer’ as the primary dimension, and set ‘Sessions’ as the key metric to measure traffic volume.”[16]</p><p><strong>Create a Custom Channel Group:</strong></p><pre>Name: AI Chatbots &amp; LLMs<br>Condition: Session source matches regex<br>Pattern: ^(chat\.openai\.com|chatgpt\.com|perplexity\.ai|claude\.ai|gemini\.google\.com|copilot\.microsoft\.com)$</pre><p><strong>*****Update monthly as new AI referrers emerge.</strong></p><h4><strong>Metric 1: Increase in Unique Visitors</strong></h4><p><strong>Why it matters:</strong> AI agents use a new proxy each time they search, so an increase in unique visitors without a proportional increase in sessions can indicate agent activity crawling and evaluating content.</p><p><strong>What to look for:</strong></p><ul><li><strong>Ratio shift:</strong> Unique visitors growing faster than returning visitors</li><li><strong>New vs. Returning:</strong> 90%+ new visitors on specific pages</li><li><strong>Geographic anomalies:</strong> Traffic from data center locations (Ashburn, VA; San Jose, CA)</li><li><strong>Device patterns:</strong> High percentage of “Desktop” with generic browser specs</li></ul><p><strong>Normal Pattern:</strong> 60–70% new visitors, 30–40% returning<br> <strong>AI Bot Pattern:</strong> 85–95% new visitors, very short or very long session duration</p><p>Seer Interactive’s 2025 analysis warns: “AI-Agents can distort key web metrics by mimicking human behavior, leading to inflated engagement rates, artificially low bounce rates, and misleading session duration data.”[17]</p><h4><strong>Metric 2: Session Duration Anomalies</strong></h4><p><strong>Why it matters:</strong> Bot traffic exhibits dramatically different time-on-site patterns than human visitors.</p><p><strong>What to look for:</strong></p><p><strong>Malicious/Scraper Bots:</strong></p><ul><li>Session duration is typically 0 seconds, according to Databox research on direct traffic spikes[18]</li><li>Extremely high bounce rates (&gt;90%)</li><li>AnalyticsLiv notes: “Bots typically exhibit minimal engagement”[19]</li><li>Multiple page views in under 1 second</li></ul><p><strong>AI Research Bots (Good):</strong></p><ul><li>Unusually consistent session durations (exactly 30s, 45s, 60s)</li><li>Rapid page progression patterns — DataSlayer reports: “5+ pages in under 10 seconds”[20]</li><li>Moderate bounce rate (40–60%)</li><li>Systematic navigation patterns</li></ul><p><strong>Human Baseline (for comparison):</strong></p><ul><li>Investment banking content: 2–4 minutes average</li><li>Blog posts: 1.5–3 minutes</li><li>Service pages: 45–90 seconds</li><li>High variability between sessions</li></ul><h4><strong>Metric 3: Traffic from AI Referral Sources</strong></h4><p><strong>Why it matters:</strong> SE Ranking’s 2025 analytics data shows significant growth: “Traffic from AI chatbots is growing dramatically. For example, in 2025, ChatGPT generated nearly 4x more traffic than in 2024.”[21]</p><p><strong>What to track:</strong></p><p><strong>Dimensions:</strong></p><ul><li>Page referrer</li><li>Landing page + query string</li><li>Session source/medium</li><li>Country</li></ul><p><strong>Metrics:</strong></p><ul><li>Sessions</li><li>Users</li><li>Conversions</li><li>Engagement rate</li><li>Average engagement time</li></ul><p><strong>Filter for AI sources:</strong></p><pre>Page referrer matches regex:<br>(chat\.openai\.com|chatgpt\.com|perplexity\.ai|claude\.ai|gemini\.google\.com|copilot\.microsoft\.com)</pre><p><strong>What good AI traffic looks like:</strong></p><ul><li>Engagement rate: 50–70%</li><li>Pages per session: 2–4</li><li>Conversion rate: Often 2–3x higher than organic search</li><li>Direct path to conversion (fewer pages visited)</li></ul><h4><strong>Metric 4: Increase in Campaign Conversion Rates (Topic Clusters)</strong></h4><p><strong>Why it matters:</strong> When AI agents recommend your content, they typically point to your most authoritative pillar pages. Users arriving from AI recommendations are often more qualified and ready to convert.</p><p><strong>What to track:</strong></p><ul><li>Conversion rates from pillar page traffic vs. other pages</li><li>Engagement with topic cluster content (internal link clicks)</li><li>Path analysis from pillar → supporting pages → conversion</li><li>Time to conversion for cluster-originated traffic</li></ul><p><strong>Baseline Comparison:</strong></p><ul><li>Organic search conversion: 2–3%</li><li>AI referral conversion: 4–8% (often 2–3x higher)</li><li>Direct traffic conversion: 5–10%</li></ul><p><strong>What to look for:</strong></p><ul><li>Shorter paths to conversion (AI pre-qualifies users)</li><li>Higher average order value</li><li>Lower bounce rates on pillar pages</li><li>More internal link engagement</li></ul><h4><strong>Metric 5: Increase in Visitors to Pillar Pages (Authoritativeness)</strong></h4><p><strong>Why it matters:</strong> Razorfish observes: “As AI takes over much of the initial research process, brands need to compete to become trusted sources that AI agents rely on for information.”[11] An increase in traffic to your pillar pages suggests agents are recognizing and recommending your most valuable content.</p><p><strong>What to track:</strong></p><ul><li>Direct traffic to pillar pages (may indicate AI referrals without proper attribution)</li><li>Engagement metrics on pillar content</li><li>Internal link clicks from pillar to supporting content</li><li>Bounce rate and time on page for pillar content</li><li>Scroll depth on pillar pages</li></ul><p>AllAboutAI’s tracking guide notes: “Manual URL typing from AI responses shows up as ‘Direct’ traffic. Cross-check timing with visibility tool alerts.”[16]</p><p><strong>Patterns indicating AI discovery:</strong></p><ul><li>Sudden traffic spike to specific pillar page</li><li>High direct traffic with low bounce rate</li><li>New traffic from unexpected geographic regions</li><li>Consistent 24/7 traffic (not following typical daily patterns)</li></ul><h4><strong>Metric 6: Bot Traffic Identification Signals</strong></h4><p>AnalyticsLiv’s detection guide recommends: “Look for unusual traffic patterns including sudden spikes or dips in traffic, particularly outside of regular business hours, implausible geographic locations, and strange user activity with repetitive actions.”[19]</p><p><strong>Red Flags for Malicious Bots:</strong></p><ul><li>DWC Consult’s 2025 research found: “9.75% of all conversions across tracked sessions were flagged as invalid — either from confirmed bots or highly suspicious automation”[22]</li><li>Zero scroll activity with multiple page views</li><li>Form submissions with no mouse movement</li><li>Perfect geographic distribution (suspiciously even)</li><li>Traffic spikes during off-hours (2–4 AM)</li></ul><p><strong>Positive Signals for AI Research Bots:</strong></p><ul><li>Referrer from known AI platforms</li><li>User agent strings: GPTBot, ClaudeBot, PerplexityBot</li><li>Systematic crawling patterns</li><li>Access to specific pillar content</li><li>Longer than usual session duration (thorough reading)</li></ul><h4><strong>Metric 7: Brand Mention Frequency in AI Responses</strong></h4><p><strong>How to track:</strong> Manual testing and monitoring tools (you can also setup an LLM/Agentic workflow)</p><p><strong>Method:</strong></p><ol><li>Ask ChatGPT, Perplexity, Claude questions in your industry</li><li>Track if your brand/content appears in responses</li><li>Document which content gets cited</li><li>Monitor competitor mentions</li></ol><p><strong>Tools:</strong> SE Ranking AI Traffic Analytics, BrightEdge, Conductor</p><h4><strong>Additional Metrics to Consider</strong></h4><p><strong>Server Log Analysis:</strong><br> Cloudflare’s 2025 crawler analysis found: “GPTBot jumped from #9 in May 2024 to #3 in May 2025, while ClaudeBot fell from 11.7% to 5.4% of total traffic and dropped 46% in requests.”[15]</p><p><strong>Check for:</strong></p><ul><li>Requests from AI crawler user agents</li><li>Bandwidth consumption patterns</li><li>Access to /llms.txt file (future-proofing)</li></ul><p><strong>Google Search Console Signals:</strong><br> According to AllAboutAI’s research: “Monitor GSC for branded query growth. Expected pattern: 15–40% uplift after AI citations.”[16]</p><ul><li>Increase in impressions for question-based queries</li><li>Featured snippet captures (correlate with AI citations)</li></ul><p><strong>Indirect Indicators:</strong><br> The same source notes an authority feedback loop: “Pages frequently cited by AI tend to gain links and rankings: AI citation → backlinks → SERP improvement.”[16]</p><ul><li>Increase in branded searches</li><li>Higher domain authority scores</li><li>More editorial backlinks</li></ul><p><strong>The Future of Search is Agentic</strong></p><p>As AI agents become the primary interface between users and information, businesses that optimize for agentic search will maintain visibility while others fade into obscurity. The Imperva Bad Bot Report 2025 found that “Automated bot traffic surpassed human-generated traffic for the first time in a decade, constituting 51% of all web traffic in 2024, largely attributed to the rise of AI and Large Language Models, with malicious bots accounting for 37% of all internet traffic.”[23]</p><p>Start implementing these strategies now to position your organization as a trusted source in the age of AI-mediated search. Early adopters will establish the authority that compounds over time.</p><h3><strong>References</strong></h3><p>[1] Ahrefs Blog (August 2025). “What Is llms.txt, and Should You Care About It?”</p><p>[2] Search Engine Journal (May 2024). “Google E-E-A-T: What Is It &amp; How To Demonstrate It For SEO”</p><p>[3] Google Search Quality Rater Guidelines (2024)</p><p>[4] Single Grain (April 2025). “E-E-A-T Strategies That Guarantee Google’s Trust in 2025”</p><p>[5] SEMrush Study (2024). Cited in Single Grain research</p><p>[6] Mailchimp. “What Is Google E-E-A-T and Why It Matters”</p><p>[7] Backlinko (October 2025). “Google E-E-A-T: How to Create People-First Content”</p><p>[8] FoxAdvert. “What Is Agentic Search Optimization and How To Use It?”</p><p>[9] Medium — Ramwert (January 2025). “Stepping into Agentic Optimization (The Next Evolution Beyond SEO)”</p><p>[10] Terakeet (August 2025). “Advanced SEO for Financial Services, Banks &amp; Advisors”</p><p>[11] Razorfish. “How Agentic AI Will Reshape Search”</p><p>[12] TripleDart (May 2025). “GA4 Guide: Track AI and LLM Chatbot Traffic”</p><p>[13] Fastly Q2 2025 Threat Insights Report (August 2025)</p><p>[14] StartupHub.ai (August 2025). “AI Bot Traffic: How Crawlers Are Reshaping Web Traffic in 2025”</p><p>[15] Cloudflare Blog (July 2025). “From Googlebot to GPTBot: who’s crawling your site in 2025”</p><p>[16] AllAboutAI (February 2025). “How to track AI chatbot and LLM traffic”</p><p>[17] Seer Interactive (March 2025). “How Will You Know When Open AI’s Operator Agent Hits Your Website?”</p><p>[18] Databox (June 2025). “Causes of Sudden Spike in Direct Traffic in Google Analytics”</p><p>[19] AnalyticsLiv. “Guide to Detecting Bot Traffic in Google Analytics and BigQuery”</p><p>[20] DataSlayer. “OpenAI Atlas AI Browser Launch: Marketing Impact 2025”</p><p>[21] SE Ranking (July 2025). “AI Traffic Analytics — Track AI Chatbot Visitors”</p><p>[22] DWC Consult (June 2025). “Bad Bots &amp; AI Agents: How to Regain Control of Your Analytics”</p><p>[23] Imperva/Thales (April 2025). “2025 Imperva Bad Bot Report: AI-Driven Bots Surpass Human Traffic”</p><p><strong>About the Author:</strong> Arshveer Gahir specializes in context engineering and AI optimization strategies at Cohere, with a focus on helping businesses adapt to the evolving search landscape.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2595f62cb12f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to use Claude Code with API Key]]></title>
            <link>https://rshvr.medium.com/how-to-use-claude-code-with-api-key-c5c02fdc3d10?source=rss-1417a3d17538------2</link>
            <guid isPermaLink="false">https://medium.com/p/c5c02fdc3d10</guid>
            <category><![CDATA[claude-code]]></category>
            <category><![CDATA[vibe-coding]]></category>
            <category><![CDATA[agentic-coding]]></category>
            <dc:creator><![CDATA[Arshveer Gahir]]></dc:creator>
            <pubDate>Mon, 13 Oct 2025 16:25:54 GMT</pubDate>
            <atom:updated>2026-02-06T15:47:57.741Z</atom:updated>
            <content:encoded><![CDATA[<p>Manually setup API key for Claude Code</p><h4>Recap: how to launch Claude Code</h4><p>open Terminal and run:</p><pre>claude</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/866/1*gcjPv1ITZ6YpPwlMmveADA.png" /><figcaption>Claude Code terminal window</figcaption></figure><h3>Option 1: use /login</h3><p>You can always set the API key by using /login command, and following the steps. This is Anthropic’s recommended option.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8srJVWHHsv25pJSDKq31tA.png" /><figcaption>Claude Code terminal /login command options</figcaption></figure><h3>Option 2: manually set API key</h3><p>Update!! This is the latest method to setup an API Key</p><ol><li>Go to <strong>~/.claude/settings.json</strong></li></ol><pre>{<br>*other settings*,<br> &quot;env&quot;: {<br> &quot;ANTHROPIC_API_KEY=&quot;paste-anthropic-api-key-here&quot;<br>  }<br>}</pre><p>Following steps have been deprecated (Jan 2025)</p><ol><li>Go to <strong>~/.claude/settings.json</strong></li></ol><pre>{<br><br>*other settings*,<br> &quot;apiKeyHelper&quot;: &quot;~/.claude/anthropic_key.sh&quot;<br><br>}</pre><p>2. Visit <a href="https://console.anthropic.com/settings/keys">https://console.anthropic.com/settings/keys</a> and create an API key</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*g_kWdpFxJtR2I4sfWCFtzw.png" /><figcaption>Anthropic console API keys page</figcaption></figure><p>3. Open TextEdit and set the filename to <strong>anthropic_key.sh</strong> and save file to <strong>~/.claude</strong></p><pre>echo &quot;&lt;add ANTHROPIC_API_KEY_HERE between the double quotes&gt;&quot;</pre><p>4. Run the following command in Terminal to make it executable</p><pre>chmod +x ~/.claude/anthropic_key.sh</pre><p>5. Launch Claude Code to verify, and select <strong>‘Yes’</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AypFH1eywU-xCtVmVhqTSw.png" /><figcaption>Claude Code opened in terminal shows successful API key setup</figcaption></figure><p>You’re all set for your agentic coding session!</p><p>Be sure to follow <a href="https://www.anthropic.com/engineering/claude-code-best-practices">best agentic coding practices</a>, and core software development principles, such as <a href="https://katalon.com/resources-center/blog/what-is-tdd">Test Driven Development (TDD)</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c5c02fdc3d10" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Late-diagnosis AuDHD Lessons— S1E1 — Optimizing Workflows]]></title>
            <link>https://rshvr.medium.com/late-diagnosis-audhd-lessons-s1e1-ded16c13c2e4?source=rss-1417a3d17538------2</link>
            <guid isPermaLink="false">https://medium.com/p/ded16c13c2e4</guid>
            <category><![CDATA[disability]]></category>
            <category><![CDATA[adhd-late-diagnosis]]></category>
            <category><![CDATA[autism-spectrum-disorder]]></category>
            <category><![CDATA[late-diagnosed-autism]]></category>
            <dc:creator><![CDATA[Arshveer Gahir]]></dc:creator>
            <pubDate>Wed, 31 Jul 2024 23:58:27 GMT</pubDate>
            <atom:updated>2024-08-04T03:10:05.730Z</atom:updated>
            <content:encoded><![CDATA[<h3>Late-diagnosis AuDHD Lessons— S1E1 — Optimizing Workflows</h3><p>My system on how I optimized workflows that kept me afloat before and after my diagnosis.</p><p>Welcome, make yourself feel at home! In this first episode of documenting personal neurodivergent (ND) discoveries, we will explore a system that proved to keep me afloat before and after my diagnoses through the means of <strong>optimizing my workflows</strong>.</p><p>I was 23 years old when I first found out that I might have some form or combination of developmental disorders. 3 eventful years later, I was diagnosed with Attention-Deficit Hyperactivity Disorder (ADHD) and Autism Spectrum Disorder (ASD). Combined, it is known as AuDHD. As we go through this series, I will share my learnings and experiences related to this life-changing journey with you in hopes that there is something you can take from these lessons to accelerate your own unique journey.</p><blockquote><em>Disclaimer: Closely consider that this is how I developed the workflows that have worked for me. Without </em><strong><em>honesty</em></strong><em>, </em><strong><em>self-reflection</em></strong><em>, and </em><strong><em>self-compassion</em></strong><em>, it would be extremely difficult to effectively apply and make the most out of these lessons.</em></blockquote><p>Objectives:</p><ul><li><strong>Be kind</strong> to yourself</li><li>Determine your <strong>end goal</strong></li><li>Observe where your logic takes you</li><li><strong>Modify your logic</strong> to more effectively suit you</li></ul><blockquote>…staying awake until 4 AM taking Spanish lessons on Duolingo. Lessons I never got back to for weeks or for… well, at all. Please don’t tell the owl.</blockquote><h3>End Goal</h3><p>Something I always struggled with was truly knowing what I wanted out of any situation. Not knowing where I wanted to go, I often ended up nowhere. I would start with doing the dishes in the morning and end up staying awake until 4:00 AM completing Spanish lessons on Duolingo. I didn’t go back to these lessons for weeks or for… well, at all. <em>Please</em> <em>don’t tell the owl</em>.</p><blockquote>Honesty is not the best policy, unless you’re talking about yourself — most likely Arshveer Gahir</blockquote><p>I realized I was wasting so much energy doing a great number of engaging and interesting activities of absolutely no consequence. Often, when I looked back at my day, I felt short-term satisfaction but could barely remember what I did, much less what I achieved. I had no track of time (time blindness). My day would simply begin and end, leaving a feeling of great exhaustion, with a hole in my heart that I couldn’t figure out how to fill. I then did it all over again the next day.</p><p>It’s not okay to waste anyone’s time. However, it’s a <strong>crime against yourself</strong> to waste your own. Genuinely admitting to myself that I have been wasting my own time and energy has, by far, been the most beneficial thing I have done for myself.</p><blockquote>Beginning with the end in mind…</blockquote><p>To change for the better, my day would start by making a list of things I wanted to do that day. I knew clearly what I wanted to see happen that particular day and it wasn’t a requirement for it to have anything to do with my work or studies; I only needed to know what I wanted at the end of the day and why.</p><p>Beginning with the end in mind (tipping my hat to Stephen Covey) and identifying the genuine reasons for why I wanted to do what each day effectively helped me organize my priorities, and, in turn, <a href="https://lymphoma-action.org.uk/sites/default/files/media/documents/2020-05/Spoon%20theory%20by%20Christine%20Miserandino.pdf">allocate my spoons</a> (ND term for prioritize) accordingly.</p><p>For Example:</p><ul><li><strong>Goal 1</strong>: I want clean clothes because I have no clean clothes.</li><li><strong>Goal 2</strong>: I want food prepared for the rest of the week because I have been spending too much on Uber Eats.</li></ul><h3>Logic</h3><p>Perhaps a cornerstone of the AuDHD mind is the adherence to strict logic yet doing what produces the most dopamine instead. Forgiving the generalization, our minds are typically hardwired with <strong>If-Then-That-Or-Else</strong> conditionals. Having a system for our daily activities is how most of us, including you and I, have survived. One system I use is: if I go to the washroom in the morning, I must wash my face, or else I will not only forget to wash my face but will also forget to brush my teeth or shower.</p><blockquote>Dopamine is the mind killer. Dopamine is the little-death that brings total obliteration — definitely not Frank Herbert</blockquote><p>We indulge in things that give us dopamine, but that doesn’t mean we’re completing the tasks we must to get closer to our end goal. Dopamine feels good; it gives us that warm feeling in our gut. Fortunately, our mind gives us that dopamine as we complete programmatically arranged steps it believes are related to one another. And honestly, doing related things programmatically, one after the other, simply makes sense. What are you gonna do, brush your teeth then go play basketball? You might, given how you define your logic, and no judgment on you for doing it that way; even though it’s a little absurd, you do you.</p><blockquote>Audit your logic…</blockquote><p>Once you have determined what you want, see how you can naturally work with yourself to get there while only keeping the goal in mind. You can do this by auditing your logic from a third-person perspective, but if you find it difficult to see yourself from that point of view, do not be afraid to ask trusted people around you for help; remember, it’s okay to ask for help!</p><p>While auditing, be sure to keep these questions in mind:</p><ul><li>Is your brain relating things by actions, events, activity, or dependencies?</li><li>Is the way your brain is relating things effective? How often were you able to achieve your end goal?</li><li>Is the way your brain is relating things efficient? How much sooner could you have achieved your end goal?</li></ul><p>While this is not an exhaustive list, these questions will enable you to figure out your logic, and where that logic needs modifications. Look out for blockers or hidden dependencies that add complexities.</p><p>For example:</p><p><strong>Goal 1</strong>: I want clean clothes because I have no clean clothes.</p><ul><li><strong>My Logic</strong>: I take off my clothes, then put them in the laundry basket. I take my clothes out of the laundry basket, then turn them inside out. I sort my clothes by color, fabric, fabric maintenance best practices; then put them in piles. I put clothes in the machine, and portion the detergent and softener as per the load size.</li><li><strong>Blockers</strong>: clothes are not sorted, clothes need to be turned inside-out, out of detergent/softener.</li></ul><p><strong>Goal 2</strong>: I want food prepared for the rest of the week because I have been spending too much on Uber Eats.</p><ul><li><strong>My Logic</strong>: find the recipe of what I don’t mind eating for a week, then I check my pantry for ingredients I have and don’t have. I make a grocery list of things I need to buy, then I find stores I need to buy them at given the deals and discounts. I then get in my car and go to the stores.</li><li><strong>Blockers</strong>: need to find a recipe, need to cross-reference recipe ingredients with items in the pantry, need to make a grocery list, deals and discounts took a long time to find and cross-reference, car did not have enough gas.</li></ul><h3>Optimization</h3><p>This might be the easiest part after you get through defining the end goal and understanding your logic and identifying your blockers. Having said that, this will also be the part where you might succumb to blaming yourself or running out of spoons. You and your brain just did a lot of heavy lifting, and should definitely <strong>take a break</strong>.</p><p>For this task we take our listed blockers and find solutions, and then take one more look at the logic to see if we can’t do a better job. Not often is there room for improvement, but it is always good to take another look with self-compassion in mind.</p><p><strong>Goal 1:</strong></p><ul><li>Clothes are not sorted: set separate laundry baskets for clothes according to the sort criteria</li><li>Clothes need to be turned inside-out: turn clothes inside-out while taking them off</li><li>Out of detergent/softener: always maintain an extra container of detergent/softener in the pantry</li></ul><p><strong>Goal 2:</strong></p><ul><li>Need to find a recipe: maintain a running list of dishes you like to eat that you are able to cook; consider using a meal-prep helper app</li><li>Need to cross-reference recipe ingredients with items in the pantry: consider using a meal-prep helper or pantry-keeper app to maintain visibility of the items on hand.</li><li>Need to make a grocery list: consider using a meal-prep helper app to automatically create a list.</li><li>Car did not have enough gas: set mental reminders to refill gas when it is below 50% or consider using a groceries-delivery app.</li></ul><h3>Conclusion</h3><p>Reassessing my workflows to determine what does and doesn’t serve me anymore greatly helped me come to terms with my diagnoses. Today, it keeps me going despite all the challenges life throws my way. Throughout this series, I will continue to share my lessons and experiences in hopes that they, at the very least, ensure you feel accompanied and supported in your journey.</p><p><strong>Important reminders</strong>: Know that you are a different person pre and post-diagnosis. What helped you survive then, may not help you thrive today. It’s okay to ask for help. Your best is enough.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ded16c13c2e4" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>