A long milled valve block with four stacked bores whose right half is ghosted in bone-grey line, showing three pawls, and a blue channel stepping up through the bores like a stair to a ring terminal at the far end.
Development

BrightData

4-tier page fetching that moves from plain curl to curl with declared headers to a real browser through Interceptor to Bright Data's managed fetch product, single URL or multi-page crawl, output as markdown, within each target site's terms

02
Workflows
01
Tool
01
Reference
09
Triggers

The Problem

A lot of the web won't let you in. Paywalled content, JavaScript-heavy SPAs that render nothing server-side, sites that fingerprint your headers and return a 403, pages behind CAPTCHAs. A bare WebFetch call works fine on simple public pages and fails silently or noisily on everything else. Without escalation logic, you either get blocked and give up, or you go straight to an expensive proxy service for content you could have fetched in 200ms.

How This Skill Approaches It

Four-tier progressive escalation: start cheap and fast, escalate only when blocked. Tier 1 is WebFetch — built-in, instant, costs nothing. Tier 2 is curl with Chrome-like headers, which clears basic user-agent checks. Tier 3 is agent-browser, a headless Rust CLI daemon that handles JavaScript rendering for dynamic SPAs. Tier 4 is the Bright Data MCP proxy — residential IPs, CAPTCHA solving, advanced bot-detection bypass — which has real usage costs and only runs when the first three tiers fail. FourTierScrape runs this escalation for a single URL. Crawl handles multi-page work: light crawl uses scrape_batch in a loop for up to 50 pages, full crawl hits the Bright Data Crawl API for entire sites. All output lands as markdown.

Not for simple public content (WebFetch), social data with named actors, logged-in browser sessions (Interceptor), or multi-source investigation (Research)

In Action

What you say to your DA, and what the BrightData skill actually does.

  • You say "scrape this page for me — it keeps blocking my requests"
    Runs FourTierScrape: tries WebFetch, escalates to curl with Chrome headers, then agent-browser for JS rendering, then Bright Data MCP if all else fails — returns the page content as markdown.
  • You say "crawl all the pages under the docs section of this site"
    Runs Crawl: light crawl mode uses scrape_batch in a loop with link extraction, up to 50 pages; if the site is larger, escalates to the Bright Data Crawl API — returns a site map plus page contents as markdown with crawl stats.

Inside the Skill

The thinking, frameworks, and architecture that distinguish this skill from a generic version of the same task.

Ideal State

  • Every page comes back as clean markdown that matches its URL, labeled with the tier that actually retrieved it.
  • Cost tracks need: free tiers are tried first, and paid Bright Data calls (Tier 4, whether for one URL or for the pages of a Light Crawl that need it, and Full Crawl) happen only when cheaper ones fail or the user confirms.
  • A crawl returns a site map, the page contents and its stats, with failed pages named rather than silently missing.

Intent Routing

Intent Trigger File
FourTierScrape "scrape/fetch/pull/get/retrieve [URL]", "fetch this page as markdown", "this page needs rendering", "use Bright Data to fetch" Intents/FourTierScrape.md
Crawl "crawl this site", "spider this domain", "map this website", "get all pages from", "scrape the whole site", "crawl all pages under /docs" Intents/Crawl.md

References

File Read when
Setup.md first-time setup: the free tiers, the paid Bright Data pieces (MCP server, API key, crawl dataset id), and a proof

The four tiers (tool contract)

Tier Tool Wins on Cost / latency
1 plain curl -sL, raw HTML converted to markdown locally public content free · ~1-3s
2 curl + declared user agent and Accept headers servers that need content negotiation free · ~3-7s
3 Interceptor (real Chrome) JavaScript-rendered / SPA pages free · ~10-20s
4 Bright Data MCP mcp__Brightdata__scrape_as_markdown managed rendering, region-specific fetches Bright Data credits · ~5-15s

Every tier returns the page itself. WebFetch is never a tier: it hands back a small model's summary of the page, not the page.

Skip-ahead: explicit "use Bright Data" → Tier 4; "use browser" → Tier 3; a domain that already failed Tier 1 for a non-refusal reason (empty body, timeout) → start at Tier 2. A CAPTCHA, block page or login wall at any tier ends the retrieval with a report. The exact curl header block, Cloudflare pre-check, and Interceptor commands live in Intents/FourTierScrape.md.

Data & Config

User customizations live at <configRoot>/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/BrightData/ (configRoot is $CLAUDE_CONFIG_DIR when set, else ~/.claude). If this directory exists, load and apply any PREFERENCES.md, configurations, or resources found there; they override default behavior. If it does not exist, proceed with skill defaults. First-time setup (accounts, keys, config, a proof it works) is in Setup.md.

The paid paths need pieces this skill does not install. Tier 4 needs the Bright Data MCP server, which supplies mcp__Brightdata__scrape_as_markdown and scrape_batch. Full Crawl needs BRIGHT_DATA_API_KEY and BRIGHT_DATA_CRAWL_DATASET_ID (the Crawl API dataset id from the Bright Data dashboard) in the environment. Before the first paid call, confirm the MCP tools are present in the session and that bun LIFEOS/TOOLS/Secrets.ts has BRIGHT_DATA_API_KEY BRIGHT_DATA_CRAWL_DATASET_ID prints yes for each key the call needs. When a piece is missing, stop at the last free tier and tell the user which piece is not configured; never report a Tier 4 or Full Crawl result that did not run.

Gotchas

  • Bright Data proxy has usage costs. Don't use Tier 4 for sites accessible via Tier 1-3.
  • Tier 4 is slower than the free tiers. Allow extra time for its responses.
  • Credentials belong in ~/.claude/.env — BRIGHT_DATA_API_KEY (the name Intents/Crawl.md commands read). Check as Data & Config says instead of assuming the paid tiers work.

Examples

  • "Fetch example.com/pricing as markdown" → FourTierScrape. The pre-check returns HTML, Tier 1 returns an empty body, and Tier 2's declared headers get the page, delivered as markdown labeled Tier 2. If Tier 1 had returned a block page instead, the reply would report the block and stop.
  • "Crawl the docs under docs.example.com/api/" → Crawl, a Light Crawl scoped to /api/, depth 3, at the default limit of 20 pages, which needs no confirmation (more than 20 does). Each page climbs the tiers on its own, and any page that needed Tier 4 is named in the stats with its cost.
  • "Use Bright Data to fetch this region-specific listing" → FourTierScrape, skipping to Tier 4. If the MCP server is not registered, the reply says so and offers the best free-tier result.

Workflows & Routing · 2

Each workflow is one job the skill runs. The trigger phrases route your request to the right one — this is the skill's routing table.

  1. 01
    FourTierScrape Intents/FourTierScrape.md

    scrape/fetch/pull/get/retrieve [URL], fetch this page as markdown, this page needs rendering, use Bright Data to fetch

  2. 02
    Crawl Intents/Crawl.md

    crawl this site, spider this domain, map this website, get all pages from, scrape the whole site, crawl all pages under /docs

Tools · 1

Deterministic executables the workflows call — the code that does the real work, not prompt scaffolding.

  • MarkdownPreCheck.ts

How to Invoke

Say any of these to your DA and LifeOS activates the BrightData skill automatically:

  • "Bright Data"
  • "scrape URL"
  • "web scraping"
  • "crawl site"
  • "extract page content"
  • "scrape whole site"
  • "spider domain"
  • "convert URL to markdown"
  • "page needs rendering"

Or invoke explicitly:

Skill("BrightData")

References · 1

Auxiliary files the skill loads at runtime — frameworks, guides, configs.

  • Setup

References & Credits

The thinkers, books, frameworks, and research this skill is built on. The ideas belong to them — the integration belongs to LifeOS.

Want LifeOS to do this for you?

Install LifeOS on your machine — your DA gets the BrightData skill plus 96 others, all hooked into one Life OS.