> ## Content Index
> Fetch the complete content index at: https://efreedirectory.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Zapier Deleted Its Page and Claude Still Read It Perfectly
- URL: https://efreedirectory.com/zapier-claude-markdown-agent-read/
- Published: 2026-11-07T03:55:00.000Z
- Updated: 2026-11-07T03:55:00.000Z
- Description: A controlled experiment from a team with production traffic, and the result is the most useful thing published about agent readability this year.
- Author: Alpesh Gevariya
- Tags: tool, AI Assistants

**Zapier built a harness that serves two versions of the same URL to Claude Code and published the results on 6 November 2026\. When it removed the integration content from a page's HTML, Claude still returned 25 triggers and 27 actions. WebFetch requested text/markdown before text/html, Zapier's server served the Markdown mirror, and that mirror still had the content. The fetched page was then passed to Claude Haiku 4.5 for processing before the calling model saw it.**[1](#sources)

This is the first properly controlled account of what happens when an AI agent reads a website, and it comes from a company with a large one. Three findings in it change how anyone should think about optimising for agents.

## The experiment

Zapier's team built a small tool they call Agent Arm Runner. It runs Claude Code in a Docker container behind a forward proxy. A JSON config defines the prompts, the experimental arms and the repetition count.

The control arm sends requests to production. The variant arm intercepts requests for one specific path and routes them to a preview deployment. Same prompt, same URL, only the content differs. Each run starts in a fresh container so state does not carry over, and arms are repeated because agent behaviour is not deterministic.

The first test used Zapier's Slack integration page. For the variant, they removed almost everything from the page body: triggers, actions, integration content, all of it. They expected Claude to return almost nothing.

Instead it returned a detailed list, including 25 triggers, 27 actions and 11 searches. Those details were not in the HTML being served. Zapier checked the proxy logs to confirm the request had reached the preview deployment. It had.

## What the three findings were

| Finding                                      | Evidence                                                                                                                       | What it changes                                                         |
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------- |
| The Markdown mirror was already being served | accept: text/markdown, text/html, \*/\* returned content\_type: text/markdown, and a planted canary came back through WebFetch | Editing HTML alone does not change what agents read                     |
| A second model processes the page            | Fetched content arrived in a separate request to claude-haiku-4-5 with no tools attached                                       | The model that reads your page is not the model the user chose          |
| The summariser follows its own instructions  | A 125-character quotation ceiling, quotation marks for exact language, no verbatim reproduction outside quotes                 | Long quotable prose loses more in transit than short factual statements |

**Prices measured on 27 October 2026.** Vendor plan terms, allowances and prices change without notice, so treat every figure on this page as a dated snapshot rather than a permanent fact. Where a number here differs from the vendor's own pricing page, the vendor's page is correct and the figure above is simply older than it.

## Finding one: the Markdown mirror was already in the path

The proxy log explained it. The request carried accept: text/markdown, text/html, \*/\*, and the server returned content\_type: text/markdown.

Zapier had been building Markdown representations of pages so agents could consume the useful content without surrounding HTML. They treated those mirrors as an optimisation. The experiment showed they were already on the request path, and that editing the HTML alone left the Markdown untouched.

To confirm it, they planted a canary in the Markdown version: an HTML comment instructing any summariser to include a specific verification code. The canary came back through WebFetch. That is a cleaner proof than a log line, and it is worth remembering as a diagnostic technique in its own right.

## Finding two: a second model sits in the middle

The top-level run reported Opus 5 as the calling model. The captured WebFetch processing showed the fetched page arriving in a separate request to claude-haiku-4-5, with no tools attached.

So the model answering the user's question is often not the model that read the page. A smaller, cheaper model processes the fetched content first, and its output is what reaches the larger model. Haiku was not independently browsing or following links; it received content that had already been fetched and worked on it.

This is the finding with the most consequence for anyone writing for agents. Your page is not being read by the model the user selected. It is being summarised by a different model with different instructions, and only the summary travels onward.

## Finding three: the summariser has its own rules

Those instructions were captured in the request. They include a strict 125-character maximum for any quotation from a source document, a direction to use quotation marks for exact language and never reproduce the rest word for word, and a prohibition on commenting about the legality of its own prompts.

Read that as a content specification rather than a curiosity. A page written in long, quotable paragraphs loses more in transit than one written as short, discrete, factual statements. Anything that depends on exact phrasing surviving to the user is working against a 125-character ceiling set by a third party.

## What it means for a free tier and a small site

The obvious application is technical: if you publish Markdown mirrors for agents, they are part of what agents see, and they need the same edits as your HTML. A site that updates one and forgets the other has two different products with one URL.

For sites without a Markdown mirror, the finding cuts the other way. The HTML is what gets parsed, the summariser is a small model with a quote limit, and structure matters more than prose. Headings that state the answer, tables of numbers, and short paragraphs survive this pipeline far better than narrative.

The verdict, if you want one line: publish the same facts in HTML and Markdown, lead every section with the answer, and assume a small model with a 125-character quote limit is standing between your page and the reader. Limitation worth naming: this is one company's harness on one provider's agent, run for one week, and Zapier has not published repeat arms. An agent reading a page to answer a question elsewhere means the site pays for the request and receives no visit. [Cloudflare made that argument on 5 November](https://efreedirectory.com/cloudflare-agent-traffic-free-tier-cost/), calling it uncompensated consumption. Zapier's experiment shows the other half of the same story: the page being consumed is not necessarily the page you wrote, and the model consuming it is not the model the user chose.

Zapier is still building the harness and has not published further arms. Their stated goal is a faster feedback loop than SEO's weeks-long cycle, which is the most useful thing in the post: a way to run an A/B test on agent readability in hours rather than quarters.

## Frequently asked questions

**What did Zapier actually test?**  
Two versions of the same URL served to Claude Code behind a proxy. The control was production; the variant had the page's body content removed.

**Why did Claude still return the removed content?**  
Because WebFetch requested text/markdown before HTML, and Zapier's server returned a Markdown mirror that had not been edited.

**Which model read the page?**  
The fetched content was passed to Claude Haiku 4.5 before being returned to the calling model, which was reported as Opus 5.

**What instructions does that summariser follow?**  
A strict 125-character maximum for quotes, quotation marks for exact language, no word-for-word reproduction outside quotes, and no commentary on legality.

**Does this affect sites without Markdown mirrors?**  
They are parsed as HTML, but the quoting limit and the two-model pipeline still apply.

**Can I run the same test?**  
Zapier describes the approach in enough detail to rebuild it: a proxy, a preview deployment, a fixed URL and repeated runs.

*The Agent Arm Runner design, the Slack integration page test, the 25 triggers and 27 actions, the accept header and returned content type, the canary string, the Haiku 4.5 processing request and the summariser instructions all verified in* [*Zapier's 6 November 2026 engineering post*](https://zapier.com/blog/what-we-learned-watching-claude-read-zapier/?ref=efreedirectory.com)*, read on 7 November 2026.*

## Sources

1. Zapier Engineering: What we learned by watching Claude read Zapier.com, 6 November 2026: [zapier.com/blog/what-we-learned-watching-claude-read-zapier](https://zapier.com/blog/what-we-learned-watching-claude-read-zapier/?ref=efreedirectory.com). Used for: The Agent Arm Runner design, the empty-variant test, the Markdown accept header, the canary, the Haiku 4.5 processing step and the summariser instruction excerpt.

*All sources are the vendor's own plan or documentation pages, checked on 27 October 2026\. Plan terms change without notice, so confirm current limits before you rely on them.*