{"adoption": {"forks": 49, "observed_at": "2026-08-28T04:04:23.727537+00:00", "stars": 1328}, "canonical_url": "https://ross.abutalabs.com/products/metascreener", "card": {"archived": false, "artifact_type": "application", "description": "AI-powered tool for efficient abstract and PDF screening in systematic reviews.", "domain": ["healthcare", "large-language-models", "artificial-intelligence", "education", "data-science"], "enriched": true, "function": ["llm-inference", "rag", "ocr", "pdf", "machine-learning", "web-framework", "api-framework"], "health_score": 91, "homepage": "https://www.metascreener.net/", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["ChaokunHong/MetaScreener"], "name": "ChaokunHong/MetaScreener", "platform": ["python", "self-hosted", "cross-platform", "cli"], "pushed_at": "2026-06-11T17:36:39+00:00", "repo": "ChaokunHong/MetaScreener", "stars": 1328, "tags": ["systematic-review", "literature-screening", "meta-analysis", "evidence-synthesis", "multi-llm-ensemble", "pico-criteria", "human-in-the-loop", "confidence-calibration", "active-learning", "ris-import", "natural-language-processing", "docker", "web-server"], "topics": ["literature-screening", "llm", "systematic-review", "deepseek", "pdf-screening", "metaanalysis", "screening", "screening-api", "deepseek-llm", "llama4scout", "mistral", "qwen3"], "urls": [], "use_cases": ["screen abstracts for a systematic review with AI", "automate title and abstract screening of PubMed search results", "apply PICO inclusion criteria to thousands of papers", "screen full-text PDFs with OCR for a meta-analysis", "reduce manual literature screening time in evidence synthesis", "flag uncertain studies for human review during screening", "export screening decisions to RIS or CSV for a review manager"], "what_it_is": "MetaScreener is an open-source AI tool that automates title/abstract and full-text PDF screening for systematic reviews using an ensemble of multiple open-source LLMs with calibrated confidence scoring. It ingests RIS/BibTeX/CSV search results, applies PICO/PEO/SPIDER criteria, auto-decides high-confidence cases, and routes uncertain ones to human review with full audit trails.", "when_to_avoid": ["you need fully automated screening with no human verification, as the tool is designed to escalate uncertain cases", "your review requires strict journal or Cochrane compliance that prohibits LLM-assisted screening", "you lack API access to any of the supported LLM providers", "you need a simple single-model classifier rather than a multi-LLM ensemble pipeline"], "when_to_choose": ["you are conducting a systematic review or meta-analysis and need to screen large volumes of citations", "you want reproducible, auditable AI screening with confidence scores rather than a single black-box model", "you need human-in-the-loop triage where only uncertain cases reach a reviewer", "you want a low-cost, privacy-conscious option using open-source LLMs and your own API keys"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/metascreener", "repo": "ChaokunHong/MetaScreener", "role": "main", "score": 71}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.727537+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:45:47.709577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2eb201b8f497abbbfe7e557d191f58b40d404c00c1e666d553b632b1288f01f2", "fetched_at": "2026-08-28T04:04:23.727537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChaokunHong/MetaScreener"}, {"content_hash": "6ff5985f56ee6c3006be09bf500f20338f22831efa7e163c959dcbc221053531", "fetched_at": "2026-08-29T12:04:49.878148+00:00", "kind": "homepage", "missing": false, "url": "https://www.metascreener.net/"}, {"content_hash": "2b799ca5ca1faea4a2e060eebb1d8d62afda69f3d6a2d2964d7f03cb5ea4877d", "fetched_at": "2026-08-29T12:04:49.888217+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/metascreener/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.727537+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:45:47.709577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2eb201b8f497abbbfe7e557d191f58b40d404c00c1e666d553b632b1288f01f2", "fetched_at": "2026-08-28T04:04:23.727537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChaokunHong/MetaScreener"}, {"content_hash": "6ff5985f56ee6c3006be09bf500f20338f22831efa7e163c959dcbc221053531", "fetched_at": "2026-08-29T12:04:49.878148+00:00", "kind": "homepage", "missing": false, "url": "https://www.metascreener.net/"}, {"content_hash": "2b799ca5ca1faea4a2e060eebb1d8d62afda69f3d6a2d2964d7f03cb5ea4877d", "fetched_at": "2026-08-29T12:04:49.888217+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/metascreener/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:45:47.709577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2eb201b8f497abbbfe7e557d191f58b40d404c00c1e666d553b632b1288f01f2", "fetched_at": "2026-08-28T04:04:23.727537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChaokunHong/MetaScreener"}, {"content_hash": "6ff5985f56ee6c3006be09bf500f20338f22831efa7e163c959dcbc221053531", "fetched_at": "2026-08-29T12:04:49.878148+00:00", "kind": "homepage", "missing": false, "url": "https://www.metascreener.net/"}, {"content_hash": "2b799ca5ca1faea4a2e060eebb1d8d62afda69f3d6a2d2964d7f03cb5ea4877d", "fetched_at": "2026-08-29T12:04:49.888217+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/metascreener/json"}], "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:04:23.727537+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.727537+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.727537+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:45:47.709577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2eb201b8f497abbbfe7e557d191f58b40d404c00c1e666d553b632b1288f01f2", "fetched_at": "2026-08-28T04:04:23.727537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChaokunHong/MetaScreener"}, {"content_hash": "6ff5985f56ee6c3006be09bf500f20338f22831efa7e163c959dcbc221053531", "fetched_at": "2026-08-29T12:04:49.878148+00:00", "kind": "homepage", "missing": false, "url": "https://www.metascreener.net/"}, {"content_hash": "2b799ca5ca1faea4a2e060eebb1d8d62afda69f3d6a2d2964d7f03cb5ea4877d", "fetched_at": "2026-08-29T12:04:49.888217+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/metascreener/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.727537+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.727537+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:45:47.709577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2eb201b8f497abbbfe7e557d191f58b40d404c00c1e666d553b632b1288f01f2", "fetched_at": "2026-08-28T04:04:23.727537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChaokunHong/MetaScreener"}, {"content_hash": "6ff5985f56ee6c3006be09bf500f20338f22831efa7e163c959dcbc221053531", "fetched_at": "2026-08-29T12:04:49.878148+00:00", "kind": "homepage", "missing": false, "url": "https://www.metascreener.net/"}, {"content_hash": "2b799ca5ca1faea4a2e060eebb1d8d62afda69f3d6a2d2964d7f03cb5ea4877d", "fetched_at": "2026-08-29T12:04:49.888217+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/metascreener/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.727537+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.727537+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.727537+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:45:47.709577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2eb201b8f497abbbfe7e557d191f58b40d404c00c1e666d553b632b1288f01f2", "fetched_at": "2026-08-28T04:04:23.727537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChaokunHong/MetaScreener"}, {"content_hash": "6ff5985f56ee6c3006be09bf500f20338f22831efa7e163c959dcbc221053531", "fetched_at": "2026-08-29T12:04:49.878148+00:00", "kind": "homepage", "missing": false, "url": "https://www.metascreener.net/"}, {"content_hash": "2b799ca5ca1faea4a2e060eebb1d8d62afda69f3d6a2d2964d7f03cb5ea4877d", "fetched_at": "2026-08-29T12:04:49.888217+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/metascreener/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.727537+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.727537+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:45:47.709577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2eb201b8f497abbbfe7e557d191f58b40d404c00c1e666d553b632b1288f01f2", "fetched_at": "2026-08-28T04:04:23.727537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChaokunHong/MetaScreener"}, {"content_hash": "6ff5985f56ee6c3006be09bf500f20338f22831efa7e163c959dcbc221053531", "fetched_at": "2026-08-29T12:04:49.878148+00:00", "kind": "homepage", "missing": false, "url": "https://www.metascreener.net/"}, {"content_hash": "2b799ca5ca1faea4a2e060eebb1d8d62afda69f3d6a2d2964d7f03cb5ea4877d", "fetched_at": "2026-08-29T12:04:49.888217+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/metascreener/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:45:47.709577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2eb201b8f497abbbfe7e557d191f58b40d404c00c1e666d553b632b1288f01f2", "fetched_at": "2026-08-28T04:04:23.727537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChaokunHong/MetaScreener"}, {"content_hash": "6ff5985f56ee6c3006be09bf500f20338f22831efa7e163c959dcbc221053531", "fetched_at": "2026-08-29T12:04:49.878148+00:00", "kind": "homepage", "missing": false, "url": "https://www.metascreener.net/"}, {"content_hash": "2b799ca5ca1faea4a2e060eebb1d8d62afda69f3d6a2d2964d7f03cb5ea4877d", "fetched_at": "2026-08-29T12:04:49.888217+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/metascreener/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:45:47.709577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2eb201b8f497abbbfe7e557d191f58b40d404c00c1e666d553b632b1288f01f2", "fetched_at": "2026-08-28T04:04:23.727537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChaokunHong/MetaScreener"}, {"content_hash": "6ff5985f56ee6c3006be09bf500f20338f22831efa7e163c959dcbc221053531", "fetched_at": "2026-08-29T12:04:49.878148+00:00", "kind": "homepage", "missing": false, "url": "https://www.metascreener.net/"}, {"content_hash": "2b799ca5ca1faea4a2e060eebb1d8d62afda69f3d6a2d2964d7f03cb5ea4877d", "fetched_at": "2026-08-29T12:04:49.888217+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/metascreener/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:45:47.709577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2eb201b8f497abbbfe7e557d191f58b40d404c00c1e666d553b632b1288f01f2", "fetched_at": "2026-08-28T04:04:23.727537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChaokunHong/MetaScreener"}, {"content_hash": "6ff5985f56ee6c3006be09bf500f20338f22831efa7e163c959dcbc221053531", "fetched_at": "2026-08-29T12:04:49.878148+00:00", "kind": "homepage", "missing": false, "url": "https://www.metascreener.net/"}, {"content_hash": "2b799ca5ca1faea4a2e060eebb1d8d62afda69f3d6a2d2964d7f03cb5ea4877d", "fetched_at": "2026-08-29T12:04:49.888217+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/metascreener/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 87, "longevity": 34, "rhythm": 71}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 482, "days_push": 83, "days_rel": 117, "gap_med": 71, "n_releases_24m": 4}, "score": 71, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}