Files
ProspectingAgentLoop/sales-agent/src/connectors/jobs.py
Chris Olson 39a338990f Initial commit: prospecting agent loop MVP
Closed-loop account-intelligence system: harvest -> relevance filter vs.
Capability Library -> synthesize -> score -> deliver -> feedback.

- 40-capability Broadcom + VMware library
- Live Exa.ai news connector with hard free-plan request ceilings
- Provider-agnostic LLM layer (Gemini/Anthropic) with offline mock fallback
- LLM confidence wired into composite scoring + low-confidence floor
- 7-account pilot list

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 11:39:59 -04:00

25 lines
878 B
Python

"""Job posting harvester (v1 placeholder -> JSearch/Adzuna in production)."""
from __future__ import annotations
from ..types import RawSignal
from . import account_fixture
def harvest(account: dict) -> list[RawSignal]:
out: list[RawSignal] = []
for item in account_fixture(account["accountId"]).get("jobs", []):
count = item.get("count", 1)
prefix = f"[{count} openings] " if count > 1 else ""
out.append(
RawSignal(
account_id=account["accountId"],
source="jobs",
signal_type="hiring_surge" if count > 1 else "job_posting",
content=f"{prefix}{item['title']}: {item['content']}",
published_at=item["publishedAt"],
url=item["url"],
extra={"title": item["title"], "count": count},
)
)
return out