NewIntroducing semantic snapshotsPair every capture with structured DOM data →

Blog

Notes from the workbench

Longer than a changelog entry and more specific than a feature page: how the thing works, what it costs, and the reasoning behind the calls — written by the people who run the service.

guidesmcpagents

Give Claude, Cursor or any MCP client a real browser

Set up the domscout MCP server in Claude Code, Claude Desktop or Cursor so your assistant can read rendered pages as Markdown, take screenshots, extract fields and crawl a site, with a cost stated on every tool.

Read the post
guidesmonitoringwebhooks

Monitor a web page for changes and get a webhook

A cron job that diffs HTML alerts on every rotating ad and misses the change you cared about. How to watch a page's text, links, title and status code on a schedule, receive a signed webhook when something changes, and verify it in Node or Python.

Read the post
guidesmarkdownllm

How to convert a web page to Markdown for an LLM

Raw HTML spends a model's context on navigation, scripts and cookie banners. How to turn any URL into clean Markdown with one API call, when you can skip the browser, and how to tell when you should not have.

Read the post
guidesscreenshots

Website screenshot API: full page, mobile and PDF

Capture any URL as a PNG, JPEG, WebP or PDF from real Chromium with one POST request. Working curl, Node and Python examples, plus full-page captures, mobile viewports, single elements, hiding cookie banners, and what each option costs.

Read the post
securityengineering

Turning the product off to check whether a sentence was true

Our architecture documents described the rendering browser's network position as contained. We could not demonstrate it, so we disabled public capture until we could.

Read the post
engineeringjobs

What happens when the worker dies mid-crawl

A crawl of nine hundred pages will be interrupted. The interesting design question is not how to prevent that, it is what the system owes you afterwards.

Read the post
engineeringextraction

What a browser sees that a fetch does not

A GET request and a rendered page are not two ways of getting the same thing. Here is what falls in the gap, why it is getting wider, and how to tell which side of it your problem is on.

Read the post
productsemantic snapshots

Semantic snapshots for Pro+ plans

One call returns clean Markdown; Pro+ plans add structured DOM snapshots your agent can actually act on. What each output is for, and how to tell which one you need.

Read the post
pricingbilling

Pricing that follows measured cost

We priced Enterprise below its own cost, then went and measured what a capture actually costs. The math, the changes, why a credit is not a request, and the ceiling that stops a runaway script billing you forever.

Read the post