{"adoption": {"forks": 2430, "observed_at": "2026-08-28T04:11:06.594781+00:00", "stars": 14242}, "canonical_url": "https://ross.abutalabs.com/products/ai-goofish-monitor", "card": {"archived": true, "artifact_type": "application", "description": "基于 Playwright 和AI实现的闲鱼多任务实时/定时监控与智能分析系统，配备了功能完善的后台管理UI。帮助用户从闲鱼海量商品中，找到心仪产品。", "domain": ["e-commerce", "artificial-intelligence", "web-development", "self-hosted"], "enriched": true, "function": ["web-scraping", "workflow-automation", "nlp", "machine-learning", "monitoring", "scheduling", "webhook", "search-engine"], "health_score": 10, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["Usagi-org/ai-goofish-monitor"], "name": "Usagi-org/ai-goofish-monitor", "platform": ["self-hosted", "python", "browser"], "pushed_at": "2026-05-18T10:52:34+00:00", "repo": "Usagi-org/ai-goofish-monitor", "stars": 14242, "tags": ["xianyu", "goofish", "playwright", "second-hand-marketplace", "price-monitoring", "gemini", "openai", "notification", "web-ui", "sqlite", "automation", "docker", "web-server"], "topics": ["ai", "playwright", "automation", "gemini", "goofish", "tool", "xianyu", "xian-yu", "ai-assistant", "ai-tools", "open-source", "xianyu-bot", "openai"], "urls": [], "use_cases": ["monitor xianyu listings for specific keywords and get notified", "use AI to filter second-hand marketplace items matching my requirements", "track price drops on goofish products", "scrape xianyu search results with region and price filters", "run scheduled marketplace monitoring tasks with cron", "manage multiple xianyu accounts with proxy rotation"], "what_it_is": "A self-hosted Python application that monitors Xianyu (Goofish, China's second-hand marketplace) listings in real time or on cron schedules using Playwright browser automation. It uses multimodal LLMs (OpenAI-compatible APIs) to analyze listings against natural-language criteria, with a full web admin UI, multi-account/proxy rotation, and multi-channel notifications.", "when_to_avoid": ["you need monitoring of marketplaces other than Xianyu", "you cannot provide an OpenAI-compatible multimodal API key", "your use case violates the platform's terms of service or local regulations around scraping"], "when_to_choose": ["you want automated, AI-analyzed monitoring of Xianyu/Goofish listings", "you need a ready-made web UI, scheduling, and notifications without building your own scraper", "you want Docker-based self-hosting with multi-account and proxy support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ai-goofish-monitor", "repo": "Usagi-org/ai-goofish-monitor", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.594781+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.302724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48f93b69d2ebcc1e8b56eaeebf8a9355b81ec2ca0d92b96fc540e6b3eb7c8681", "fetched_at": "2026-08-28T04:11:06.594781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Usagi-org/ai-goofish-monitor"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.594781+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.302724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48f93b69d2ebcc1e8b56eaeebf8a9355b81ec2ca0d92b96fc540e6b3eb7c8681", "fetched_at": "2026-08-28T04:11:06.594781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Usagi-org/ai-goofish-monitor"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.302724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48f93b69d2ebcc1e8b56eaeebf8a9355b81ec2ca0d92b96fc540e6b3eb7c8681", "fetched_at": "2026-08-28T04:11:06.594781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Usagi-org/ai-goofish-monitor"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.594781+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.594781+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.594781+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.302724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48f93b69d2ebcc1e8b56eaeebf8a9355b81ec2ca0d92b96fc540e6b3eb7c8681", "fetched_at": "2026-08-28T04:11:06.594781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Usagi-org/ai-goofish-monitor"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.594781+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.594781+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.302724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48f93b69d2ebcc1e8b56eaeebf8a9355b81ec2ca0d92b96fc540e6b3eb7c8681", "fetched_at": "2026-08-28T04:11:06.594781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Usagi-org/ai-goofish-monitor"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.594781+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.594781+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.594781+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.302724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48f93b69d2ebcc1e8b56eaeebf8a9355b81ec2ca0d92b96fc540e6b3eb7c8681", "fetched_at": "2026-08-28T04:11:06.594781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Usagi-org/ai-goofish-monitor"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.594781+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.594781+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.302724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48f93b69d2ebcc1e8b56eaeebf8a9355b81ec2ca0d92b96fc540e6b3eb7c8681", "fetched_at": "2026-08-28T04:11:06.594781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Usagi-org/ai-goofish-monitor"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.302724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48f93b69d2ebcc1e8b56eaeebf8a9355b81ec2ca0d92b96fc540e6b3eb7c8681", "fetched_at": "2026-08-28T04:11:06.594781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Usagi-org/ai-goofish-monitor"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.302724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48f93b69d2ebcc1e8b56eaeebf8a9355b81ec2ca0d92b96fc540e6b3eb7c8681", "fetched_at": "2026-08-28T04:11:06.594781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Usagi-org/ai-goofish-monitor"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.302724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48f93b69d2ebcc1e8b56eaeebf8a9355b81ec2ca0d92b96fc540e6b3eb7c8681", "fetched_at": "2026-08-28T04:11:06.594781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Usagi-org/ai-goofish-monitor"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 83, "longevity": 29, "rhythm": 81}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 413, "days_push": 107, "days_rel": 128, "gap_med": 2, "n_releases_24m": 8}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}