{"ok":true,"cached":true,"plan":{"sql":"WITH platform_matches AS (\n  SELECT\n    id, full_name, title, url, total_users_30d, runs30_total, est_monthly_revenue,\n    CASE\n      WHEN (full_name || ' ' || COALESCE(title,'')) ILIKE '%job%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%recruit%'\n        THEN 'Jobs / recruiting'\n      WHEN (full_name || ' ' || COALESCE(title,'')) ILIKE '%company%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%companies%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%employee%'\n        THEN 'Company / employees'\n      WHEN (full_name || ' ' || COALESCE(title,'')) ILIKE '%sales%navigator%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%lead%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%email%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%contact%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%prospect%'\n        THEN 'Lead generation'\n      WHEN (full_name || ' ' || COALESCE(title,'')) ILIKE '%profile%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%people%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%person%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%user%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%account%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%channel%'\n        THEN 'Profiles / accounts'\n      WHEN (full_name || ' ' || COALESCE(title,'')) ILIKE '%search%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%keyword%'\n        THEN 'Search / discovery'\n      WHEN (full_name || ' ' || COALESCE(title,'')) ILIKE '%post%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%comment%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%feed%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%tweet%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%video%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%short%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%reel%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%transcript%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%subtitle%'\n        THEN 'Content / posts'\n      WHEN (full_name || ' ' || COALESCE(title,'')) ILIKE '%ad%'\n        OR (full_name || ' ' || COALESCE(title,'')) ILIKE '%advert%'\n        THEN 'Ads / marketing'\n      ELSE 'Other Twitter/X tools'\n    END AS platform_kind\n  FROM apify.actor\n  WHERE COALESCE(is_deprecated, false) = false\n    AND (LOWER(COALESCE(target_platform, '')) IN ('twitter_x') OR LOWER(COALESCE(full_name, '')) LIKE '%twitter%' OR LOWER(COALESCE(title, '')) LIKE '%twitter%' OR LOWER(COALESCE(full_name, '')) LIKE '%tweet%' OR LOWER(COALESCE(title, '')) LIKE '%tweet%' OR LOWER(COALESCE(full_name, '')) LIKE '%x-twitter%' OR LOWER(COALESCE(title, '')) LIKE '%x-twitter%' OR LOWER(COALESCE(full_name, '')) LIKE '%x.com%' OR LOWER(COALESCE(title, '')) LIKE '%x.com%')\n),\nkind_stats AS (\n  SELECT\n    platform_kind,\n    CAST(COUNT(*) AS int) AS type_actor_count,\n    CAST(COUNT(*) FILTER (WHERE COALESCE(est_monthly_revenue, 0) >= 100.0) AS int) AS type_over_threshold_actors,\n    CAST(ROUND(100.0 * COUNT(*) FILTER (WHERE COALESCE(est_monthly_revenue, 0) >= 100.0) / NULLIF(COUNT(*), 0), 2) AS double precision) AS type_over_threshold_pct,\n    CAST(MAX(COALESCE(est_monthly_revenue, 0)) AS double precision) AS top_estimated_monthly_revenue,\n    (ARRAY_AGG(full_name ORDER BY COALESCE(est_monthly_revenue, 0) DESC NULLS LAST, total_users_30d DESC NULLS LAST))[1] AS top_actor\n  FROM platform_matches\n  GROUP BY platform_kind\n),\nsummary AS (\n  SELECT\n    CAST(COUNT(*) AS int) AS total_platform_actors,\n    CAST(COUNT(DISTINCT platform_kind) AS int) AS platform_type_count,\n    CAST(100.0 AS double precision) AS revenue_threshold_usd,\n    CAST(COUNT(*) FILTER (WHERE COALESCE(est_monthly_revenue, 0) >= 100.0) AS int) AS over_threshold_actors,\n    CAST(ROUND(100.0 * COUNT(*) FILTER (WHERE COALESCE(est_monthly_revenue, 0) >= 100.0) / NULLIF(COUNT(*), 0), 2) AS double precision) AS over_threshold_pct,\n    CAST(SUM(COALESCE(est_monthly_revenue, 0)) AS double precision) AS total_estimated_monthly_revenue\n  FROM platform_matches\n)\nSELECT\n  0 AS sort_order,\n  platform_name || ' crawler summary' AS title,\n  platform_key,\n  platform_name,\n  NULL::text AS platform_kind,\n  total_platform_actors, platform_type_count, revenue_threshold_usd,\n  over_threshold_actors, over_threshold_pct, total_estimated_monthly_revenue,\n  NULL::int AS type_actor_count, NULL::int AS type_over_threshold_actors,\n  NULL::double precision AS type_over_threshold_pct,\n  NULL::text AS top_actor, NULL::double precision AS top_estimated_monthly_revenue\nFROM summary, (SELECT 'twitter_x' AS platform_key, 'Twitter/X' AS platform_name) p\nUNION ALL\nSELECT\n  CAST(ROW_NUMBER() OVER (ORDER BY type_actor_count DESC, top_estimated_monthly_revenue DESC) AS int) AS sort_order,\n  'Type - ' || platform_kind AS title,\n  'twitter_x' AS platform_key,\n  'Twitter/X' AS platform_name,\n  platform_kind,\n  NULL::int, NULL::int, CAST(100.0 AS double precision),\n  NULL::int, NULL::double precision, NULL::double precision,\n  type_actor_count, type_over_threshold_actors, type_over_threshold_pct,\n  top_actor, top_estimated_monthly_revenue\nFROM kind_stats\nORDER BY sort_order, type_actor_count DESC NULLS LAST\nLIMIT 8","mode":"sql","notes":[],"rationale":"pg sql path (Text-to-SQL / vector over pgvector)"},"results":[{"key":"Twitter/X crawler summary","url":null,"score":null,"title":"Twitter/X crawler summary","platform_key":"twitter_x","platform_name":"Twitter/X","over_threshold_pct":20.5,"platform_type_count":7,"over_threshold_actors":66,"revenue_threshold_usd":100,"total_platform_actors":322,"total_estimated_monthly_revenue":679942.5625},{"key":"Type - Other Twitter/X tools","url":null,"score":null,"title":"Type - Other Twitter/X tools","top_actor":"danek/twitter-scraper-ppr","platform_key":"twitter_x","platform_kind":"Other Twitter/X tools","platform_name":"Twitter/X","type_actor_count":104,"revenue_threshold_usd":100,"type_over_threshold_pct":13.46,"type_over_threshold_actors":14,"top_estimated_monthly_revenue":36504},{"key":"Type - Content / posts","url":null,"score":null,"title":"Type - Content / posts","top_actor":"xquik/x-tweet-scraper","platform_key":"twitter_x","platform_kind":"Content / posts","platform_name":"Twitter/X","type_actor_count":78,"revenue_threshold_usd":100,"type_over_threshold_pct":26.92,"type_over_threshold_actors":21,"top_estimated_monthly_revenue":361782},{"key":"Type - Profiles / accounts","url":null,"score":null,"title":"Type - Profiles / accounts","top_actor":"scraper_one/x-profile-posts-scraper","platform_key":"twitter_x","platform_kind":"Profiles / accounts","platform_name":"Twitter/X","type_actor_count":73,"revenue_threshold_usd":100,"type_over_threshold_pct":26.03,"type_over_threshold_actors":19,"top_estimated_monthly_revenue":29225},{"key":"Type - Search / discovery","url":null,"score":null,"title":"Type - Search / discovery","top_actor":"api-ninja/x-twitter-advanced-search","platform_key":"twitter_x","platform_kind":"Search / discovery","platform_name":"Twitter/X","type_actor_count":27,"revenue_threshold_usd":100,"type_over_threshold_pct":25.93,"type_over_threshold_actors":7,"top_estimated_monthly_revenue":24090.599609375},{"key":"Type - Lead generation","url":null,"score":null,"title":"Type - Lead generation","top_actor":"get-leads/all-in-one-x-scraper","platform_key":"twitter_x","platform_kind":"Lead generation","platform_name":"Twitter/X","type_actor_count":24,"revenue_threshold_usd":100,"type_over_threshold_pct":8.33,"type_over_threshold_actors":2,"top_estimated_monthly_revenue":491.760009765625},{"key":"Type - Ads / marketing","url":null,"score":null,"title":"Type - Ads / marketing","top_actor":"easyapi/twitter-thread-generator","platform_key":"twitter_x","platform_kind":"Ads / marketing","platform_name":"Twitter/X","type_actor_count":14,"revenue_threshold_usd":100,"type_over_threshold_pct":21.43,"type_over_threshold_actors":3,"top_estimated_monthly_revenue":4788},{"key":"Type - Jobs / recruiting","url":null,"score":null,"title":"Type - Jobs / recruiting","top_actor":"powerai/twitter-jobs-search-scraper","platform_key":"twitter_x","platform_kind":"Jobs / recruiting","platform_name":"Twitter/X","type_actor_count":2,"revenue_threshold_usd":100,"type_over_threshold_pct":0,"type_over_threshold_actors":0,"top_estimated_monthly_revenue":15.9700002670288}],"answer":"当前 playbook 快照中，Twitter/X 相关 Actor 共 322 个，粗分 7 类；估算月收入达到 US$100+ 的有 66 个，占 20.50%。 分类明细：Other Twitter/X tools: 104 个，14 个达标（13.46%），头部 danek/twitter-scraper-ppr / US$36,504.00；Content / posts: 78 个，21 个达标（26.92%），头部 xquik/x-tweet-scraper / US$361,782.00；Profiles / accounts: 73 个，19 个达标（26.03%），头部 scraper_one/x-profile-posts-scraper / US$29,225.00；Search / discovery: 27 个，7 个达标（25.93%），头部 api-ninja/x-twitter-advanced-search / US$24,090.60；Lead generation: 24 个，2 个达标（8.33%），头部 get-leads/all-in-one-x-scraper / US$491.76；Ads / marketing: 14 个，3 个达标（21.43%），头部 easyapi/twitter-thread-generator / US$4,788.00；Jobs / recruiting: 2 个，0 个达标（0.00%），头部 powerai/twitter-jobs-search-scraper / US$15.97。 这些 Actor 的估算月收入合计约 US$679,942.56。","meta":{"q":"有多少关于twitter的爬虫，分几类，每个月100美金以上收入占比多少","mode":"query","view":"auto","page":1,"limit":10}}