{
  "project": {
    "project_id": "apify/crawlee",
    "repo": "apify/crawlee",
    "name": "crawlee",
    "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.",
    "category": [
      "browser_agent"
    ],
    "language": "TypeScript",
    "license": "Apache-2.0"
  },
  "project_id": "apify/crawlee",
  "score": 88,
  "git_top_score": 88,
  "quality_score": 40,
  "agent_score": 82,
  "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."
    ]
  },
  "git_top_score_breakdown": {
    "community": 100,
    "maintenance": 62,
    "documentation": 84,
    "stability": 90,
    "adoption": 100,
    "agent_readability": 100
  },
  "dimensions": [
    {
      "key": "community",
      "label": "Community",
      "score": 100,
      "weight": 16,
      "contribution": 16,
      "explanation": "Community reflects contributor activity and ecosystem attention. Current contributor signal is 100."
    },
    {
      "key": "maintenance",
      "label": "Maintenance",
      "score": 62,
      "weight": 20,
      "contribution": 12.4,
      "explanation": "Maintenance reflects repository activity, commits, releases, issue-response signals, and recent push freshness."
    },
    {
      "key": "documentation",
      "label": "Documentation",
      "score": 84,
      "weight": 16,
      "contribution": 13.4,
      "explanation": "Agent-readable documentation signals are strong enough for recommendation workflows."
    },
    {
      "key": "stability",
      "label": "Stability",
      "score": 90,
      "weight": 16,
      "contribution": 14.4,
      "explanation": "Stability reflects release cadence, issue load, recent activity, and maturity signals."
    },
    {
      "key": "adoption",
      "label": "Adoption",
      "score": 100,
      "weight": 16,
      "contribution": 16,
      "explanation": "Adoption is normalized from stars, forks, and ecosystem attention signals."
    },
    {
      "key": "agent_readability",
      "label": "Agent Readability",
      "score": 100,
      "weight": 16,
      "contribution": 16,
      "explanation": "Agent readability reflects summaries, use cases, tradeoffs, dependencies, alternatives, and deployment clarity."
    }
  ],
  "summary": "apify/crawlee scores 88/100. Community is strongest at 100/100; Maintenance is the lowest dimension at 62/100.",
  "adoption_guidance": "Promising candidate. Review risk flags, weakest score dimension, and alternatives before recommending it as the default choice.",
  "risk_flags": [
    "Known caveat: edge-only Cloudflare Workers deployment without adaptation"
  ],
  "score_confidence": {
    "level": "high",
    "summary": "Score evidence is strong enough for shortlist ranking when paired with current metadata.",
    "reasons": [
      "All score evidence checks are strong."
    ],
    "evidence_checklist": [
      {
        "signal": "Classification evidence",
        "status": "strong",
        "description": "3/4 classification signals are high-confidence."
      },
      {
        "signal": "Quality signal completeness",
        "status": "strong",
        "description": "3 quality signals are complete or snapshot-backed."
      },
      {
        "signal": "Deployment clarity",
        "status": "strong",
        "description": "4 deployment targets are indexed."
      },
      {
        "signal": "Agent-readable context",
        "status": "strong",
        "description": "3 use cases and 3 inferred dependencies are available."
      },
      {
        "signal": "Tradeoff disclosure",
        "status": "strong",
        "description": "2 caveats are indexed for adoption decisions."
      }
    ],
    "citation_guidance": "When citing this score, include metadata.source, weakest_dimension, risk_flags, and score_confidence.level."
  },
  "next_actions": [
    {
      "label": "Open project knowledge",
      "href": "/projects/apify/crawlee",
      "kind": "project"
    },
    {
      "label": "Inspect graph",
      "href": "/graph/apify/crawlee",
      "kind": "graph"
    },
    {
      "label": "Find alternatives",
      "href": "/alternatives/apify/crawlee",
      "kind": "alternatives"
    },
    {
      "label": "Compare shortlist",
      "href": "/api/compare?repos=apify/crawlee",
      "kind": "compare"
    },
    {
      "label": "Get category recommendations",
      "href": "/api/recommend?category=browser_agent&limit=5",
      "kind": "recommend"
    }
  ],
  "strongest_dimension": {
    "key": "community",
    "label": "Community",
    "score": 100,
    "weight": 16,
    "contribution": 16,
    "explanation": "Community reflects contributor activity and ecosystem attention. Current contributor signal is 100."
  },
  "weakest_dimension": {
    "key": "maintenance",
    "label": "Maintenance",
    "score": 62,
    "weight": 20,
    "contribution": 12.4,
    "explanation": "Maintenance reflects repository activity, commits, releases, issue-response signals, and recent push freshness."
  },
  "related_scores": {
    "quality_score": 40,
    "agent_score": 82,
    "agent_score_breakdown": {
      "documentation": 90,
      "maintenance": 51,
      "deployment": 90,
      "popularity": 88,
      "community": 100
    }
  },
  "evidence": {
    "deployments": [
      "docker",
      "library_only",
      "local",
      "cloud"
    ],
    "dependencies": [
      "Vector database",
      "Browser automation",
      "LLM provider"
    ],
    "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"
    ],
    "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"
    },
    "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."
      ]
    },
    "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."
        ]
      }
    },
    "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": "Score evidence is strong enough for shortlist ranking when paired with current metadata.",
  "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",
  "links": {
    "page": "/score/apify/crawlee",
    "project_api": "/api/project/apify/crawlee",
    "graph_api": "/api/graph/apify/crawlee",
    "alternatives_api": "/api/alternatives/apify/crawlee",
    "compare_api": "/api/compare?repos=apify/crawlee",
    "recommendations_api": "/api/recommend?category=browser_agent&limit=5"
  },
  "metadata": {
    "source": "d1",
    "reason": "d1_query",
    "project_count": 1213,
    "generated_at": "2026-09-20T03:23:48.618Z",
    "snapshot_id": "d1:1213:2026-09-20T03:00:42.286Z",
    "latest_synced_at": "2026-09-20T03:00:42.286Z",
    "schema_version": "git-top.knowledge.v1",
    "loaded_project_limit": 2000,
    "truncated": false
  }
}