{"adoption": {"forks": 654, "observed_at": "2026-08-28T04:08:54.885567+00:00", "stars": 4603}, "canonical_url": "https://ross.abutalabs.com/products/serenata-de-amor", "card": {"archived": false, "artifact_type": "application", "description": "🕵 Artificial Intelligence for social control of public administration | **This repository does not receive frequent updates. Check out the README**", "domain": ["data-science", "artificial-intelligence", "analytics", "e-government"], "enriched": true, "function": ["machine-learning", "data-science", "nlp", "web-scraping", "analytics", "data-visualization"], "health_score": 20, "homepage": "https://serenata.ai/en", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["okfn-brasil/serenata-de-amor"], "name": "okfn-brasil/serenata-de-amor", "platform": ["python"], "pushed_at": "2024-01-31T20:29:15+00:00", "repo": "okfn-brasil/serenata-de-amor", "stars": 4603, "tags": ["civic-tech", "open-data", "public-spending-audit", "brazil", "government-transparency", "anomaly-detection", "congressional-expenses", "transparency", "linux", "docker", "web"], "topics": ["machine-learning", "data-science", "artificial-intelligence", "politics", "civic-tech", "open-data"], "urls": [], "use_cases": ["audit brazilian congresspeople expense reimbursements", "detect suspicious public spending with machine learning", "analyze CEAP parliamentary expense datasets", "browse and validate flagged expense suspicions", "build civic tech tools on open government data", "monitor public administration spending anomalies"], "what_it_is": "Operação Serenata de Amor is an open-source data science project that uses machine learning to audit Brazilian congresspeople's public expense reimbursements and flag suspicious spending. It powers Rosie, an AI agent that analyzes expenses and posts findings on social media, and Jarbas, a web interface for browsing the flagged data.", "when_to_avoid": ["you need actively maintained software - the repo no longer receives frequent updates", "you need auditing of non-Brazilian government data without significant adaptation", "you need a production-ready turnkey fraud detection system rather than a research/civic project"], "when_to_choose": ["you want to analyze or audit Brazilian public expense data (Chamber of Deputies, Federal Senate)", "you need an example of applied machine learning for government accountability", "you want to contribute to or extend a civic tech open-data project"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/serenata-de-amor", "repo": "okfn-brasil/serenata-de-amor", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:54.885567+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:19:46.215283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7beccfe1a4e948bc057aa5f211569bea9806d396dc77c36938b4fd9acd0d06e", "fetched_at": "2026-08-28T04:08:54.885567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/okfn-brasil/serenata-de-amor"}, {"content_hash": "a7207ba571c639ff3d74bbf9f5a20b32a589cd8544f6f2e977bb0f005b08bd31", "fetched_at": "2026-08-29T09:05:06.169555+00:00", "kind": "homepage", "missing": false, "url": "https://serenata.ai/en"}, {"content_hash": "6f44ba85137dc47f58bcd1dc9f8ba1bce36f6a9d553365509919bf1014efa871", "fetched_at": "2026-08-29T09:05:06.172562+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/about"}, {"content_hash": "44d1da5adb116d3a6288b8a1469238bf00d24d714de6af8af3ec407b2309e6a2", "fetched_at": "2026-08-29T09:05:06.175990+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/faq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:54.885567+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:19:46.215283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7beccfe1a4e948bc057aa5f211569bea9806d396dc77c36938b4fd9acd0d06e", "fetched_at": "2026-08-28T04:08:54.885567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/okfn-brasil/serenata-de-amor"}, {"content_hash": "a7207ba571c639ff3d74bbf9f5a20b32a589cd8544f6f2e977bb0f005b08bd31", "fetched_at": "2026-08-29T09:05:06.169555+00:00", "kind": "homepage", "missing": false, "url": "https://serenata.ai/en"}, {"content_hash": "6f44ba85137dc47f58bcd1dc9f8ba1bce36f6a9d553365509919bf1014efa871", "fetched_at": "2026-08-29T09:05:06.172562+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/about"}, {"content_hash": "44d1da5adb116d3a6288b8a1469238bf00d24d714de6af8af3ec407b2309e6a2", "fetched_at": "2026-08-29T09:05:06.175990+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/faq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:19:46.215283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7beccfe1a4e948bc057aa5f211569bea9806d396dc77c36938b4fd9acd0d06e", "fetched_at": "2026-08-28T04:08:54.885567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/okfn-brasil/serenata-de-amor"}, {"content_hash": "a7207ba571c639ff3d74bbf9f5a20b32a589cd8544f6f2e977bb0f005b08bd31", "fetched_at": "2026-08-29T09:05:06.169555+00:00", "kind": "homepage", "missing": false, "url": "https://serenata.ai/en"}, {"content_hash": "6f44ba85137dc47f58bcd1dc9f8ba1bce36f6a9d553365509919bf1014efa871", "fetched_at": "2026-08-29T09:05:06.172562+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/about"}, {"content_hash": "44d1da5adb116d3a6288b8a1469238bf00d24d714de6af8af3ec407b2309e6a2", "fetched_at": "2026-08-29T09:05:06.175990+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/faq"}], "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:08:54.885567+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:54.885567+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:54.885567+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:19:46.215283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7beccfe1a4e948bc057aa5f211569bea9806d396dc77c36938b4fd9acd0d06e", "fetched_at": "2026-08-28T04:08:54.885567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/okfn-brasil/serenata-de-amor"}, {"content_hash": "a7207ba571c639ff3d74bbf9f5a20b32a589cd8544f6f2e977bb0f005b08bd31", "fetched_at": "2026-08-29T09:05:06.169555+00:00", "kind": "homepage", "missing": false, "url": "https://serenata.ai/en"}, {"content_hash": "6f44ba85137dc47f58bcd1dc9f8ba1bce36f6a9d553365509919bf1014efa871", "fetched_at": "2026-08-29T09:05:06.172562+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/about"}, {"content_hash": "44d1da5adb116d3a6288b8a1469238bf00d24d714de6af8af3ec407b2309e6a2", "fetched_at": "2026-08-29T09:05:06.175990+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/faq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:54.885567+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:54.885567+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:19:46.215283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7beccfe1a4e948bc057aa5f211569bea9806d396dc77c36938b4fd9acd0d06e", "fetched_at": "2026-08-28T04:08:54.885567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/okfn-brasil/serenata-de-amor"}, {"content_hash": "a7207ba571c639ff3d74bbf9f5a20b32a589cd8544f6f2e977bb0f005b08bd31", "fetched_at": "2026-08-29T09:05:06.169555+00:00", "kind": "homepage", "missing": false, "url": "https://serenata.ai/en"}, {"content_hash": "6f44ba85137dc47f58bcd1dc9f8ba1bce36f6a9d553365509919bf1014efa871", "fetched_at": "2026-08-29T09:05:06.172562+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/about"}, {"content_hash": "44d1da5adb116d3a6288b8a1469238bf00d24d714de6af8af3ec407b2309e6a2", "fetched_at": "2026-08-29T09:05:06.175990+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/faq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:54.885567+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:54.885567+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:54.885567+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:19:46.215283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7beccfe1a4e948bc057aa5f211569bea9806d396dc77c36938b4fd9acd0d06e", "fetched_at": "2026-08-28T04:08:54.885567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/okfn-brasil/serenata-de-amor"}, {"content_hash": "a7207ba571c639ff3d74bbf9f5a20b32a589cd8544f6f2e977bb0f005b08bd31", "fetched_at": "2026-08-29T09:05:06.169555+00:00", "kind": "homepage", "missing": false, "url": "https://serenata.ai/en"}, {"content_hash": "6f44ba85137dc47f58bcd1dc9f8ba1bce36f6a9d553365509919bf1014efa871", "fetched_at": "2026-08-29T09:05:06.172562+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/about"}, {"content_hash": "44d1da5adb116d3a6288b8a1469238bf00d24d714de6af8af3ec407b2309e6a2", "fetched_at": "2026-08-29T09:05:06.175990+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/faq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:54.885567+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:54.885567+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:19:46.215283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7beccfe1a4e948bc057aa5f211569bea9806d396dc77c36938b4fd9acd0d06e", "fetched_at": "2026-08-28T04:08:54.885567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/okfn-brasil/serenata-de-amor"}, {"content_hash": "a7207ba571c639ff3d74bbf9f5a20b32a589cd8544f6f2e977bb0f005b08bd31", "fetched_at": "2026-08-29T09:05:06.169555+00:00", "kind": "homepage", "missing": false, "url": "https://serenata.ai/en"}, {"content_hash": "6f44ba85137dc47f58bcd1dc9f8ba1bce36f6a9d553365509919bf1014efa871", "fetched_at": "2026-08-29T09:05:06.172562+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/about"}, {"content_hash": "44d1da5adb116d3a6288b8a1469238bf00d24d714de6af8af3ec407b2309e6a2", "fetched_at": "2026-08-29T09:05:06.175990+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/faq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:19:46.215283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7beccfe1a4e948bc057aa5f211569bea9806d396dc77c36938b4fd9acd0d06e", "fetched_at": "2026-08-28T04:08:54.885567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/okfn-brasil/serenata-de-amor"}, {"content_hash": "a7207ba571c639ff3d74bbf9f5a20b32a589cd8544f6f2e977bb0f005b08bd31", "fetched_at": "2026-08-29T09:05:06.169555+00:00", "kind": "homepage", "missing": false, "url": "https://serenata.ai/en"}, {"content_hash": "6f44ba85137dc47f58bcd1dc9f8ba1bce36f6a9d553365509919bf1014efa871", "fetched_at": "2026-08-29T09:05:06.172562+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/about"}, {"content_hash": "44d1da5adb116d3a6288b8a1469238bf00d24d714de6af8af3ec407b2309e6a2", "fetched_at": "2026-08-29T09:05:06.175990+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/faq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:19:46.215283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7beccfe1a4e948bc057aa5f211569bea9806d396dc77c36938b4fd9acd0d06e", "fetched_at": "2026-08-28T04:08:54.885567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/okfn-brasil/serenata-de-amor"}, {"content_hash": "a7207ba571c639ff3d74bbf9f5a20b32a589cd8544f6f2e977bb0f005b08bd31", "fetched_at": "2026-08-29T09:05:06.169555+00:00", "kind": "homepage", "missing": false, "url": "https://serenata.ai/en"}, {"content_hash": "6f44ba85137dc47f58bcd1dc9f8ba1bce36f6a9d553365509919bf1014efa871", "fetched_at": "2026-08-29T09:05:06.172562+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/about"}, {"content_hash": "44d1da5adb116d3a6288b8a1469238bf00d24d714de6af8af3ec407b2309e6a2", "fetched_at": "2026-08-29T09:05:06.175990+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/faq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:19:46.215283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7beccfe1a4e948bc057aa5f211569bea9806d396dc77c36938b4fd9acd0d06e", "fetched_at": "2026-08-28T04:08:54.885567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/okfn-brasil/serenata-de-amor"}, {"content_hash": "a7207ba571c639ff3d74bbf9f5a20b32a589cd8544f6f2e977bb0f005b08bd31", "fetched_at": "2026-08-29T09:05:06.169555+00:00", "kind": "homepage", "missing": false, "url": "https://serenata.ai/en"}, {"content_hash": "6f44ba85137dc47f58bcd1dc9f8ba1bce36f6a9d553365509919bf1014efa871", "fetched_at": "2026-08-29T09:05:06.172562+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/about"}, {"content_hash": "44d1da5adb116d3a6288b8a1469238bf00d24d714de6af8af3ec407b2309e6a2", "fetched_at": "2026-08-29T09:05:06.175990+00:00", "kind": "site_page", "missing": false, "url": "https://serenata.ai/en/faq"}], "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": 3719, "days_push": 945, "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}}