Enterprise web scraping used to mean $2,000/month contracts or begging for API access. That era is not fully dead, but the open-source stack got good enough that I reach for paid scrapers less often on client RAG projects.
A viral GitHub thread mapped 10 repos that cover crawl, render, login, markdown conversion, and anti-detection. Here is how I think about the stack as an applied AI engineer shipping retrieval pipelines, not as a link dump.
The pipeline mental model
Every RAG ingestion job breaks into the same stages:
| Stage | Job | Typical tool |
|---|---|---|
| Discover | Find URLs to fetch | Sitemap, crawl frontier, search |
| Fetch + render | Get HTML/JS content | Headless browser or HTTP |
| Normalize | Clean markdown or JSON | Converter |
| Chunk + embed | Vector index | Your RAG framework |

Paid APIs sell you the whole column. Open source lets you swap components and own the failure modes.
Tools I reach for first
Firecrawl
Firecrawl is the default when a client says "index our marketing site" or "mirror this docs domain." Point it at a root URL, it crawls pages, renders JavaScript, and returns structured markdown your chunker can eat.
130k+ GitHub stars is not quality proof by itself, but it signals maintenance and community fixes for edge cases (SPAs, pagination, rate limits).
I already covered Firecrawl Anydoc for agent-side document parsing. Firecrawl proper is the site-scale layer. Anydoc is the single-file layer inside an agent loop.
browser-use
browser-use is an AI agent that drives a real browser: click, scroll, log in, fill forms. Built by ETH Zurich researchers; now past 100k stars.
Use it when curl and static HTML parsers fail: authenticated dashboards, multi-step flows, pages that only exist after UI interaction. It is slower and flakier than Firecrawl on static docs, but it reaches surfaces simple scrapers cannot.
Crawl4AI
Crawl4AI converts sites to clean markdown with no API keys and no per-page fees. Apache 2.0. Good fit when you want self-hosted crawl on a VPS or worker and full control over concurrency.
I pair it with local embedding models when the client wants zero data egress to third-party scrape vendors.
Microsoft MarkItDown
MarkItDown handles PDFs, Office docs, and images, not just HTML. Entire pipelines I maintain treat MarkItDown as the document ingress step before chunking.
If your RAG source is "folder of client PDFs plus public website," MarkItDown plus Firecrawl covers both sides.
Crawlee
Crawlee is the production framework layer: proxy rotation, auto-retries, session pools, anti-detection hooks. Apify open-sourced the core that powers their paid product.
When a scrape must run daily at scale with failure recovery, I wrap Crawlee around whichever fetcher fits the target site.
How I assemble a client stack
Small business lead site (marketing pages only):
- Firecrawl crawl → markdown
- Chunk with heading-aware splitter
- Embed into pgvector or Cloudflare Vectorize
Authenticated SaaS docs behind login:
- browser-use scripted login (or stored session cookies)
- Crawl4AI or Firecrawl on authenticated pages
- MarkItDown for PDF attachments linked from docs
High-volume competitive monitoring:
- Crawlee scheduler + proxies
- Diff against prior crawl
- Alert + optional embed only on changed chunks
None of these require a $2k/month SaaS scraper. You pay compute, storage, and maybe residential proxies. The trade-off is you own reliability.
What still breaks in production
Open source does not mean free of ops pain.
| Failure mode | Mitigation |
|---|---|
| JS-heavy SPAs | Headless render (Firecrawl, Playwright via Crawlee) |
| Bot detection | Crawlee proxies, rate limits, realistic headers |
| Legal / ToS | Client sign-off on crawl scope; respect robots.txt |
| Stale index | Scheduled re-crawl + chunk diff |
| PDF tables | MarkItDown + manual QA on worst files |
I also wire llms.txt and markdown mirrors on client sites when we control the origin. Scraping your own property is easier than scraping strangers. See AI SEO patterns when the goal is citation-ready content, not just retrieval.
Cost comparison (rough)
| Approach | Monthly cost driver | When it wins |
|---|---|---|
| Paid scrape API | Per page / per MB | Fast POC, low engineering time |
| Self-hosted stack | VPS + engineer time | Ongoing crawl, data residency |
| Hybrid | API for hard sites, OSS for bulk | Mixed sources, tight deadlines |
For founders who plan to re-index weekly, self-hosted usually wins by month three. For one-off "scrape this competitor once," a paid API might be rational.
Bottom line
The democratization headline from this digest is real: the expensive scrape layer got composable. Firecrawl for site markdown, browser-use for gated UI, MarkItDown for documents, Crawlee for production hardening.
You still need chunking strategy, eval sets, and refresh jobs. The tools just stopped being the bottleneck invoice.
If you want a RAG ingestion pipeline designed around your site, docs, and compliance constraints, book a free discovery call.

