Key Takeaways

  • Resend discovered that Claude and ChatGPT were telling prospective buyers the platform was the most expensive email service on the market, despite offering competitive rates.
  • The root cause was an interactive JavaScript pricing slider on the Resend marketing site, which automated LLM web crawlers could not drag, parse, or evaluate.
  • Founder Zeno Rocha fixed the distortion by using HTTP content negotiation and .md URL endpoints to serve plain static Markdown to AI agents.
  • Resend expanded machine-readable coverage by deploying llms.txt and llms-full.txt files across every marketing page, building on patterns originally set up in their Mintlify documentation.

The Method

Rocha ran a routine competitor analysis prompt inside Claude and ChatGPT to see what developers were being told when comparing transactional email services. Resend already serviced three million users and one hundred thousand paying customers, but the models gave him a shock. As Rocha recalls: “I wanted to see what they would recommend. And then they told me like, 'Oh, Resend is the most expensive service.' And I was like, 'No, I know for a fact that this is not true.'”

The problem was not training bias or malicious competitor data. It was client-side JavaScript. Resend featured a clean, interactive pricing slider where users dragged a handle to see exact costs at different email volumes. Human visitors loved the interface. Scrapers sent by OpenAI and Anthropic choked on it.

“Turns out that agents don't really like JavaScript-enabled sliders. They cannot slide,” Rocha explains. “That's not something they're able to do. And I'm like, 'Okay, we need a Markdown version.'”

To fix the hallucination at the source, Resend built a dual-track response pipeline for its web properties:

1. Content negotiation via HTTP headers: The web server inspects incoming requests. When an AI crawler or terminal client requests Markdown, the server returns clean, unstyled Markdown text instead of an interactive React bundle.

2. Plain .md routing: Resend mapped explicit Markdown endpoints to its public routes, letting crawlers append .md to fetch flat documentation and raw pricing tiers directly.

3. Universal llms.txt implementation: Resend already served structured files for developer documentation through Mintlify, but Rocha expanded the practice to the core marketing domain. As Rocha put it: “We invest very heavily on like llms.txt, llms-full.txt. We had that in our docs forever, thanks to Mintlify. But then on our marketing website, we started to do that in every single page, too.”

Once the static Markdown version went live with proper header negotiation, scrapers could parse the entire volume tier structure. The next model refresh corrected the pricing claims.

Where This Breaks Down

This method solves text extraction, but it creates a maintenance burden. If your pricing changes and you update your React component without updating the static Markdown endpoint or your llms.txt index, you will feed outdated numbers directly into training pipelines and live retrieval agents. Discrepancies between your human-facing UI and machine-readable text can also trigger search engine cloaking flags if the two versions tell different stories.

Static files also fail to capture complex, multi-variable utility pricing. If your billing depends on concurrent workers, retained logs, regions, and data transfer combined, a flat Markdown table cannot calculate every bespoke scenario. The model will still approximate, and it may still get the final bill wrong.

What to Do With This

Open ChatGPT and Claude right now and prompt both models to calculate your service costs across three realistic usage tiers against your top two competitors. If the output misstates your pricing or marks you as overpriced, set up a server middleware rule this week that detects AI scraper user agents and returns your exact pricing tiers formatted in raw GitHub-flavored Markdown tables.