Inspiration
Government letters can affect your benefits, taxes, or immigration status, but they're hard to read, and scammers copy them closely. Newcomers and seniors are hit hardest. We wanted to help people answer three questions: Is this real? What does it want? What do I do next?
What it does
You take a photo of a government letter. Gemini reads the details: sender, phone numbers, links, QR codes, payment requests, reference numbers, and deadlines. Enveloppe then checks each detail against official government sources and your earlier letters, and marks it as matching, contradicting, or unverified.
Every letter goes into a private case file. If a new letter conflicts with a case you already have, Enveloppe flags it as a possible imitation. It also shows the deadline, where you are in the process, and the official way to respond. You can listen to the explanation in your language.
Our rule: the AI reads, the system decides.
How we built it
- Next.js and TypeScript for the app
- Gemini API reads letter photos into structured data
- Trust Registry of official CRA, IRCC, ServiceOntario and City of Ottawa information, copied by hand from government websites and cited
- Verification engine built on fixed rules does the checking
- PostgreSQL stores cases
- Auth0 handles sign in
- ElevenLabs provides voice
Challenges we ran into
We had to keep the AI out of the verdict and base every judgment on sources we could cite. Getting reliable structured output from Gemini took work. We also had to handle letters with hidden instructions aimed at AI tools, and we verified every registry entry by hand.
Accomplishments that we're proud of
The twin letter demo: Enveloppe catches a fake CRA letter partly because it remembers the real one you uploaded earlier. Every result links to its source, and when Enveloppe can't check something it says so.
What we learned
For something this important, a summary isn't enough. People need answers they can check, and separating reading from deciding made the product safer and easier to trust.
What's next for Enveloppe
We want to test it with settlement workers and tax clinics, cover more agencies and letter types, and let users share a case with someone they trust.
All demo letters are synthetic. No real personal data was used.
Built With
- auth0
- drizzle-orm
- elevenlabs
- eslint
- gemini-api
- javascript
- jsqr
- libphonenumber-js
- next.js
- node.js
- pglite
- postgresql
- react
- sharp
- tailwind-css
- tldts
- typescript
- vitest
- zod

Log in or sign up for Devpost to join the conversation.