Chris Olson fefda7481f Capability-set targeting + Claude Code headless provider + resilience fixes
Capability targeting (new feature):
- loop --capability <SET|ALL> scopes which capability library the loop reasons
  against. data/capability_sets/<name>.json (same schema as capabilities.json)
  holds one-off targeted products; drop a file in and pass its name, no code
  changes. First set: agentminder (Broadcom AgentMinder, agentic-AI identity).
- capabilities.set_active_set() swaps the active library; keyword pre-filter is
  bypassed for small targeted sets so every signal is evaluated. New
  'capability-sets' command lists them; run banner shows the active set.

LLM provider — the '429' was a disguised policy block:
- Anthropic rejects Claude Code OAuth tokens on /v1/messages for non-Claude-Code
  traffic with a fake rate_limit_error (no anthropic-ratelimit-* headers). New
  'claude-cli' provider runs inference through the sanctioned headless path
  (claude -p --append-system-prompt --model), now the default provider.
- OAuth keychain token auto-refresh via headless claude when expired.

Resilience:
- STATE_DIR is overridable (macOS endpoint-security locked output/state via
  com.apple.macl); load_memory tolerates PermissionError; exa usage counter
  tolerates malformed files; run.py handles Ctrl-C cleanly (no traceback).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 09:00:02 -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%