cdpfleet Sign up free

cdpfleet / Pages to text for LLMs

For LLM, RAG and agent builders

Pages your model can read, at a fraction of the tokens.

Render the page in a real browser so scripts run and lazy content loads, then hand the model the right serialisation: an accessibility snapshot when it has to act, plain text when it only reads, typed records when you need data.

  • ~28–33%of the HTML as an ARIA snapshot (case 32)
  • 5–12%as innerText
  • 1 URLhosted MCP for assistants

Pick the serialisation

  • ARIA snapshot to act: locator.ariaSnapshot() keeps every link with its URL, the headings and lists, at about 28% of the HTML on Wikipedia and 33% on a catalogue (case 32).
  • innerText to read: the smallest by far, 5–12% of the HTML — fine for a summary, useless when the model has to click or follow a link.
  • Snapshot the part you need: table layouts repeat text as row and cell names, so a Hacker News body snapshot was 117% of its HTML; page.locator("main") or the list itself cuts tokens more than any format choice.
  • Typed records for data: one page.evaluate per page returned all 20 records with prices as numbers and ratings 1–5, validated before they left the page (case 28).
// After page.goto(url): three ways to hand a page to a model.
const forActing = await page.locator('main').ariaSnapshot(); // YAML: roles, names, links
const forReading = await page.locator('main').innerText();   // plain text, smallest
const records = await page.evaluate(() =>                    // typed data, parsed in the page
  [...document.querySelectorAll('article')].map((a) => ({
    title: a.querySelector('h2, h3')?.textContent.trim(),
    url: a.querySelector('a')?.href,
  })));

For assistants and agents

  • Hosted MCP server: add https://cdpfleet.com/mcp to Claude, ChatGPT, Gemini, Cursor or Claude Code and sign in; its snapshot tool returns the page as an accessibility snapshot, evaluate runs extraction code in the page (MCP setup, example prompts).
  • Coding agents: skill.md has the launch flow, browsers, limits and errors on one page, and llms.txt indexes every doc — each of our pages also has a Markdown version at the same URL plus .md.
  • Hand a page to a person when needed: a live view link lets someone get past a login or a consent step, then the agent carries on.

At volume

  • Fewer bytes, faster pages: blocking images on Camoufox took a catalogue page from 30 requests to 10 and from about 7.3 s to 1.6 s (camoufox-block-images recipe); third-party scripts are the bigger lever on news pages (case 08).
  • Parallel pages: several tabs in one session share its thread (case 30); several sessions spread across your threads (case 10).
  • Be a good guest: read public pages, honour Retry-After, and back off when a site pushes back (case 53).