Skip to content

Reveal

The problem: content you can’t see in one fetch

Section titled “The problem: content you can’t see in one fetch”

Most crawlers fetch a page once and parse whatever HTML shipped. But a lot of content isn’t in that first response — it appears only when you do something:

  • scroll an infinite feed
  • click “Load more”
  • open an accordion or expand a collapsed section
  • page through numbered / “Next” results

Fetch-once crawlers miss all of it. You either get the first screenful, or you hand-write a script of clicks and scrolls for every site.

Reveal is Marrow’s automatic interaction layer. Before extracting, it drives the page to surface the hidden content, then chunks what’s now visible — with no steps to script.

Each round it:

  1. Perceives the page’s operable surface (its buttons, links and disclosures).
  2. Chooses one tactic deterministically from that surface — no LLM in the loop.
  3. Acts (expands, clicks, or scrolls), waits for new content, and re-extracts.

It repeats until a round surfaces nothing new, then stops.

TacticWhat it handlesWhat it does
expandaccordions, collapsed <details>, disclosure widgetsopens them in place
load-more”Load more” / “Show more” buttons (multilingual)clicks, content appends
next”Next” / numbered paginationclicks, navigates, accumulates across pages
scrollinfinite-scroll feedsscrolls to the bottom

Reveal picks the applicable tactic from what’s actually on the page, so one setting handles feeds, grids, docs and listings alike.

If you know these terms, Reveal is a familiar idea assembled for you automatically:

In plain termsIndustry equivalent
Run the page’s JavaScript in a real browserrendering
Interact to load more contentactions — but auto-detected, not hand-written
Handle feeds that load on scrollinfinite scroll / lazy loading
Open collapsed sectionsdisclosure (aria-expanded)

Firecrawl’s actions make you write the click and scroll steps yourself, per site. Reveal detects the controls (“Load more”, “Next”, accordions) and drives them for you — call it auto-actions.

It’s the same philosophy as Marrow’s caching: the hard part is standard equipment. Cache is standard. Auto-reveal is standard.

Reveal is bounded by design. Each round advances one tactic and re-extracts; when a round produces no new content, the loop ends. There are no infinite loops on endless feeds and no fetches spent on pages that add nothing — you get everything that’s reachable, and not a request more.

Reveal runs today as a validated prototype across all four tactics. Next it graduates into the main scrape path as an option — so a single scrape call can surface and return content behind interactions, with the same clean extraction and change tracking as a static page.