Jobs
Recurring loop: discovery → refresh → snapshot → matching → inference → reports → enrichment. Every run retries, logs status, and saves a cursor for partial reruns.
Registry (12 jobs)
| Job | Kind | Cron | Last run | Status | |
|---|---|---|---|---|---|
BoardGameOracle lists → canonical + signals bgo_refresh | refresh | 0 */6 * * * | 5h ago | ok | |
BGG hot games deep refresh (key) bgg_refresh_hot | refresh | manual | never | unknown | |
BGG full catalog backfill (key, cursor) bgg_backfill | discovery | manual | never | unknown | |
Kickstarter tabletop discovery ks_discover | discovery | 0 */6 * * * | 6h ago | ok | |
Kickstarter live campaigns: tiers + snapshots ks_enrich_live | enrichment | manual | 6h ago | ok | |
BackerKit probe + watchlist enrich bk_discover | discovery | manual | 6h ago | ok | |
Gamefound availability probe gamefound_probe | probe | manual | never | unknown | |
Promote v0.1 source records → canonical promote_v1 | recompute | manual | 14h ago | unknown | |
Entity matching / dedupe entity_match | matching | 30 */6 * * * | 7h ago | ok | |
Recompute all inference metrics inference_recompute | recompute | 45 */6 * * * | 7h ago | ok | |
Materialize trend/cohort/opportunity reports report_recompute | recompute | 0 7 * * * | 5h ago | ok | |
Store image assets for top titles enrich_images | enrichment | manual | 14h ago | ok |
Recent runs
| Job | Status | Attempts | Stats | Started |
|---|---|---|---|---|
| report_recompute | ok | 1 | {"reports":5,"trend_rows":7} | 5h ago |
| bgo_refresh | ok | 1 | {"games":27,"lists":4,"metrics":54,"products":32,"snapshots":35,"tag_links":27} | 5h ago |
| ks_enrich_live | ok | 1 | {} | 6h ago |
| ks_discover | ok | 1 | {"campaigns":156,"snapshots":156} | 6h ago |
| ks_discover | failed | 2 | 6h ago | |
| ks_enrich_live | ok | 1 | {} | 6h ago |
| bk_discover | ok | 2 | {"tiers":5,"projects":1} | 6h ago |
| ks_discover | failed | 2 | 6h ago | |
| ks_discover | ok | 1 | {"campaigns":59,"snapshots":59} | 7h ago |
| report_recompute | ok | 1 | {"reports":5,"trend_rows":7} | 7h ago |
| inference_recompute | ok | 1 | {"games":302,"metrics":54} | 7h ago |
| entity_match | ok | 1 | {"matched":0,"considered":40} | 7h ago |
| ks_enrich_live | ok | 1 | {} | 7h ago |
| ks_discover | ok | 1 | {"campaigns":59,"snapshots":59} | 7h ago |
| report_recompute | ok | 1 | {"reports":5,"trend_rows":7} | 7h ago |
| inference_recompute | ok | 1 | {"games":302,"metrics":54} | 7h ago |
| entity_match | ok | 1 | {"matched":0,"considered":0} | 7h ago |
| ks_discover | failed | 2 | 7h ago | |
| bgo_refresh | ok | 1 | {"games":27,"lists":4,"metrics":54,"products":32,"snapshots":35,"tag_links":27} | 7h ago |
| report_recompute | ok | 1 | {"reports":5,"trend_rows":7} | 13h ago |
| inference_recompute | ok | 1 | {"games":302,"metrics":54} | 13h ago |
| entity_match | ok | 1 | {"matched":0,"considered":0} | 13h ago |
| ks_discover | failed | 2 | 13h ago | |
| bgo_refresh | ok | 1 | {"games":27,"lists":4,"metrics":54,"products":32,"snapshots":35,"tag_links":27} | 13h ago |
| bgo_refresh | ok | 1 | {"games":27,"lists":4,"metrics":54,"products":32,"snapshots":35,"tag_links":27} | 14h ago |
| report_recompute | ok | 1 | {"reports":5,"trend_rows":7} | 14h ago |
| bgo_refresh | ok | 1 | {"games":27,"lists":4,"metrics":54,"products":32,"snapshots":35,"tag_links":27} | 14h ago |
| enrich_images | ok | 1 | {"images":30} | 14h ago |
| report_recompute | ok | 1 | {"reports":5,"trend_rows":0} | 14h ago |
| inference_recompute | ok | 1 | {"games":302,"metrics":54} | 14h ago |