{
  "project_id": "apify/crawlee",
  "repo": "apify/crawlee",
  "name": "crawlee",
  "github_url": "https://github.com/apify/crawlee",
  "homepage_url": "https://crawlee.dev",
  "language": "TypeScript",
  "license": "Apache-2.0",
  "project_kind": "project",
  "category": [
    "browser_agent"
  ],
  "tags": [
    "apify",
    "automation",
    "crawler",
    "crawling",
    "headless",
    "headless-chrome",
    "javascript",
    "nodejs",
    "npm",
    "playwright",
    "puppeteer",
    "scraper",
    "scraping",
    "typescript",
    "web-crawler",
    "web-crawling",
    "web-scraping"
  ],
  "description": "Crawlee—A web scraping and browser automation library for Node.js to build reliable crawlers. In JavaScript and TypeScript. Extract data for AI, LLMs, RAG, or GPTs. Download HTML, PDF, JPG, PNG, and other files from websites. Works with Puppeteer, Playwright, Cheerio, JSDOM, and raw HTTP. Both headful and headless mode. With proxy rotation.",
  "overview": "Use apify/crawlee when the user needs a browser agent project with docker, library-only, local deployment options.",
  "alternatives": [
    {
      "repo": "browser-use/browser-use",
      "reason": "Same browser agent intent with browser_automation, workflow overlap."
    },
    {
      "repo": "jackwener/OpenCLI",
      "reason": "Same browser agent intent with browser_automation, workflow overlap."
    },
    {
      "repo": "jo-inc/camofox-browser",
      "reason": "Same browser agent intent with browser_automation, workflow overlap."
    }
  ],
  "related": [
    {
      "repo": "apify/crawlee-python",
      "reason": "Related to apify/crawlee through browser agent category and library_only deployment."
    },
    {
      "repo": "tiliondev/fortress",
      "reason": "Related to apify/crawlee through browser agent category and docker deployment."
    },
    {
      "repo": "apify/apify-sdk-python",
      "reason": "Related to apify/crawlee through browser agent category and docker deployment."
    },
    {
      "repo": "jo-inc/camofox-browser",
      "reason": "Related to apify/crawlee through browser agent category and docker deployment."
    },
    {
      "repo": "browserless/browserless",
      "reason": "Related to apify/crawlee through browser agent category and docker deployment."
    },
    {
      "repo": "hyperbrowserai/HyperAgent",
      "reason": "Related to apify/crawlee through browser agent category and library_only deployment."
    },
    {
      "repo": "SeleniumHQ/selenium",
      "reason": "Related to apify/crawlee through browser agent category and docker deployment."
    },
    {
      "repo": "ScrapeGraphAI/scrapegraph-py",
      "reason": "Related to apify/crawlee through browser agent category and library_only deployment."
    }
  ],
  "dependencies": [
    "Vector database",
    "Browser automation",
    "LLM provider"
  ],
  "deployments": [
    "docker",
    "library_only",
    "local",
    "cloud"
  ],
  "difficulty": "intermediate",
  "cloudflare_ready": false,
  "use_cases": [
    "build browser automation agents",
    "operate web tasks with LLMs",
    "test web workflows"
  ],
  "not_good_for": [
    "edge-only Cloudflare Workers deployment without adaptation",
    "users expecting a complete hosted product"
  ],
  "classification": {
    "category": {
      "confidence": "high",
      "evidence": [
        "Matched \"browser automation\" in metadata.",
        "Matched \"playwright\" in metadata."
      ]
    },
    "deployment": {
      "confidence": "high",
      "evidence": [
        "Matched \"npm install\" in repository content.",
        "Matched \"library\" in repository content.",
        "Local usage is assumed for open source repositories unless contradicted."
      ]
    },
    "difficulty": {
      "confidence": "medium",
      "evidence": [
        "No strong beginner or advanced signal found; defaulting to intermediate."
      ]
    },
    "cloudflare_ready": {
      "confidence": "high",
      "evidence": [
        "Runtime blocker: python.",
        "No Cloudflare deployment signal detected.",
        "No wrangler.toml found in inspected repository files."
      ]
    }
  },
  "quality_signals": {
    "stars": 25833,
    "recent_commits": 48,
    "contributors": 100,
    "issue_response_time_hours": null,
    "release_frequency_180d": 4
  },
  "quality_signal_confidence": {
    "stars_30d_delta": "snapshot",
    "stars30d_window_days": 30,
    "commits_30d": "complete",
    "releases_180d": "complete",
    "contributors_90d": "partial"
  },
  "quality_score": 40,
  "agent_score": 82,
  "score": 88,
  "agent_score_breakdown": {
    "documentation": 90,
    "maintenance": 51,
    "deployment": 90,
    "popularity": 88,
    "community": 100
  },
  "git_top_score": 88,
  "git_top_score_breakdown": {
    "community": 100,
    "maintenance": 62,
    "documentation": 84,
    "stability": 90,
    "adoption": 100,
    "agent_readability": 100
  },
  "verification": {
    "schema_version": "git-top.verification.v1",
    "overall_status": "partial",
    "observed_at": "2026-09-18T18:30:55.194Z",
    "signals": {
      "activity": {
        "status": "observed",
        "source": "github_metadata",
        "evidence": [
          "project.pushed_at",
          "metrics.recent_push_days"
        ]
      },
      "license": {
        "status": "observed",
        "source": "github_metadata",
        "evidence": [
          "project.license"
        ]
      },
      "documentation": {
        "status": "observed",
        "source": "github_metadata",
        "evidence": [
          "project.description"
        ]
      },
      "runtime": {
        "status": "inferred",
        "source": "git_top_heuristic",
        "evidence": [
          "agent_card.deployment",
          "agent_card.cloudflare_ready"
        ]
      },
      "install": {
        "status": "not_run",
        "source": "git_top_runtime",
        "evidence": [
          "installation/build probe is not enabled"
        ]
      },
      "security": {
        "status": "not_run",
        "source": "git_top_runtime",
        "evidence": [
          "dependency/security scan is not enabled"
        ]
      },
      "mcp": {
        "status": "not_applicable",
        "source": "git_top_runtime",
        "evidence": [
          "project is not classified as mcp_server"
        ]
      }
    },
    "coverage": {
      "observed": 3,
      "inferred": 1,
      "not_run": 2,
      "unknown": 0
    },
    "next_steps": [
      "Run an installation/build probe before production adoption.",
      "Run a dependency and security scan before treating the score as a trust claim."
    ]
  },
  "summary": {
    "tl_dr": "Use apify/crawlee when the user needs a browser agent project with docker, library-only, local deployment options.",
    "purpose": "Use apify/crawlee when the user needs a browser agent project with docker, library-only, local deployment options.",
    "install": "Run with Docker using the repository's container instructions.",
    "inputs": [
      "URL or page task",
      "browser session",
      "navigation constraints"
    ],
    "outputs": [
      "browser actions",
      "page state",
      "extracted data"
    ],
    "good_for": [
      "build browser automation agents",
      "operate web tasks with LLMs",
      "test web workflows",
      "web automation",
      "browser tasks",
      "UI-driven workflows"
    ],
    "not_good_for": [
      "edge-only Cloudflare Workers deployment without adaptation",
      "users expecting a complete hosted product",
      "backend-only jobs",
      "offline batch processing"
    ],
    "deployment": [
      "docker",
      "library_only",
      "local",
      "cloud"
    ],
    "alternatives": [
      {
        "repo": "browser-use/browser-use",
        "reason": "Same browser agent intent with browser_automation, workflow overlap."
      },
      {
        "repo": "jackwener/OpenCLI",
        "reason": "Same browser agent intent with browser_automation, workflow overlap."
      },
      {
        "repo": "jo-inc/camofox-browser",
        "reason": "Same browser agent intent with browser_automation, workflow overlap."
      }
    ]
  },
  "evidence": {
    "classification": {
      "category": {
        "confidence": "high",
        "evidence": [
          "Matched \"browser automation\" in metadata.",
          "Matched \"playwright\" in metadata."
        ]
      },
      "deployment": {
        "confidence": "high",
        "evidence": [
          "Matched \"npm install\" in repository content.",
          "Matched \"library\" in repository content.",
          "Local usage is assumed for open source repositories unless contradicted."
        ]
      },
      "difficulty": {
        "confidence": "medium",
        "evidence": [
          "No strong beginner or advanced signal found; defaulting to intermediate."
        ]
      },
      "cloudflare_ready": {
        "confidence": "high",
        "evidence": [
          "Runtime blocker: python.",
          "No Cloudflare deployment signal detected.",
          "No wrangler.toml found in inspected repository files."
        ]
      }
    },
    "quality_signal_confidence": {
      "stars_30d_delta": "snapshot",
      "stars30d_window_days": 30,
      "commits_30d": "complete",
      "releases_180d": "complete",
      "contributors_90d": "partial"
    },
    "verification": {
      "schema_version": "git-top.verification.v1",
      "overall_status": "partial",
      "observed_at": "2026-09-18T18:30:55.194Z",
      "signals": {
        "activity": {
          "status": "observed",
          "source": "github_metadata",
          "evidence": [
            "project.pushed_at",
            "metrics.recent_push_days"
          ]
        },
        "license": {
          "status": "observed",
          "source": "github_metadata",
          "evidence": [
            "project.license"
          ]
        },
        "documentation": {
          "status": "observed",
          "source": "github_metadata",
          "evidence": [
            "project.description"
          ]
        },
        "runtime": {
          "status": "inferred",
          "source": "git_top_heuristic",
          "evidence": [
            "agent_card.deployment",
            "agent_card.cloudflare_ready"
          ]
        },
        "install": {
          "status": "not_run",
          "source": "git_top_runtime",
          "evidence": [
            "installation/build probe is not enabled"
          ]
        },
        "security": {
          "status": "not_run",
          "source": "git_top_runtime",
          "evidence": [
            "dependency/security scan is not enabled"
          ]
        },
        "mcp": {
          "status": "not_applicable",
          "source": "git_top_runtime",
          "evidence": [
            "project is not classified as mcp_server"
          ]
        }
      },
      "coverage": {
        "observed": 3,
        "inferred": 1,
        "not_run": 2,
        "unknown": 0
      },
      "next_steps": [
        "Run an installation/build probe before production adoption.",
        "Run a dependency and security scan before treating the score as a trust claim."
      ]
    },
    "source_fields": [
      "project.description",
      "project.topics",
      "project.language",
      "project.license",
      "agent_card.summary_for_agent",
      "agent_card.use_cases",
      "agent_card.deployment",
      "agent_card.classification",
      "metrics",
      "verification.signals"
    ],
    "caveats": [
      "edge-only Cloudflare Workers deployment without adaptation",
      "users expecting a complete hosted product",
      "Partial or estimated quality signals: contributors90d.",
      "Independent installation, security, or runtime probes have not been run for this project."
    ],
    "confidence_reason": "Classification evidence and quality signals are strong enough for shortlist reasoning when metadata is current.",
    "last_verified_at": "2026-09-18T18:30:55.194Z"
  },
  "caveats": [
    "edge-only Cloudflare Workers deployment without adaptation",
    "users expecting a complete hosted product",
    "Partial or estimated quality signals: contributors90d.",
    "Independent installation, security, or runtime probes have not been run for this project."
  ],
  "confidence_reason": "Classification evidence and quality signals are strong enough for shortlist reasoning when metadata is current.",
  "source_fields": [
    "project.description",
    "project.topics",
    "project.language",
    "project.license",
    "agent_card.summary_for_agent",
    "agent_card.use_cases",
    "agent_card.deployment",
    "agent_card.classification",
    "metrics",
    "verification.signals"
  ],
  "last_verified_at": "2026-09-18T18:30:55.194Z",
  "knowledge": {
    "project": {
      "id": "apify/crawlee",
      "owner": "apify",
      "name": "crawlee",
      "full_name": "apify/crawlee",
      "github_url": "https://github.com/apify/crawlee",
      "homepage_url": "https://crawlee.dev",
      "description": "Crawlee—A web scraping and browser automation library for Node.js to build reliable crawlers. In JavaScript and TypeScript. Extract data for AI, LLMs, RAG, or GPTs. Download HTML, PDF, JPG, PNG, and other files from websites. Works with Puppeteer, Playwright, Cheerio, JSDOM, and raw HTTP. Both headful and headless mode. With proxy rotation.",
      "language": "TypeScript",
      "topics": [
        "apify",
        "automation",
        "crawler",
        "crawling",
        "headless",
        "headless-chrome",
        "javascript",
        "nodejs",
        "npm",
        "playwright",
        "puppeteer",
        "scraper",
        "scraping",
        "typescript",
        "web-crawler",
        "web-crawling",
        "web-scraping"
      ],
      "license": "Apache-2.0",
      "stars": 25833,
      "forks": 1672,
      "open_issues": 143,
      "default_branch": "master",
      "created_at": "2016-08-26T18:35:03Z",
      "updated_at": "2026-09-18T16:12:27Z",
      "pushed_at": "2026-09-17T16:49:36Z",
      "synced_at": "2026-09-18T18:30:55.194Z"
    },
    "agent_card": {
      "project_id": "apify/crawlee",
      "project_kind": "project",
      "category": "browser_agent",
      "difficulty": "intermediate",
      "deployment": [
        "docker",
        "library_only",
        "local",
        "cloud"
      ],
      "cloudflare_ready": false,
      "use_cases": [
        "build browser automation agents",
        "operate web tasks with LLMs",
        "test web workflows"
      ],
      "not_good_for": [
        "edge-only Cloudflare Workers deployment without adaptation",
        "users expecting a complete hosted product"
      ],
      "alternatives": [
        {
          "project_id": "browser-use/browser-use",
          "reason": "Same browser agent intent with browser_automation, workflow overlap."
        },
        {
          "project_id": "jackwener/OpenCLI",
          "reason": "Same browser agent intent with browser_automation, workflow overlap."
        },
        {
          "project_id": "jo-inc/camofox-browser",
          "reason": "Same browser agent intent with browser_automation, workflow overlap."
        }
      ],
      "summary_for_agent": "Use apify/crawlee when the user needs a browser agent project with docker, library-only, local deployment options.",
      "classification": {
        "category": {
          "confidence": "high",
          "evidence": [
            "Matched \"browser automation\" in metadata.",
            "Matched \"playwright\" in metadata."
          ]
        },
        "deployment": {
          "confidence": "high",
          "evidence": [
            "Matched \"npm install\" in repository content.",
            "Matched \"library\" in repository content.",
            "Local usage is assumed for open source repositories unless contradicted."
          ]
        },
        "difficulty": {
          "confidence": "medium",
          "evidence": [
            "No strong beginner or advanced signal found; defaulting to intermediate."
          ]
        },
        "cloudflare_ready": {
          "confidence": "high",
          "evidence": [
            "Runtime blocker: python.",
            "No Cloudflare deployment signal detected.",
            "No wrangler.toml found in inspected repository files."
          ]
        }
      },
      "schema_version": "v1",
      "generated_at": "2026-09-18T18:30:55.194Z"
    },
    "metrics": {
      "project_id": "apify/crawlee",
      "stars_30d_delta": 406,
      "commits_30d": 48,
      "releases_180d": 4,
      "contributors_90d": 100,
      "issue_first_response_median_hours": null,
      "recent_push_days": 1,
      "git_score": 40,
      "maintenance_score": 51,
      "signal_confidence": {
        "stars_30d_delta": "snapshot",
        "stars30d_window_days": 30,
        "commits_30d": "complete",
        "releases_180d": "complete",
        "contributors_90d": "partial"
      },
      "calculated_at": "2026-09-18T18:30:55.194Z"
    }
  },
  "resolved_from": {
    "requested_id": "apify/crawlee",
    "resolved_id": "apify/crawlee",
    "resolution": "direct"
  },
  "metadata": {
    "source": "d1",
    "reason": "d1_query",
    "project_count": 1213,
    "generated_at": "2026-09-20T02:48:08.624Z",
    "snapshot_id": "d1:1213:2026-09-20T02:30:40.753Z",
    "latest_synced_at": "2026-09-20T02:30:40.753Z",
    "schema_version": "git-top.knowledge.v1",
    "loaded_project_limit": 2000,
    "truncated": false
  }
}