Exa harvester:
- EXA_CATEGORY=news (default) restricts to news articles, excluding evergreen
careers/marketing landing pages that were producing irrelevant signals.
- Event-focused query (acquisition/earnings/launch/leadership), dropped
hiring/career terms that pulled recruiting pages.
- Domain scoping now OFF by default (broad-web news about the account beats
first-party careers pages); add EXA_EXCLUDE_DOMAINS and loop --domain-filter.
LLM layer:
- Remove the mock reasoner entirely (no provider => loop refuses to run).
- On HTTP 429, WAIT (LLM_RATELIMIT_WAIT_SECONDS, default 900s; honors
Retry-After) and retry up to LLM_RATELIMIT_MAX_RETRIES (24) instead of
degrading to mock output.
- If the LLM is ultimately unavailable for an account, skip it and leave its
signals unconsumed (retried next run) — never fabricate briefs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>