{"adoption": {"forks": 246, "observed_at": "2026-08-28T04:03:39.223473+00:00", "stars": 1118}, "canonical_url": "https://ross.abutalabs.com/products/inventory-hunter", "card": {"archived": false, "artifact_type": "application", "description": "⚡️ Get notified as soon as your next CPU, GPU, or game console is in stock", "domain": ["e-commerce", "self-hosted"], "enriched": true, "function": ["web-scraping", "monitoring", "alerting", "workflow-automation"], "health_score": 20, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["EricJMarti/inventory-hunter"], "name": "EricJMarti/inventory-hunter", "platform": ["iot", "python", "self-hosted"], "pushed_at": "2023-01-13T17:51:32+00:00", "repo": "EricJMarti/inventory-hunter", "stars": 1118, "tags": ["stock-checker", "notification-bot", "discord-webhook", "slack-webhook", "telegram-webhook", "email-notifications", "gpu-stock", "retail-monitoring", "automation", "docker", "linux"], "topics": ["nvidia", "amd", "intel", "rtx3080", "rtx3070", "docker", "bot", "rtx3090", "python", "raspberrypi", "ps5", "xbox", "discord", "slack", "telegram", "ryzen"], "urls": [], "use_cases": ["get notified when an RTX 3080 is back in stock", "monitor PS5 or Xbox restocks at Best Buy or Newegg", "track CPU availability at Micro Center", "scrape retail sites for product stock changes", "send Discord alerts when hardware comes in stock", "run a restock watcher on a Raspberry Pi"], "what_it_is": "A Python-based stock monitoring bot that watches retail websites for inventory of items like CPUs, GPUs, and game consoles, and sends notifications via Discord, Slack, Telegram, or email. It runs as a Docker container, commonly deployed on a Raspberry Pi or always-on computer.", "when_to_avoid": ["you need a managed cloud service with a GUI", "you want to monitor sites requiring complex logins or CAPTCHA solving", "the project's retail site scrapers have broken due to site changes and you need guaranteed uptime"], "when_to_choose": ["you want automated notifications for hard-to-find hardware restocks", "you have an always-on device and a Discord/Slack/Telegram webhook or SMTP relay", "you prefer a Dockerized, self-hosted setup with YAML configs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/inventory-hunter", "repo": "EricJMarti/inventory-hunter", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.223473+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:41:27.086635+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e82219297f70d2650f47827fd9b367d589b4a8a468ccc20e62c663a6cc88ac34", "fetched_at": "2026-08-28T04:03:39.223473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EricJMarti/inventory-hunter"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.223473+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:41:27.086635+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e82219297f70d2650f47827fd9b367d589b4a8a468ccc20e62c663a6cc88ac34", "fetched_at": "2026-08-28T04:03:39.223473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EricJMarti/inventory-hunter"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:41:27.086635+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e82219297f70d2650f47827fd9b367d589b4a8a468ccc20e62c663a6cc88ac34", "fetched_at": "2026-08-28T04:03:39.223473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EricJMarti/inventory-hunter"}], "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:03:39.223473+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.223473+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.223473+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:41:27.086635+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e82219297f70d2650f47827fd9b367d589b4a8a468ccc20e62c663a6cc88ac34", "fetched_at": "2026-08-28T04:03:39.223473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EricJMarti/inventory-hunter"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.223473+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.223473+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:41:27.086635+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e82219297f70d2650f47827fd9b367d589b4a8a468ccc20e62c663a6cc88ac34", "fetched_at": "2026-08-28T04:03:39.223473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EricJMarti/inventory-hunter"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.223473+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.223473+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.223473+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:41:27.086635+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e82219297f70d2650f47827fd9b367d589b4a8a468ccc20e62c663a6cc88ac34", "fetched_at": "2026-08-28T04:03:39.223473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EricJMarti/inventory-hunter"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.223473+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.223473+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:41:27.086635+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e82219297f70d2650f47827fd9b367d589b4a8a468ccc20e62c663a6cc88ac34", "fetched_at": "2026-08-28T04:03:39.223473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EricJMarti/inventory-hunter"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:41:27.086635+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e82219297f70d2650f47827fd9b367d589b4a8a468ccc20e62c663a6cc88ac34", "fetched_at": "2026-08-28T04:03:39.223473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EricJMarti/inventory-hunter"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:41:27.086635+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e82219297f70d2650f47827fd9b367d589b4a8a468ccc20e62c663a6cc88ac34", "fetched_at": "2026-08-28T04:03:39.223473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EricJMarti/inventory-hunter"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:41:27.086635+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e82219297f70d2650f47827fd9b367d589b4a8a468ccc20e62c663a6cc88ac34", "fetched_at": "2026-08-28T04:03:39.223473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EricJMarti/inventory-hunter"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2116, "days_push": 1328, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}