PitchLoop
Researches an ordered prospect queue, calls each eligible owner once, learns from every outcome, and extends its own research toolset when a capability is missing.
🥈 Runner-up, Best Use of Zero.xyz — Loop Engineering Hackathon, San Francisco, July 2026 (65 submissions).
The loop
goal → prospect discovery → ordered queue → policy check → tool assessment
→ business research → one call → normalized diagnosis → reflection
→ strategy or tool improvement → next uncalled owner → qualified meeting
Every branch is taken inside an explicit state machine, driven by recorded policy decisions, service matches, normalized evidence, conformance results, and call outcomes — not by a model deciding what to do next.
The demo campaign sells a website-building service to a fictional cohort. One contact is denied by policy and is never called. Each eligible owner is called at most once. The first call exposes a missing website-audit capability; later calls surface objections around value, proof, friction, and timing; the accumulated strategy eventually books the meeting.
The interesting part: the agent writes its own missing tool
When diagnosis records that a capability (fact_b) doesn't exist, the agent first searches Zero.xyz for one. Only on a no-match does it author the tool itself — and the generator may write only allowlisted files. The result must record a passing conformance run before the repository adapter can open a pull request, and the tool registry reloads it only after the merge artifact exists. Self-extension, but gated behind a test and a merge rather than trusted on faith.
Guard rails
Consent is structural, not advisory. Every live call is routed by Zero.xyz to one configured, consented teammate number; the repository contains no real prospect phone list, and candidate IDs select only the demo persona and its evidence. No policy allow decision, no call path. A budget ledger prices known actions before spending and records actual receipt totals after.
Honest scope
A one-day build with a fictional cohort, a deterministic campaign, and one generated capability. The integrated demo runs end to end to MEETING_BOOKED locally; live Nexla lineage, paid receipts, Pomerium responses, live calls, and the generated-tool PR are live-run artifacts the README explicitly marks as not captured.
Tech Stack
Python 3.12 · FastAPI · explicit agent state machine · Zero.xyz (service discovery + calls) · Pomerium (policy) · Nexla (evidence normalization) · GitHub adapter for the generated-tool PR
Four people, split by module boundary — agent core · scenario & calls · policy & repository · evidence & release.
