How to get your product recommended by Claude Code
Claude Code searches the web in 1.6% of decision runs and writes its own implementation in 19%. That changes which levers work. A specific playbook.
Claude Code behaves differently from the other agents in two ways that change the whole playbook. It almost never searches the web while deciding, and it builds things itself far more often.
Both facts are measured, and both point at the same conclusion: with Claude Code, content is a weak lever and the repository is a strong one.
The two numbers that matter
On decision tasks, Claude Code ran a web search in 1.6% of runs. Codex ran one in 53%. And Claude Code wrote its own implementation instead of adopting a product in 19% of all runs, against 10% for both Codex and Cursor.
| Claude Code | Codex | Cursor | |
|---|---|---|---|
| Ran a web search on decision tasks | 1.6% | 53% | not measured separately |
| Wrote its own implementation | 19% | 10% | 10% |
Read those together. In roughly 98 sessions out of 100, whatever you publish this week is not in the room. And in nearly one session in five, no vendor is chosen at all.
What this means
The usual developer marketing advice is to publish more and better content. Against Claude Code, that advice is close to inert at the moment of decision. What it does do is feed the next training run, which is real but slow and outside your control.
What is in the room:
- The repository. What is installed, what the language is, what the configuration implies.
- What the model already learned. Training data, which you influence over years, not quarters.
- Your documentation, once the agent has chosen you and needs to write the integration.
So the playbook is: get into the repository, and make the integration impossible to get wrong.
Step 1: get into the repository
This is the biggest lever for any agent and it is decisive for Claude Code.
We measured it three ways.
The language changed the winner. The same hosted database request produced one winner in 111 of 111 JavaScript sessions. On TypeScript codebases, the same product won 48 of 132.
An installed rival beat a written instruction. A sentence in a repository file naming a preferred product was followed 16 times out of 18. Install a competing library into the same repository and the sentence lost two times out of three.
Being present changed everything. With nothing installed, a product produced a real implementation in 0 of 15 runs. After installing it into the repository, 11 of 15.
The routes in, in order of durability:
| Route | Effort | How long it keeps working |
|---|---|---|
| Official framework integration, maintained | High | Years |
| Default in a create-app command or scaffolder | High | Years |
| Official templates and starter kits | Medium | Long |
| Presence in popular third party boilerplates | Medium | Medium |
| Official examples in your own repository | Low | Medium |
Pick the three stacks your users actually run. Ship a real template for each. Keep them current.
Step 2: beat the hand-written implementation
Claude Code builds rather than adopts in 19% of runs. In some categories that number is far higher: performance testing 52%, evals 29%, agent frameworks 25%, search 23%, product analytics 23%.
If your category is on that list, your first competitor is a script, and the argument you need is not "we are better than them". It is "this problem is harder than it looks".
That argument only works with specifics:
- Name the failure modes. Not "search is hard" but "a
LIKEquery stops being usable somewhere around a million rows, and typo tolerance needs a trigram index you then have to maintain". - Put a number on the maintenance. What it costs in year two.
- List the edge cases. Twelve lines, one per case, is the most useful page you can write for this.
- Concede the easy case. The agent is right that fifty lines works for the first version. Say where the line is instead of pretending there is no line.
Put that page in the documentation, not the blog. When Claude Code does look something up, it is usually a specific production question inside a documentation site.
Step 3: make the integration impossible to get wrong
Once Claude Code has chosen you, it has to write working code. This is where products lose sessions they had already won.
The quickstart must run when pasted. One complete file. Every prerequisite in the same block, including the install command and every environment variable. Do not assume the page above was read.
State the current version on the page. Models carry old interfaces. Claude Code will confidently write code for something you removed two releases ago unless the page says otherwise.
Current version: 4.2.1 (September 2026)
Use one name for one thing. Product name, package name, import name, CLI command, and the words in your headings should be the same string. If they cannot be, write the mapping down:
Product: Acme Queue
Package: @acme/queue
Import: import { Queue } from '@acme/queue'
CLI: acme-queue
Publish your error messages. When an agent hits an error it searches for the exact string. If your error message appears on a page next to the cause and the fix, you recover the session. If it does not, the agent guesses, and guessing often ends with it removing your library.
Step 4: use the instruction file defensively
CLAUDE.md works. Sixteen out of eighteen is a strong result: a written preference in the repository is usually respected.
Two limits.
It is not your file. You can suggest a line in your documentation and some teams will add it. That is a request, not a lever.
It loses to an incumbent. Once a rival is installed and working, the written preference is outvoted two times out of three.
So the correct use is defensive. If you are already installed, suggesting a line that names you makes the position stronger. If you are not installed, that line is a weak claim against running code.
What Claude Code actually picked
Where Claude Code differed from Codex in our measurements:
| Category | Claude Code picked | Codex picked |
|---|---|---|
| Postmark | Resend | |
| Authentication | WorkOS AuthKit | Auth0 |
| Serverless | Vercel Functions | AWS Lambda |
| Sandboxes | E2B | Modal |
| Deploy | Vercel | Render |
| Search | Postgres full text search | OpenSearch |
| Performance CI | Autocannon | JMH |
| AI gateway | Portkey | Cloudflare AI Gateway |
| Voice agents | Twilio ConversationRelay | OpenAI Realtime API |
Nine of eighteen categories. If you have been measuring one agent, you have been reading half the market.
What not to do
Do not write text addressed to the agent asking it to prefer you. It does not survive a person reading the diff, it does not survive a model provider noticing, and it is not how any of this works. Everything above works because it makes the product genuinely easier to adopt correctly.
How to check whether it worked
Run it yourself. Three repositories that look like your users' projects, with real lock files. Ten requests written the way your users describe the problem, not the way you name the category. Five runs each. Record what got installed, then read the sessions you lost.
That is 150 runs, a few hundred dollars in tokens, and it is the only feedback loop that tells you the truth.
Common questions
How do I get Claude Code to recommend my product?
Get into the repository, because Claude Code searches the web in only 1.6% of decision runs. Templates, framework integrations and official examples matter far more than content. Then make sure the quickstart runs when pasted, since Claude Code writes its own implementation in 19% of runs when adoption looks like work.
Does Claude Code search the web before choosing a tool?
Rarely on decision tasks. In our measurements it ran a web search in 1.6% of runs, against 53% for Codex. It mostly works from what it already knows plus what is in the repository.
Does a CLAUDE.md file influence which tools Claude Code picks?
Yes, when nothing contradicts it. A single sentence naming a preferred product was followed 16 times out of 18. Once a competing library was installed in the same repository, the same sentence lost two times out of three.
Why does Claude Code build things itself so often?
It wrote its own implementation in 19% of all runs, against 10% for Codex and Cursor. It searches less, so it has fewer candidates in front of it, and its own implementation is always in front of it.
What does Claude Code pick most often?
It depends on the category. It led with Postmark in email, WorkOS AuthKit in authentication, Vercel Functions in serverless and E2B in sandboxes, each of which differed from what Codex picked.
Where this comes from
Armature ran 5,292 judged sessions with Claude Code, Codex and Cursor inside 51 realistic codebases, and published every run. The numbers on this page come from that work.