Inspiration
Preparing for an important meeting still means opening five tabs, digging through notes, skimming a company website, and trying to remember what matters before the call starts. We wanted to turn that stressful pre-meeting scramble into a one-click, voice-first workflow.
PreCallBot was inspired by a simple question: what if your meeting prep was already done before you joined the call?
What it does
PreCallBot is a voice-first meeting prep agent.
It looks at an upcoming meeting, pulls in the key context, researches the person and company, and generates a structured briefing in under a minute. The briefing includes who you are meeting, what their company does, relevant internal notes, recent public context, likely pain points, suggested opening lines, and strong questions to ask.
After the briefing is generated, you can ask follow-up questions by voice, like:
- What should I ask first?
- Give me a more technical angle.
- What should I avoid saying?
- Draft a follow-up email.
How we built it
We designed PreCallBot around three core flows: briefing generation, voice Q&A, and meeting prep.
We used:
Vapifor the voice interface and follow-up Q&ATinyFishto research public web context about the person and companyRedisfor job state, caching, and short-term voice session memoryInsForgeto store meetings, briefings, sources, and historyWunderGraphas the orchestration layer that exposes one clean API to the frontend and agent toolsChainguardfor secure, minimal containers around services that handle untrusted external content
On the product side, the flow is simple:
- Read the upcoming meeting context
- Collect relevant private and public information
- Generate a tactical briefing
- Let the user talk to the agent about that meeting
Challenges we ran into
One challenge was keeping the scope tight. It was easy to imagine this turning into a general-purpose assistant, but the strongest version was much narrower: help the user prepare for one meeting really well.
Another challenge was orchestrating several moving parts without making the UX feel heavy. We needed background research, structured storage, caching, and voice interaction to work together while still feeling instant and simple.
We also had to think carefully about trust and safety. Public web content is noisy, so the system had to stay grounded in clear sources and return concise, useful output instead of generic AI summaries.
Accomplishments that we're proud of
We are proud that PreCallBot feels like a real workflow, not just an LLM wrapped in a chat UI.
We built a product concept where every sponsor tool has a clear job, and each one improves the user experience in a visible way. We are also proud of the structure: the system is designed around concrete flows, clear schemas, and an architecture that can actually ship beyond the hackathon.
Most of all, we are proud that the demo is easy to understand. You pick a meeting, tap Brief me, and get actionable prep immediately.
What we learned
We learned that the best agent experiences are narrow, opinionated, and grounded in real user context.
We also learned that voice becomes much more useful when it is constrained to a single task. Instead of asking a general assistant anything, the user is talking to an agent that already knows the exact meeting, the relevant notes, and the public context.
On the technical side, we learned how powerful it is to combine orchestration, caching, structured storage, and voice into one focused workflow instead of treating them as separate features.
What's next for PreCallBot
Next, we want to make PreCallBot feel even more proactive.
That includes:
- automatic detection of the next important meeting
- smarter matching of internal notes and past conversations
- richer company and contact research
- stronger source attribution in every briefing
- a faster mobile-first experience before a call
- deeper post-call workflows like transcript capture and follow-up generation
Longer term, we want PreCallBot to become the default briefing layer before every high-stakes conversation.
Built With
- anthropic
- chainguard
- cloudflared
- cosmo-router
- deepgram
- docker
- docker-compose
- es-modules
- eslint
- execa
- globals
- google-calendar
- google-oauth
- graphql
- graphql-yoga
- hmac
- hono
- insforge
- ioredis
- jwks
- jwt
- mcp
- mcp-gateway
- msw
- nextjs
- node.js
- notion
- openai
- pg
- pgcrypto
- pnpm
- postgresql
- postgrest
- prettier
- railway
- react
- redis
- redis-streams
- server-sent-events
- tinyfish
- typescript
- typescript-eslint
- vapi
- vite
- vitest
- webrtc
- wundergraph
- zod
Log in or sign up for Devpost to join the conversation.