-
Built on 6 best-in-class APIs: Yutori, Tavily, Neo4j, Modulate, Senso, and OpenAI
-
Hovering a node reveals the relationship — here: Salesforce commits $50B in buybacks, surfaced from live Tavily news and stored in Neo4j
-
Scout's live pipeline — tool calls firing in sequence: deep research loaded, live news fetched, knowledge graph updated
-
Complete battlecard for Salesforce in under 30 seconds — TL;DR, recent news with dates, key people, talking points, and live knowledge
Inspiration
Sales reps spend 6 hours a week manually researching prospects before calls. 42% feel under-informed walking in. For a 50-person team, that's $400K/year in lost productivity. We wanted to eliminate that entirely.
## What it does Scout takes a spoken company name and autonomously produces a full competitive intelligence battlecard in under 60 seconds — spoken aloud and rendered live in a web dashboard.
Speak: "I have a call with Salesforce in 20 minutes" → Scout fires a sub-agent swarm, pulls deep research + live news, writes the knowledge graph, stores the pattern in memory, and reads you the brief before you walk in the room.
## How we built it
- Yutori Research API — 100+ parallel sub-agents for deep company intelligence (funding, pricing, leadership, weaknesses)
- Tavily — live LLM-optimized news search, fires on every run
- Neo4j — knowledge graph of companies, people, and events; relationships visualized live in the UI
- Modulate Velma — voice input with emotion detection; detects urgency and reprioritizes the brief
- Senso — self-improvement layer; every brief is stored as a skill so Scout gets smarter with each query without retraining
- Flask + SSE — streaming web dashboard; tool calls animate live as the agent works
- Render — web service + nightly cron job that pre-researches companies before the business day starts
## Challenges we ran into
- Senso's ingestion API uses a 3-step presigned S3 upload flow — docs were behind a login wall, had to reverse-engineer it live
- SSE streaming with Flask requires threaded workers and explicit no-buffer headers to work correctly
- Modulate's emotion detection returns per-utterance labels, not a top-level field — required parsing the utterances array
- Neo4j sandbox uses
bolt://notneo4j+s://— the routing error was non-obvious
## What we learned Self-improving agents are more than a pitch — Senso's skill storage means the second query on a SaaS CRM is genuinely better than the first without any retraining. That's the actual product insight.
## What's next Auto-trigger before every calendar event with an external company. The cron job is already running on Render — Scout is always preparing, even when you're not.
Log in or sign up for Devpost to join the conversation.