Review Browserless Terms for Automation Restrictions

Site browserless.ioTask review-terms-for-automation-restrictionsVersion v1Updated Aug 5, 2026Category legal-compliance

Read Browserless's current Terms of Service and extract contractual clauses relevant to automated outreach, spam, crawling or scraping, CAPTCHA, and security-control circumvention. This skill was captured from a live agent session on browserless.io and publishes here verbatim, exactly as an agent receives it.

NoteSelectors and URL schemes drift as sites change. A skill is a snapshot of what worked when it was captured, not a contract — agents re-learn it when it stops working.

Purpose

Retrieve Browserless's current Terms of Service and identify the exact contractual language relevant to an automated contact-form outreach product, including restrictions concerning spam or unsolicited communications, crawling or scraping, CAPTCHA handling, bots or automation, and bypassing security or access controls.

When to Use

Use when the caller needs a current, source-grounded review of Browserless's Terms of Service for an automation or outreach use case. This recipe extracts the relevant clauses from the live terms page rather than relying on remembered policy text or a previous snapshot.

Workflow

  1. Navigate directly to https://www.browserless.io/terms-of-service with domcontentloaded. Do not visit the homepage or interact with page controls.
  2. In the same browser-agent call, run this evaluate() on the loaded page. It returns the page's section text, exact sections matching relevant restriction terms, and apparent effective/revision-date lines:
(() => {
  const clean = (value) => (value || "").replace(/\\s+/g, " ").trim();
  const keywords =
    /spam|unsolicited|bulk|outreach|email|message|contact form|crawl|scrap|robot|bot|automated|automation|CAPTCHA|security|circumvent|bypass|evad|access control|rate limit|reverse engineer/i;
  const headings = [...document.querySelectorAll("h2")];
  const sections = headings
    .map((heading, index) => {
      const parts = [clean(heading.innerText || heading.textContent)];
      let node = heading.nextElementSibling;
      while (node && node.tagName !== "H2") {
        const text = clean(node.innerText || node.textContent);
        if (text) parts.push(text);
        node = node.nextElementSibling;
      }
      return {
        index,
        id: heading.id || null,
        heading: parts[0],
        text: parts.slice(1).join(" "),
        fullText: parts.join(" "),
        relevant: keywords.test(parts.join(" ")),
      };
    })
    .filter((section) => section.heading || section.text);
  const bodyLines = (document.body.innerText || "")
    .split(/\\n+/)
    .map(clean)
    .filter(Boolean);
  const dates = bodyLines
    .filter((line) =>
      /effective|updated|last revised|last modified|revision date/i.test(line),
    )
    .slice(0, 20);
  return {
    url: location.href,
    relevantSections: sections.filter((section) => section.relevant),
    allSections: sections,
    dates,
    keywordPattern: keywords.source,
  };
})();
  1. Summarize only what the returned clause text supports. Distinguish explicit prohibitions from provisions that merely regulate use, and flag when the Terms do not expressly mention one of the requested topics.

Site-Specific Gotchas

  • The terms page is directly reachable at /terms-of-service; no homepage navigation or consent/control interaction is required for this read-only task.
  • The page uses numbered h2 sections, including an observed h2#section-11. Section numbering or ids may change, so the extractor enumerates headings and uses keyword matching rather than depending on section 11 alone.
  • Relevant text is in sibling content following each h2 until the next h2; preserve the returned fullText so legal conclusions can be checked against the exact clause.
  • Search terms are intentionally broader than the requested labels: the Terms may describe CAPTCHA or security circumvention as bypassing access controls, evading restrictions, or similar language rather than using the word CAPTCHA.
  • The Terms can change. Always use the live page result and report any returned effective, updated, or revision-date line; do not present remembered language as current.

Expected Output

Return the page URL, apparent effective/revision dates, and the relevantSections array. For each relevant section, provide its heading, exact extracted text, and whether the clause appears to address spam or unsolicited outreach, crawling/scraping, CAPTCHA or bot handling, or security/access-control circumvention. Include a concise applicability assessment for the automated contact-form outreach product and explicitly note any requested topic for which no matching clause was found.

Call it

GET https://production-sfo.browserless.io/skills?token=TOKEN-HERE&domain=browserless.io&task=review-terms-for-automation-restrictions