Aura — AI Insurance Advisor
Inspiration
Insurance is the most misunderstood financial product in America. Policies are 30-40 pages of legal English, filled with exclusions buried in subsections that most people never read — until they file a claim and get denied.
Now consider that 40 million Americans speak Spanish at home. Millions more speak Arabic, Hindi, Chinese, Korean. For these families, the document protecting their home, their car, their health isn't just confusing — it's in a language they can't fully read. Every financial literacy tool we found assumes English fluency. That's not a feature gap. That's an access gap.
We built Aura because we believe that understanding your insurance policy shouldn't require a lawyer, fluency in English, or the ability to read fine print at all.
What it does
Aura is an AI-powered insurance advisor that works in 10 languages with voice. Users upload any insurance policy — renters, auto, home, commercial — and Aura:
- Analyzes the full document and returns a structured risk assessment: what's covered, what's not covered, what to watch out for, red flags, and key numbers like deductibles and coverage limits
- Reads the summary out loud in the user's selected language using natural multilingual voice synthesis
- Coaches users through claims — describe what happened in plain language, and Aura tells you the verdict, cites the exact policy exclusion, gives you a phone script, warns you what not to say, and tells you your filing deadline
- Answers follow-up questions scoped to the specific policy — grounded responses that won't hallucinate coverage that doesn't exist
- Advises before you sign — upload a policy you're considering and Aura benchmarks it against market standards using grounded search
- Finds coverage gaps — answers questions about your life (do you rent? have kids? have pets?) and identifies what your current policy doesn't cover
All of this works in English, Spanish, French, Arabic, Chinese, Hindi, Portuguese, German, Korean, and Japanese — with voice output in every language.
How we built it
Frontend: React + Vite + Tailwind CSS + Framer Motion, hosted on Cloudflare Pages.
Backend: Cloudflare Workers (serverless, edge-deployed). The Worker acts as an API proxy — all API keys are hidden server-side. No secrets ever touch the client.
AI Analysis: Google Gemini 2.5 Flash via REST API. PDFs are converted to base64 and sent as inline data (not the File API, which doesn't work in Cloudflare's edge runtime). Every call requests structured JSON output with response_mime_type: 'application/json', ensuring consistent contract between the AI and the frontend.
Pre-Sign Advisor uses a two-call Gemini pipeline: the first call uses grounded search to pull real market benchmarks (no JSON mode, since response_mime_type and google_search are incompatible), and the second call takes those results and produces a structured JSON analysis.
Voice: ElevenLabs multilingual voice synthesis. The language system works end-to-end — the user's selected language is injected into every Gemini system prompt, so the AI generates its analysis natively in that language. ElevenLabs then reads it aloud with natural pronunciation. No post-hoc translation layer. The voice is as natural in Spanish as it is in English.
Auth: Auth0 with Google social login. Every API route validates the Auth0 JWT from the Authorization header. Documents are stored in Cloudflare KV with keys scoped to the Auth0 user ID (user:{auth0_id}:doc:{docId}), ensuring complete data isolation between users.
Language System: The user selects a language in their profile. That preference is stored in Zustand (client state) and Cloudflare KV (persistent). Every Gemini call receives the language code, and the AI responds entirely in that language — field values translate, structural keys stay in English. ElevenLabs automatically reads in the correct language because the text it receives is already in the target language.
Challenges we faced
Cloudflare Workers and the Gemini File API. We initially tried using Google's File API to upload PDFs, but it doesn't work in Cloudflare's edge runtime. We had to pivot to inline base64 encoding — converting the full PDF ArrayBuffer to a base64 string and sending it directly in the request body. This took significant debugging to get right.
JSON mode and grounded search are incompatible in Gemini. You cannot combine response_mime_type: 'application/json' with the google_search tool. We discovered this while building the Pre-Sign Advisor and had to architect a two-call pipeline: one call for grounded search (free-form response), and a second call that injects those results and produces structured JSON.
Getting the Claim Coach perspective right. Early versions generated phone scripts written from the insurer's perspective — telling the user what the insurance company would say. We had to carefully engineer the system prompt to establish that the user is the policyholder calling their insurance company, and the script should coach them on what they should say.
Multilingual voice without a translation layer. Rather than generating in English and translating, we inject the language preference directly into the Gemini system prompt so the analysis is generated natively in the target language. This produces more natural output but required careful prompt engineering to ensure structural consistency across languages — the JSON keys stay in English while all user-facing values are in the selected language.
What we learned
- Edge runtimes have real constraints — not every SDK or API works in them, and you have to architect around those limitations
- Multilingual AI is more than translation — generating natively in a language produces fundamentally better results than translating after the fact
- Voice changes everything about accessibility — the moment a user can listen to their policy analysis instead of reading it, the product becomes accessible to low-literacy users, elderly users, and users with visual impairments
- Insurance is deeply personal — the same policy can mean completely different things depending on someone's life situation, which is why features like Gap Check and Claim Coach matter more than a generic summary
What's next
- Phase 3 UI translation: Full interface translation via a
translations.jsobject anduseTranslationhook — English and Spanish fully translated, with other languages falling back to English - RTL support: Arabic interface with
dir="rtl"toggle and Tailwind RTL variants - Document comparison: Side-by-side comparison of two policies with delta highlighting
- Shareable reports: Read-only share tokens so users can share their analysis with family members or advisors
Built With
- auth0
- cloudflare-kv
- cloudflare-pages
- cloudflare-workers
- elevenlabs
- framer-motion
- google-gemini-2.5-flash
- javascript
- react
- tailwind-css
- vite
- zustand
Log in or sign up for Devpost to join the conversation.