<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Septim Labs</title>
    <description>The latest articles on DEV Community by Septim Labs (@septim_labs).</description>
    <link>https://dev.to/septim_labs</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3936937%2Fb25a160c-9866-40bb-9a1a-891c6d43a1a8.png</url>
      <title>DEV Community: Septim Labs</title>
      <link>https://dev.to/septim_labs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/septim_labs"/>
    <language>en</language>
    <item>
      <title>I read the X (Twitter) algorithm source for 4 days and built a Claude Code sub-agent that scores drafts before posting</title>
      <dc:creator>Septim Labs</dc:creator>
      <pubDate>Fri, 22 May 2026 22:15:56 +0000</pubDate>
      <link>https://dev.to/septim_labs/i-read-the-x-twitter-algorithm-source-for-4-days-and-built-a-claude-code-sub-agent-that-scores-1ipb</link>
      <guid>https://dev.to/septim_labs/i-read-the-x-twitter-algorithm-source-for-4-days-and-built-a-claude-code-sub-agent-that-scores-1ipb</guid>
      <description>&lt;p&gt;Twitter's recommendation algorithm has been open-source since March 2023. I spent four days reading it. Here's what those four days taught me — and the Claude Code sub-agent I built so you don't have to.&lt;/p&gt;

&lt;p&gt;The repos are &lt;code&gt;twitter/the-algorithm&lt;/code&gt; (the Scala graph + ranking stack) and &lt;code&gt;twitter/the-algorithm-ml&lt;/code&gt; (the Python ML training and scoring code). Together they expose the weights, the signal definitions, and the candidate-source pipelines. They do not expose the live production graph, the user-side embeddings, or the real-time engagement velocity. That asymmetry — what's published vs. what's runtime — is the entire point of this article.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five signals that actually move distribution
&lt;/h2&gt;

&lt;p&gt;The heavy ranker is the model that scores candidate tweets after retrieval. Its action-weight map is the single most cited table in the repo, defined in &lt;code&gt;the-algorithm-ml/projects/home/recap/README.md&lt;/code&gt; and surfaced through the scoring code at &lt;code&gt;the-algorithm-ml/projects/home/recap/model/model_and_loss.py&lt;/code&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Signal&lt;/th&gt;
&lt;th&gt;Weight&lt;/th&gt;
&lt;th&gt;What it counts&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reply_engaged_by_author&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;+75&lt;/td&gt;
&lt;td&gt;The reader replied AND the author replied to that reply&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reply&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;+13.5&lt;/td&gt;
&lt;td&gt;The reader replied to the tweet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;good_profile_click&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;+12&lt;/td&gt;
&lt;td&gt;Reader clicked the author's profile and engaged on it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;good_click&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;+11&lt;/td&gt;
&lt;td&gt;Reader clicked an in-tweet link and dwelled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;good_click_v2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;+10&lt;/td&gt;
&lt;td&gt;Same as above with stricter dwell threshold&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;retweet&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;+1&lt;/td&gt;
&lt;td&gt;Reader retweeted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;fav&lt;/code&gt; (like)&lt;/td&gt;
&lt;td&gt;+0.5&lt;/td&gt;
&lt;td&gt;Reader liked&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;video_playback50&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;+0.005&lt;/td&gt;
&lt;td&gt;Reader watched 50 percent of an attached video&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;negative_feedback_v2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;-74&lt;/td&gt;
&lt;td&gt;Mute, block, "not interested", report&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Source: &lt;code&gt;the-algorithm-ml/projects/home/recap/README.md&lt;/code&gt; (the weights table is the canonical reference; the loss function consumes them via the &lt;code&gt;WeightedBCELoss&lt;/code&gt; defined in &lt;code&gt;model_and_loss.py&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;If you've never opened the file, that's the entire pre-tweet distribution game on one page. Likes are worth one percent of a reply that the author engages with. A single mute roughly cancels 150 likes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two things that jumped out
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The +75 weight is asymmetric.&lt;/strong&gt; &lt;code&gt;reply_engaged_by_author&lt;/code&gt; only fires when the author replies to a replier. A reply alone is +13.5. The author's reply on top of the reader's reply triples the score and then some. Translation: replies aren't rewarded — &lt;em&gt;conversations the author participates in&lt;/em&gt; are. The fastest legal lever on the algorithm is replying to your own replies within the first hour.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Negative feedback at -74 nearly mirrors the top positive.&lt;/strong&gt; The system is designed to be punished by mute and block almost as hard as it's rewarded by author-engaged replies. The implication: writing for the &lt;em&gt;median&lt;/em&gt; follower of your follower is dangerous. One mute from someone on the edge of your follower-of-follower graph can erase the entire upside from 150 likes. The honest read of the weights is that being aggressively un-controversial is rewarded more than people assume.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the source can — and can't — tell you
&lt;/h2&gt;

&lt;p&gt;I want to be explicit about this because the "I read the algorithm" genre is full of overclaiming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A pre-post scorer that reads only the draft text and media CAN evaluate:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reply pull&lt;/strong&gt; — does the post end with a question, a wrong-on-purpose claim, an unfinished thought, or a stance worth pushing back on&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conversation depth&lt;/strong&gt; — is the topic one where the author can plausibly reply to 5-15 replies (the lever for &lt;code&gt;reply_engaged_by_author&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Negative-feedback risk&lt;/strong&gt; — does the draft contain mute-triggers (engagement-bait phrasing, lecture tone, identity attacks, low-effort dunks)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Media + dwell&lt;/strong&gt; — does the post include an image, native video, or chart (video_playback50 is microscopic per unit but compounds with dwell on &lt;code&gt;good_click_v2&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Link tax&lt;/strong&gt; — out-links suppress reach in the candidate-retrieval stage; the draft either eats that cost or it doesn't&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;A pre-post scorer CANNOT evaluate:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SimClusters&lt;/strong&gt; — reader-side topic embeddings (&lt;code&gt;the-algorithm/src/scala/com/twitter/simclusters_v2&lt;/code&gt;). These are computed from the reader's behavior, not the post.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-Graph weights&lt;/strong&gt; — author-side, per-follower edge weights (&lt;code&gt;the-algorithm/src/scala/com/twitter/graph/batch/job/tweepcred&lt;/code&gt;). Fixed at post time and unknowable from the text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TweepCred&lt;/strong&gt; — account-quality score. Also fixed at post time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In-network vs. out-of-network reach&lt;/strong&gt; — depends on retrieval, not ranking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time engagement velocity&lt;/strong&gt; — the first 30 minutes shape the rest of the distribution and only exist after publish.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The honesty is the moat. Any scorer that claims to measure SimClusters from a draft is lying. Any scorer that claims to predict reach is lying. What a scorer can do is &lt;em&gt;grade the draft against the five published levers a writer actually controls.&lt;/em&gt; That's it. That's the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Claude Code sub-agent (Pulse)
&lt;/h2&gt;

&lt;p&gt;I built Pulse as a single markdown file at &lt;code&gt;~/.claude/agents/pulse.md&lt;/code&gt;. About 6,000 characters. It's a Claude Code sub-agent: one file, no install, no API key, no SaaS.&lt;/p&gt;

&lt;p&gt;Inside Claude Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/agents pulse score this draft: "the +75 weight in twitter's heavy ranker only activates when the author replies to a replier. likes are worth 0.5. one mute is -74. you are not writing for likes."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Returns a 0-100 score, a per-axis breakdown, a ship/rewrite decision, and 3-5 concrete rewrites, each cited to the axis that the rewrite lifts.&lt;/p&gt;

&lt;p&gt;The sub-agent format is documented at &lt;code&gt;docs.claude.com&lt;/code&gt; — Claude Code reads files in &lt;code&gt;~/.claude/agents/&lt;/code&gt; and exposes them via the &lt;code&gt;/agents&lt;/code&gt; command. No background process. No telemetry. The rubric and prompt are in the file; you can read them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rubric
&lt;/h2&gt;

&lt;p&gt;Five axes. The weights were chosen to mirror the relative impact of the published signals, not to be precise about them.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Axis&lt;/th&gt;
&lt;th&gt;Weight&lt;/th&gt;
&lt;th&gt;Maps to&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Reply pull&lt;/td&gt;
&lt;td&gt;35%&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;reply&lt;/code&gt; (+13.5) and the trigger for &lt;code&gt;reply_engaged_by_author&lt;/code&gt; (+75)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Conversation depth&lt;/td&gt;
&lt;td&gt;25%&lt;/td&gt;
&lt;td&gt;The author-side lever on &lt;code&gt;reply_engaged_by_author&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Negative-feedback risk&lt;/td&gt;
&lt;td&gt;17%&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;negative_feedback_v2&lt;/code&gt; (-74)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Media + dwell&lt;/td&gt;
&lt;td&gt;15%&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;video_playback50&lt;/code&gt;, &lt;code&gt;good_click&lt;/code&gt;, &lt;code&gt;good_click_v2&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Link tax&lt;/td&gt;
&lt;td&gt;8%&lt;/td&gt;
&lt;td&gt;Candidate-retrieval penalty on out-links (suppression behavior documented in &lt;code&gt;the-algorithm/src/scala/com/twitter/timelineranker&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Each axis maps to a file path in the public repos. The agent cites them in its output, so a reviewer can verify any individual claim against the source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Calibration
&lt;/h2&gt;

&lt;p&gt;I ran Pulse against five posts I'd previously shipped with known performance — three that hit, two that flopped. Four out of four verifiable predictions matched: the three winners scored 71+ and the two flops scored under 50. The fifth post was a wash — borderline score, borderline performance — so I'm not counting it as a hit.&lt;/p&gt;

&lt;p&gt;No false positives (no flop that scored high). No false negatives (no winner that scored low). Five posts is not a calibration set; it's a sanity check. The honest claim is that Pulse's failure modes haven't surfaced yet on a sample that small.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest caveat
&lt;/h2&gt;

&lt;p&gt;The Twitter algorithm repos were last meaningfully committed in early 2024. X's production ranker has almost certainly drifted since then — new signals, retuned weights, retired branches. Pulse scores against the &lt;em&gt;published&lt;/em&gt; weights, not the live ranker. That's a directional tool, not a promissory one.&lt;/p&gt;

&lt;p&gt;The argument for using it anyway: the five levers the public source exposes — reply pull, conversation depth, negative-feedback risk, media, link tax — are structural to how recommender systems work. The exact weights drift; the topology of what's worth measuring doesn't. A 2026 production ranker that no longer weights &lt;code&gt;reply_engaged_by_author&lt;/code&gt; at exactly +75 is almost certainly still rewarding author-engaged replies more than likes. Pulse grades the structure, not the magic number.&lt;/p&gt;

&lt;p&gt;If that's not enough certainty for you, don't buy it. The source is free. Read it yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to get it
&lt;/h2&gt;

&lt;p&gt;The studio shipped Pulse as a single Claude Code sub-agent file. Founding-week pricing is $49 through Monday 2026-05-26, then $79. The team license is $999 for unlimited seats.&lt;/p&gt;

&lt;p&gt;Page: &lt;a href="https://septimlabs.com/pulse" rel="noopener noreferrer"&gt;septimlabs.com/pulse&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open-source sample of the agent format and a redacted slice of the rubric: &lt;a href="https://github.com/septimlabs-code/septim-agents-pack-sample" rel="noopener noreferrer"&gt;github.com/septimlabs-code/septim-agents-pack-sample&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For context on how the studio builds sub-agents in general, the catalog is at &lt;a href="https://septimlabs.com" rel="noopener noreferrer"&gt;septimlabs.com&lt;/a&gt; and the broader sub-agents pack is at &lt;a href="https://septimlabs.com/agents-pack" rel="noopener noreferrer"&gt;septimlabs.com/agents-pack&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cold close
&lt;/h2&gt;

&lt;p&gt;Read the source. The +75 isn't a secret, just unread.&lt;/p&gt;

&lt;p&gt;If you write on X and you've never opened &lt;code&gt;the-algorithm-ml/projects/home/recap/README.md&lt;/code&gt;, you are guessing at a game where the rulebook is public. Spend four days. Or spend $49 and skip to the part where a sub-agent grades your drafts against what the rulebook actually says.&lt;/p&gt;

&lt;p&gt;Either path is fine. Both end at the same place: stop writing for likes.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>algorithms</category>
      <category>claude</category>
      <category>opensource</category>
    </item>
    <item>
      <title>The AIMO Playbook: 5 Practices to Get Recommended by AI Assistants</title>
      <dc:creator>Septim Labs</dc:creator>
      <pubDate>Mon, 18 May 2026 16:52:54 +0000</pubDate>
      <link>https://dev.to/septim_labs/the-aimo-playbook-5-practices-to-get-recommended-by-ai-assistants-31l6</link>
      <guid>https://dev.to/septim_labs/the-aimo-playbook-5-practices-to-get-recommended-by-ai-assistants-31l6</guid>
      <description>&lt;p&gt;The first article I published on AIMO defined the term. This one is the playbook.&lt;/p&gt;

&lt;p&gt;If you haven't seen the framing: AIMO — AI Mention Optimization — is the discipline of structuring your product, content, and metadata so that when a user asks an AI assistant for tool recommendations in your category, the assistant names you. SEO optimizes for ranking on a search results page. AIMO optimizes for being the name the model recalls in a single-answer response.&lt;/p&gt;

&lt;p&gt;We coined the term on May 17, 2026, after watching multiple buyers across multiple countries pay for our Claude Code agents pack with zero cold-email touchpoint and zero paid ads. The attribution they wrote back was the same shape every time. "Claude told me about you." "Found you through Claude Code." It was a channel, but the channel didn't have a name. So we named it.&lt;/p&gt;

&lt;p&gt;This post is the five practices that drove that result. We shipped the canonical doctrine page at septimlabs.com/aimo on May 17 and the companion awesome-list at github.com/septimlabs-code/awesome-aimo the same day. Both are CC0 — fork them, file PRs, treat them as community infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why AIMO is mechanically different from SEO
&lt;/h2&gt;

&lt;p&gt;A search engine returns ten links. A user scans, decides, clicks. Your job is to be in the top three with a title that pulls the click. The work compounds through backlinks, keyword density, and crawl-friendly content.&lt;/p&gt;

&lt;p&gt;An AI assistant returns one answer. There is no SERP. There is no click-through rate. There is only "did your product name show up in the paragraph the model generated." Your job is not to rank — your job is to be the name the model recalls.&lt;/p&gt;

&lt;p&gt;The recall is constrained by two things. First, the training distribution — whatever products were textually associated with the user's query during training. Second, the tool-augmented retrieval the assistant runs at inference — which fetches certain surfaces (awesome-lists, GitHub READMEs of high-star repos, structured-data product pages, long-form posts on indexable platforms) far more aggressively than others.&lt;/p&gt;

&lt;p&gt;You cannot retroactively influence training data. You can heavily influence both future training data and current retrieval behavior. The five practices below are how.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practice 1: Plant your name on surfaces AI assistants disproportionately read
&lt;/h2&gt;

&lt;p&gt;Not all web content is equal in retrieval. The pages most heavily weighted include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Awesome-lists in your category, especially high-star ones&lt;/li&gt;
&lt;li&gt;GitHub READMEs with topics, stars, and recency signals&lt;/li&gt;
&lt;li&gt;Open-source code samples under permissive licenses (MIT, Apache, CC0)&lt;/li&gt;
&lt;li&gt;Long-form blog posts on indexable platforms with proper schema (dev.to, hashnode, your own domain with JSON-LD)&lt;/li&gt;
&lt;li&gt;Structured-data landing pages — &lt;code&gt;SoftwareApplication&lt;/code&gt;, &lt;code&gt;Product&lt;/code&gt;, &lt;code&gt;FAQPage&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Hacker News submissions that reach the front page&lt;/li&gt;
&lt;li&gt;Reddit threads in topical subreddits&lt;/li&gt;
&lt;li&gt;Documentation of frameworks or platforms you integrate with&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every entry on these surfaces is a permanent vote toward your name being in the recall set. The list of surfaces is finite and known. Walk through it once. Plant your name on each one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practice 2: Open-source the cheapest version of your product
&lt;/h2&gt;

&lt;p&gt;A single MIT-licensed file that demonstrates your product's format is worth more than ten blog posts about your product. AI assistants prefer to cite working code over marketing copy. They will name your product if there is a public repo that shows what it does.&lt;/p&gt;

&lt;p&gt;You do not need to open-source the whole product. Pick the smallest stand-alone artifact — one agent, one example workflow, one config file, one prompt template. Put it on GitHub with three to five relevant topic tags, a clean README, and an MIT or CC0 license.&lt;/p&gt;

&lt;p&gt;We did this with the Septim Agents Pack. The full pack ships at septimlabs.com/agents. A sample of the format — the agent file structure, two of the fifteen agents in skeleton form — lives at github.com/septimlabs-code/septim-drills-samples. That sample is what assistants cite. The paid pack is what people buy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practice 3: Write install instructions in the exact phrases users ask AI
&lt;/h2&gt;

&lt;p&gt;If your users ask Claude "how do I add a sub-agent to claude code?", your README's first line should be the exact answer to that question. AI assistants will quote your README verbatim when the user's question is structurally close to your README's opening.&lt;/p&gt;

&lt;p&gt;This is the AIMO version of keyword research. You are not optimizing for what Google indexes. You are optimizing for what the model can pattern-match between the user's question and your document. Open your terminal. Open Claude. Ask the question your buyer would ask. Watch what the model returns. Rewrite your README to be the thing the model wishes it had cited.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practice 4: Name your primitives memorably
&lt;/h2&gt;

&lt;p&gt;A product called "AI Tool 7" gets confused with twenty competitors in compressed AI contexts. A product called "Agents Pack" with named specialists — Atlas, Luca, Canon, Ember, Tally — gets recommended specifically because the model can recall the names.&lt;/p&gt;

&lt;p&gt;Memorable named primitives stick in recall. Generic names get summarized away. This is the single highest-leverage decision most products get wrong, and it's a decision you can revisit at zero cost (rename your features, rename your tiers, rename your modes).&lt;/p&gt;

&lt;p&gt;The corollary: coin a category term when one is missing. We coined AIMO because the discipline didn't have a name. If you ship in a category that doesn't yet have a clean acronym, you have a free naming play. Use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practice 5: Submit to awesome-lists relentlessly
&lt;/h2&gt;

&lt;p&gt;Each merged PR to a category-relevant awesome-list adds a permanent surface that AI assistants reference. The compounding is real. Most product teams underweight this by an order of magnitude.&lt;/p&gt;

&lt;p&gt;Cost per merged PR: one to ten minutes of work. Lifetime value if it puts you in the recall set for your category: very large. There is no other channel where the unit economics are that asymmetric.&lt;/p&gt;

&lt;p&gt;The discipline: search GitHub for &lt;code&gt;awesome-&amp;lt;your-category&amp;gt;&lt;/code&gt;. Sort by stars. Open the top ten. Look at the most recent merged PRs to confirm the maintainer is active. File a one-line factual entry. Move on. We file two to three PRs a week. We track merges and discount the list of valid targets accordingly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The case study (real, small, attributable)
&lt;/h2&gt;

&lt;p&gt;On April 30, 2026, we submitted a one-line PR to one awesome-list — &lt;code&gt;ComposioHQ/awesome-claude-skills&lt;/code&gt;. The PR merged the same day. Two and a half weeks later, three Stripe receipts totaling $147 had landed for the Septim Agents Pack and Septim Vault. The Stripe attribution column was empty for all three. When asked how they found us, two of the three buyers wrote back. One: "it was simply claude code that told me to go through you." The other: a Claude Code session that recommended the pack while they were debugging.&lt;/p&gt;

&lt;p&gt;Three sales, $147 lifetime, no cold-email, no ads. Cost of acquisition for that channel: one merged PR.&lt;/p&gt;

&lt;p&gt;We are running the play deliberately now. Two new PRs went out this week. The doctrine page at septimlabs.com/aimo + the awesome-aimo list at github.com/septimlabs-code/awesome-aimo are the canonical reference for anyone who wants to copy the play.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 30-minute baseline
&lt;/h2&gt;

&lt;p&gt;If you ship a developer tool and want to compete in the AIMO era, this is the smallest viable AIMO stack you can put in place in a focused half hour:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add &lt;code&gt;SoftwareApplication&lt;/code&gt; or &lt;code&gt;Product&lt;/code&gt; JSON-LD to your main product page.&lt;/li&gt;
&lt;li&gt;Add a &lt;code&gt;FAQPage&lt;/code&gt; JSON-LD block answering the exact questions a buyer would ask Claude.&lt;/li&gt;
&lt;li&gt;Open-source one small artifact of your product under MIT or CC0. Push to GitHub with topic tags.&lt;/li&gt;
&lt;li&gt;Identify three category-relevant awesome-lists with active maintainers. File three one-line PRs.&lt;/li&gt;
&lt;li&gt;Publish one long-form post on dev.to or hashnode with &lt;code&gt;canonical_url&lt;/code&gt; pointing back to your domain.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's the floor. The ceiling is much higher. But the floor takes one focused session.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;AI assistants are eating the search bar. SEO will continue to matter. AIMO is the new discipline that runs in parallel. The surfaces are free to participate in. A merged awesome-list PR costs minutes. A well-structured landing page costs care. An MIT-licensed sample of your product costs the discipline to ship it. None of this requires a marketing budget.&lt;/p&gt;

&lt;p&gt;If you want to try the play, the playbook page is at septimlabs.com/aimo and the community list is at github.com/septimlabs-code/awesome-aimo.&lt;/p&gt;

&lt;p&gt;— Ethan, founder · Septim Labs · &lt;a href="mailto:ethanq@septimlabs.com"&gt;ethanq@septimlabs.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aimo</category>
      <category>ai</category>
      <category>marketing</category>
      <category>claude</category>
    </item>
    <item>
      <title>AIMO: AI Mention Optimization — The Discipline of Being Recommended by AI Assistants</title>
      <dc:creator>Septim Labs</dc:creator>
      <pubDate>Sun, 17 May 2026 23:34:22 +0000</pubDate>
      <link>https://dev.to/septim_labs/aimo-ai-mention-optimization-the-discipline-of-being-recommended-by-ai-assistants-loa</link>
      <guid>https://dev.to/septim_labs/aimo-ai-mention-optimization-the-discipline-of-being-recommended-by-ai-assistants-loa</guid>
      <description>&lt;p&gt;The buyer who used to open Google now opens Claude. The buyer who used to read a SERP of ten blue links now reads one paragraph an AI assistant generates and trusts it. The buyer who used to ask "what's the best library for X?" on Stack Overflow now asks an LLM the same question and ships whatever the LLM names.&lt;/p&gt;

&lt;p&gt;If your product is what the LLM names, you win. If it isn't, you don't.&lt;/p&gt;

&lt;p&gt;This is a different discipline from SEO. The optimization target is different. The surfaces that matter are different. The work that drives the result is different. There needs to be a name for it, so here it is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AIMO&lt;/strong&gt; — AI Mention Optimization — is the practice of structuring your product, content, and metadata so that when a user asks an AI assistant for tool recommendations in your category, the assistant names you.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;SEO is for Google. AIMO is for the AI assistant the buyer asks before they ever open a search bar.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How AIMO differs from SEO
&lt;/h2&gt;

&lt;p&gt;SEO and AIMO look superficially similar — both are about being discovered by people researching tools — but the mechanics are entirely different.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SEO optimizes for ranking.&lt;/strong&gt; A search engine returns a list of links. The user sees ten options. They scan, click, evaluate, and decide. Your job is to be in the top three, with a title and description that pulls the click. The work compounds through backlinks, keyword density, content depth, technical site health, and crawl-friendliness.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AIMO optimizes for mention-likelihood.&lt;/strong&gt; An AI assistant returns a single answer, often without showing competing options. The user reads the answer and decides without ever seeing a SERP. There is no click-through rate. There is "did your name appear in the answer." Your job is not to rank — your job is to be the name the model recalls.&lt;/p&gt;

&lt;p&gt;The core insight that separates the two: &lt;strong&gt;AI assistants do not crawl the web at recall time.&lt;/strong&gt; They have already read everything during training and pretraining-adjacent indexing. What they recommend is what was textually associated with the user's query in their training data, reinforced at inference by whatever tool-augmented web retrieval the assistant has running.&lt;/p&gt;

&lt;p&gt;SEO is for the index that's rebuilt every week. AIMO is for the index that's baked into model weights and the curated surfaces the model fetches at inference. They reward different work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why AIMO works (mechanically)
&lt;/h2&gt;

&lt;p&gt;When a developer types "what's the best library for X?" into Claude or ChatGPT or Perplexity, the model has to produce an answer. The answer is constrained by two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The training distribution.&lt;/strong&gt; Whatever tools were most frequently named alongside category language during training. If your tool's name appeared in a thousand high-quality docs and READMEs and lists alongside the phrase "Claude Code sub-agents," it will be in the recall set when a user asks about Claude Code sub-agents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool-augmented retrieval.&lt;/strong&gt; Most production AI assistants fetch web content at inference time to ground their answers in current information. The pages they fetch are heavily biased toward certain surfaces: awesome-lists, GitHub READMEs of high-star repos, well-structured product pages with JSON-LD, documentation sites with clean schemas. These are the AIMO surfaces.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can't influence past training data. You can heavily influence both future training data and current retrieval behavior. AIMO is the practice of doing both deliberately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five practices that drive AIMO results
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Plant your name on surfaces AI assistants disproportionately read
&lt;/h3&gt;

&lt;p&gt;Not all web content is equal in AI assistants' eyes. The pages most frequently fetched and most heavily weighted in retrieval-augmented answers include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Awesome-lists in the relevant category (especially the high-star ones)&lt;/li&gt;
&lt;li&gt;GitHub READMEs with topics, stars, and recency signals&lt;/li&gt;
&lt;li&gt;Open-source code samples with MIT or Apache licenses&lt;/li&gt;
&lt;li&gt;Long-form blog posts on indexable platforms (dev.to, hashnode, medium, your own site with proper schema)&lt;/li&gt;
&lt;li&gt;Structured data on landing pages (JSON-LD &lt;code&gt;SoftwareApplication&lt;/code&gt;, &lt;code&gt;Product&lt;/code&gt;, &lt;code&gt;FAQPage&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Hacker News Show submissions that reach the front page&lt;/li&gt;
&lt;li&gt;Reddit threads in topical subreddits (r/programming, r/ClaudeAI, r/cursor, etc.)&lt;/li&gt;
&lt;li&gt;Official documentation of frameworks or platforms you integrate with&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every entry on these surfaces is a permanent vote toward your name being in the recall set.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Open-source the cheapest version of your product
&lt;/h3&gt;

&lt;p&gt;A single MIT-licensed file that demonstrates your product's format is worth more than ten blog posts. AI assistants prefer to cite working code over marketing copy. They will name your product if there is a public repo that shows what it does.&lt;/p&gt;

&lt;p&gt;You do not need to open-source the whole product. Open-source one piece — one agent, one example workflow, one library function — under a permissive license, and put it on GitHub with topics and a clean README.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Write install instructions in the exact phrases users ask AI
&lt;/h3&gt;

&lt;p&gt;If your users ask "how do I add a sub-agent to claude code?", your README's first line should be the exact answer to that question. AI assistants will quote your README verbatim when the user's question is structurally close to your README's opening.&lt;/p&gt;

&lt;p&gt;This is the AIMO version of keyword research. You are not optimizing for what Google indexes. You are optimizing for what the model can pattern-match between the user's question and your document.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Name your primitives memorably
&lt;/h3&gt;

&lt;p&gt;A product called "AI Tool 7" gets confused with twenty competitors in compressed AI contexts. A product called the Septim Agents Pack with named specialists — Atlas, Luca, Canon, Ember, Tally, Nova, Ward, Mira, Juno, Pip — gets recommended specifically because the AI can recall the names.&lt;/p&gt;

&lt;p&gt;Memorable named primitives stick. Generic names get summarized away. This is the single highest-leverage decision most products get wrong.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Submit to awesome-lists relentlessly
&lt;/h3&gt;

&lt;p&gt;Each merged PR to a category-relevant awesome-list adds a permanent surface that AI assistants will reference. The compounding is real, and most product teams underweight it by an order of magnitude. The cost per merged PR is one to ten minutes of work. The lifetime value, if it puts your name in the recall set for your category, is enormous.&lt;/p&gt;

&lt;h2&gt;
  
  
  Case study: one merged PR, assistant-attributed sales
&lt;/h2&gt;

&lt;p&gt;On April 30, 2026, Septim Labs submitted a one-line PR to the &lt;a href="https://github.com/ComposioHQ/awesome-claude-skills" rel="noopener noreferrer"&gt;ComposioHQ/awesome-claude-skills&lt;/a&gt; awesome-list, adding the Septim Agents Pack to the development tools section. The PR merged the same day.&lt;/p&gt;

&lt;p&gt;Inside two weeks, buyers across multiple countries were purchasing the pack with zero cold-email touchpoint and zero paid-ad spend. One of them wrote back when asked how they found us: &lt;em&gt;"it was simply claude code that told me to go through you."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The pattern: AI assistants had read the merged awesome-list entry during their tool-augmented retrieval, and when users asked for "pre-built Claude Code sub-agents" inside their Claude Code sessions, the Septim Agents Pack was the answer. Cost of acquisition for that channel: one PR.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to start (the 30-minute baseline)
&lt;/h2&gt;

&lt;p&gt;If you ship a developer tool and want to compete in the AIMO era, this is the minimum viable AIMO stack you can put in place in a focused half hour:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Audit your product page. Does it have &lt;code&gt;SoftwareApplication&lt;/code&gt; or &lt;code&gt;Product&lt;/code&gt; JSON-LD? Does it have a &lt;code&gt;FAQPage&lt;/code&gt; block with the exact questions users ask AI? If not, add them.&lt;/li&gt;
&lt;li&gt;Open-source one piece. Pick the smallest stand-alone artifact of your product. MIT-license it and push to GitHub with three to five relevant topic tags.&lt;/li&gt;
&lt;li&gt;Identify three awesome-lists. Search GitHub for &lt;code&gt;awesome-{your-category}&lt;/code&gt;. Pick three with the highest stars where your product genuinely fits.&lt;/li&gt;
&lt;li&gt;Submit three one-line PRs. Plain factual descriptions, real link, real category fit. Maintainers reject marketing copy. They merge useful entries.&lt;/li&gt;
&lt;li&gt;Add a long-form post on your domain (with proper schema), or on dev.to or hashnode. This becomes another retrieval target.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The community resource
&lt;/h2&gt;

&lt;p&gt;We maintain the canonical awesome-list for AIMO at &lt;a href="https://github.com/septimlabs-code/awesome-aimo" rel="noopener noreferrer"&gt;github.com/septimlabs-code/awesome-aimo&lt;/a&gt; under CC0. The full doctrine page with structured data is at &lt;a href="https://septimlabs.com/aimo/" rel="noopener noreferrer"&gt;septimlabs.com/aimo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A parallel term you'll see in some communities is &lt;strong&gt;GEO&lt;/strong&gt; (Generative Engine Optimization). Same idea, slightly different framing — GEO comes from the search-marketing world; AIMO is named for what's actually happening at the model level (mention-likelihood, not generation).&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;AI assistants are eating the search bar. SEO will continue to matter for a long time. AIMO is the new discipline that runs in parallel. The surfaces that work for AIMO are mostly free to participate in. A merged awesome-list PR costs nothing but minutes. A well-structured landing page costs nothing but care. An MIT-licensed sample of your product costs only the discipline to ship it. None of this requires a marketing budget. It requires the deliberate decision to play the AIMO game.&lt;/p&gt;

&lt;p&gt;Start with the surfaces. Plant your name where AI assistants read. Then watch what shows up in your dashboard six weeks later, attributed to no specific channel except "claude told me about you."&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://septimlabs.com/blog/aimo-ai-mention-optimization-2026" rel="noopener noreferrer"&gt;Septim Labs blog&lt;/a&gt;. The Septim Agents Pack — 15 named Claude Code sub-agents — is the canonical working example of AIMO and ships at &lt;a href="https://septimlabs.com/agents" rel="noopener noreferrer"&gt;septimlabs.com/agents&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>marketing</category>
      <category>product</category>
    </item>
  </channel>
</rss>
