Skip to content

docs: distinguish scrape freshness from business-object liveness - #1144

Closed
hmishra2250 wants to merge 1 commit into
mainfrom
docs/freshness-vs-liveness
Closed

docs: distinguish scrape freshness from business-object liveness#1144
hmishra2250 wants to merge 1 commit into
mainfrom
docs/freshness-vs-liveness

Conversation

@hmishra2250

Copy link
Copy Markdown
Contributor

Problem

A successful, fresh scrape (HTTP 200 + content) proves a page rendered — it does not prove the object behind the page is still active. Applicant tracking systems make this trap concrete: Ashby can return a 200 while rendering "Job not found," and Greenhouse can redirect a removed posting to a generic board page that also returns 200. Agents and integrators reading our docs can mistake "the scrape worked" for "the job/listing is live" and take an irreversible action (e.g. submitting an application) against a dead object.

What's added and where

  • features/scrape.mdx: a new ### Freshness vs. liveness subsection immediately after ## Caching and maxAge. Covers the liveness rule, the ATS example, an evidence-inspection checklist (maxAge: 0 on the final read, metadata.url vs metadata.sourceURL redirect evidence, metadata.statusCode, content signals, treat inconclusive as unknown), and cross-links to Faster Scraping rather than restating cache mechanics.
  • agent-source-of-truth/{node,python,rust,java,elixir,curl}.mdx: a compact ### Freshness vs liveness note in each Scrape section right after the Parameters list, in each file's field-naming style (maxAge / max_age). Prose-only, ~11 lines each, no code snippets, to keep the diff small. These pages are not in the nav, so no docs.json change.

Total: 7 files, +84 lines. Content is consistent with the companion skills reference (same rules, same framing).

Non-goals (explicit)

  • No cacheState / cachedAt documentation. Their public semantics are under review (chore(api): remove dead maxAge forwarding to Fire Engine scrape requests firecrawl#4081); the new content relies only on metadata.url, metadata.sourceURL, and metadata.statusCode.
  • No new liveness field. Firecrawl deliberately has no generic business-object liveness field; liveness is a decision the caller makes from the evidence.
  • No changes to v1 pages (different maxAge defaults), docs.json nav, or any localized files under es/ fr/ ja/ zh/ pt-BR/.

Related


This is a draft for owner approval — please review before merge.

🤖 Generated with Claude Code

Add a "Freshness vs. liveness" subsection to features/scrape.mdx and a
compact note to each agent-source-of-truth SDK page. A fresh 200 scrape
proves a page rendered, not that the job posting/listing behind it is
still active (Ashby renders "Job not found" with a 200; Greenhouse
redirects removed postings to a board with a 200). Documents the
evidence-inspection checklist: maxAge: 0 on the final read, metadata.url
vs sourceURL redirect evidence, statusCode, content signals, and
treating inconclusive evidence as unknown before irreversible actions.

Relies on metadata.url/sourceURL/statusCode only; deliberately omits
cacheState/cachedAt (semantics under review, firecrawl/firecrawl#4081).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@mintlify

mintlify Bot commented Jul 19, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
firecrawl 🟢 Ready View Preview Jul 19, 2026, 9:09 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@hmishra2250

Copy link
Copy Markdown
Contributor Author

Superseded by #1145. The consolidated PR keeps one canonical guide plus a short link from the Scrape reference; the duplicated per-language notes are intentionally not carried over.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant