Chris Olson 9131e83c08 Improve signal quality (Exa news category) and remove mock fallback
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>
2026-06-24 10:41:41 -04:00

Prospecting Agent Loop

A closed-loop, account-intelligence system for enterprise sales prospecting: it monitors a list of target accounts, harvests business signals (news/web today; LinkedIn, job postings, and filings to come), evaluates them against a structured Capability Library of sellable products, and routes scored, signal-grounded opportunity briefs to the right rep — with rep feedback flowing back into scoring.

Contents

Status (MVP)

  • End-to-end loop runs: harvest → normalize/dedup → relevance filter → synthesize → score → deliver → feedback → recalibrate.
  • Capability Library seeded with 40 real Broadcom + VMware capabilities.
  • News connector: live Exa.ai with hard request ceilings (free-plan safe).
  • LLM reasoning: provider-agnostic (Gemini or Anthropic), with an offline mock fallback so the pipeline runs without a key.
  • Pilot accounts: 7 real companies wired in (~200 to follow).

Secrets live in sales-agent/.env (gitignored). See sales-agent/.env.example.

Quick start

cd sales-agent
cp .env.example .env      # add your keys (Exa, Gemini/Anthropic)
python3 run.py loop       # run the loop
python3 run.py digest     # per-rep daily digest
Description
No description provided
Readme 310 KiB
Languages
Python 100%