# Florence

- **Event:** [Claude Build Day](https://cerebralvalley.ai/e/claude-startups-build-day)
- **When:** Sat, Jun 13 at 9:00 AM – 10:00 PM (PDT)
- **Where:** San Francisco, CA
- **Team:** [Jackson Luo](https://cerebralvalley.ai/u/jacksonluoo), [Taha Salahuddin Abbasi](https://cerebralvalley.ai/u/TheBrownCowboy), [Lukasz Jakubowski](https://cerebralvalley.ai/u/Woocash99)
- **GitHub:** https://github.com/taha-abbasi/askflorence-mobile
- **Website:** https://askflorence-mobile.vercel.app/
- **Demo video:** https://www.youtube.com/watch?v=A2LcLGUNwtU
- **Gallery:** https://cerebralvalley.ai/e/claude-startups-build-day/hackathon/gallery
- **Page:** https://cerebralvalley.ai/e/claude-startups-build-day/hackathon/gallery/50

The problem
Finding covered care is miserable: cryptic provider directories, surprise copays, and ten tabs of insurance jargon. People in pain shouldn't have to become benefits experts to see a doctor.

What it does
A member at the Embarcadero in San Francisco says "I've got back pain and need to see a doctor," and Florence:

recognizes physical therapy as the right starting point,
finds in-network PTs nearby, sorted by rating, scoped to the member's plan,
shows per-provider copays computed from the plan and network tier (e.g. $40 preferred vs $100 out-of-network),
pulls open appointment times, and
books the appointment — but only after the member explicitly confirms.
Every step renders as a dynamic card inline in the chat (provider list, copay comparison, availability, a confirm card, a booking receipt), so you both hear Florence and see the structured results. She speaks in a real ElevenLabs voice, listens with live speech-to-text that waits for you to stop talking, and the mic is an animated audio orb that reacts to listening / speaking.

How we built it
Driver-agnostic architecture. Voice (ElevenLabs Conversational AI) and a Claude text agent both translate into one WorkflowEvent stream, call the same client tools, and render through one component registry. The UI never knows which "brain" is talking — so voice and text are interchangeable.
Real API integration. Provider search hits the live AskFlorence Tools API (/providers/suggest); the voice session token is minted via /florence/agent-session; copays are computed from the plan; provider accepting-status comes from /providers/covered.
Human-in-the-loop booking. The booking mutation lives behind the confirmation tap, so an appointment can never be auto-booked.
Stack: Expo SDK 56 / React Native 0.85 / React 19, TypeScript (strict), Expo Router, Zustand, Reanimated, ElevenLabs (voice + TTS), Web Speech API (STT), Anthropic Claude (dynamic text agent). Tested with Jest / React Native Testing Library; runs on web today and as a native iOS/Android dev build.

---

Markdown version of https://cerebralvalley.ai/e/claude-startups-build-day/hackathon/gallery/50. Site index for agents: https://cerebralvalley.ai/llms.txt · full text: https://cerebralvalley.ai/llms-full.txt
