{"service":"pairing worker","now":"2026-11-10T05:13:08+00:00","does":"Once a day, slowly: fetches new Board and committee transcripts from Legistar and the officials' campaign filings from DataSF, shortlists passages that touch a donor's stated priority, asks the AI filter to drop pairs that share only topic words or take opposing positions (kept with reasons), publishes the rest at once labelled as not reviewed by a person, and holds low-confidence pairs for review.","last_run":{"run_id":"5d491a7efbec","started_at":"2026-11-10T05:11:21+00:00","finished_at":"2026-11-10T05:12:02+00:00","status":"finished with errors","steps":[{"step":"meetings","status":"ok","detail":"7 meeting rows of the Board and its standing committees carry no transcript link","counts":{"calendar_rows":99,"with_transcript":92,"already_stored":11,"added":3,"route":"Legistar calendar"}},{"step":"money","status":"error","detail":"QueryError: HTTPError: HTTP Error 403: Forbidden (https://data.sf.gov/resource/pitq-e56w.json?%24select=max%28data_loaded_at%29+as+m)","counts":{}},{"step":"shortlist","status":"ok","detail":"87 new passages hit a donor's stated priority","counts":{"meetings_read":14,"funded_pairs":62,"new_candidates":87,"sent_to_filter":40,"left_for_next_run":47}},{"step":"filter","status":"ok","detail":"1 published automatically, 1 held for review, 38 dropped with reasons","counts":{"judged":40,"auto_approved":1,"held_for_review":1,"dropped":38,"undecided_errors":0}}]},"next_run_at":"2026-11-11T05:12:02+00:00","next_run_in_seconds":86333,"next":"a run of the steps meetings, money, shortlist, filter","last_error":"money: QueryError: HTTPError: HTTP Error 403: Forbidden (https://data.sf.gov/resource/pitq-e56w.json?%24select=max%28data_loaded_at%29+as+m)","counts":{"pairings_approved":6,"pairings_pending":4,"meetings_stored":14,"dropped_pairs_kept_with_reasons":67,"donor_statements":29,"approvals_logged":7}}