Inspiration

Preparing for important meetings is stressful when information is scattered across LinkedIn profiles, interviews, articles, and social posts. I wanted a fast, clean way to turn public information into useful context so anyone can walk into a meeting better prepared and more confident.

What it does

ContextCard generates a structured pre-meeting brief from two inputs: who you are meeting and why. It searches public web sources, synthesizes the findings, and returns a readable card-based report with:

Who They Are What They Care About Recent Activity Conversation Starters Common Ground Watch Out (only when relevant) Sources Used

How we built it

I built ContextCard as a stateless Next.js 14 app with the App Router and Tailwind CSS. The backend flow:

  1. Accepts name + context from the frontend.
  2. Runs five Exa searches in parallel with Promise.all.
  3. Combines top results into a single evidence blob.
  4. Sends that blob to Google Gemini with a strict JSON-only prompt.
  5. Parses and normalizes the response, then returns structured data to the UI.
  6. The frontend stores the generated brief in localStorage and renders the result on a dedicated /brief page with polished cards and loading states.

Challenges we ran into

Gemini model/version changes caused endpoint compatibility errors at first. LLM outputs occasionally wrapped JSON in markdown fences, requiring robust cleanup. “Null-like” values (e.g., "null" as a string) needed normalization so the Watch Out card behaved correctly. I had to make sure partial Exa failures didn’t break the whole request.

Accomplishments that we're proud of

Built a full end-to-end product quickly with no database and no auth. Achieved resilient orchestration across two external APIs (search + synthesis). Added practical UX touches: polished loading experience, source transparency, and graceful error messaging. Kept the output focused on actionable, human-friendly meeting prep instead of generic summaries.

What we learned

Reliability matters more than happy-path demos when coordinating multiple APIs. Prompt quality and output validation are both essential for dependable AI features. Small UX decisions (clear errors, structured cards, source links) dramatically improve trust. Stateless architectures can still feel product-grade when data flow is designed carefully.

What's next for ContextCard

Add editable brief sections so users can refine output before meetings. Introduce optional “tone modes” (formal, friendly, technical) for conversation starters. Improve source ranking and deduplication for higher signal-to-noise. Add export options (PDF/Notion copy) and calendar-event integration.

Built With

Share this project:

Updates