{"service":"pairing worker","now":"2026-11-06T23:47:36+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), and puts what is left in the review queue.","last_run":{"run_id":"4b04f8e5cc92","started_at":"2026-11-06T23:47:32+00:00","finished_at":null,"status":"running","steps":[{"step":"meetings","status":"running","detail":"","counts":{}}]},"next_run_at":"2026-11-06T23:47:32+00:00","next_run_in_seconds":0,"next":"a run of the steps meetings, money, shortlist, filter","last_error":null,"counts":{"pairings_approved":5,"pairings_pending":6,"meetings_stored":11,"dropped_pairs_kept_with_reasons":29,"donor_statements":34,"approvals_logged":12}}