Inspiration
LDAR (Leak Detection and Repair) compliance is one of the most critical yet tedious processes in the Canadian energy
sector. Auditors spend hours manually cross-referencing PDF reports against regulatory directives like D060, D071, and
D056, hunting for non-compliance buried in dense technical language. A single missed finding can mean regulatory penalties,
environmental harm, or delayed operations.
We asked ourselves: what if an AI could read the report, cite the exact regulation, and coach the auditor through every finding? Not to replace auditors, but to make them faster, sharper, and audit-ready from day one.
What it does
AudItron is an AI-powered compliance coaching platform built for the energy industry. The workflow is simple:
- Upload a PDF audit report and select the relevant directive set
- Review as AI flags compliance issues with severity levels (red, yellow, green), each linked to an exact regulatory clause with a direct citation
- Coach through findings with a Socratic voice-first AI coach that builds understanding, not dependency
- Document every decision with full rationale, creating an audit-ready trail for regulators
Every finding is anchored to the PDF with bounding-box highlighting. Every decision is logged with who made it, when, and why. Nothing is fabricated. Everything is traceable.
How we built it
Frontend: Next.js with React 19, Tailwind CSS, Radix UI primitives, and Framer Motion for animations. The workspace is a split-screen interface with a PDF viewer, issues drawer, and voice-enabled chat panel.
Backend: FastAPI (Python) powering a RAG (Retrieval-Augmented Generation) pipeline. We chunk regulatory directives, embed them into vectors using Supabase pgvector, and run hybrid search to retrieve the most relevant regulation sections for each finding.
AI Stack:
- Google Gemini 2.0 Flash for compliance evaluation with JSON schema enforcement
- Gemini 3 Pro for Socratic coaching with policy-aware guardrails
- Deepgram Nova-3 for real-time speech-to-text
- ElevenLabs for natural text-to-speech coaching responses
Infrastructure: Supabase handles auth, Postgres, vector storage, and file storage. Celery with Redis manages async evaluation jobs.
Challenges we faced
Hallucination control was our biggest challenge. Compliance is zero-tolerance for fabricated citations. We enforced strict JSON schemas on all LLM outputs and built a citation verification layer that rejects any finding not grounded in a retrieved regulation chunk.
PDF coordinate mapping was harder than expected. Extracting bounding boxes from parsed PDF pages and reliably anchoring findings to specific locations required custom parsing logic and careful coordinate normalization across varying page layouts.
Voice latency was a real pain point. Chaining STT, LLM inference, and TTS into a conversational loop meant optimizing every hop. We moved to streaming responses and parallelized the TTS call with the final coaching response to keep the experience feeling natural.
Regulation chunking required domain expertise. Splitting directives into semantically meaningful chunks that preserve context without exceeding token limits took multiple iterations and manual validation against real audit scenarios.
What we learned
- RAG is only as good as your chunking strategy. Garbage chunks in, garbage citations out.
- Voice-first UI is a fundamentally different design paradigm. You cannot just bolt a microphone onto a chat interface and call it done.
- Compliance AI demands explainability by default. If the model cannot show its work, the output is worthless.
- Building for regulated industries means the "happy path" is table stakes. The edge cases are the product.
What's next
- Support for EPA LDAR frameworks and additional provincial regulations
- Multi-user collaboration with role-based review workflows
- Batch evaluation across multiple facility reports
- Fine-tuned models trained on historical audit decisions for improved accuracy
Built With
- celery-platforms/infrastructure:-supabase
- css-frameworks:-next.js
- deepgram
- elevenlabs-libraries:-radix-ui
- fastapi
- framer-motion
- hook
- javascript
- languages:-python
- pdf.js
- pgvector-apis/ai-services:-google-gemini
- react
- react-19
- recharts
- redis
- sql
- swr
- tailwind-css
- typescript
- vercel-databases:-postgresql
- zod
Log in or sign up for Devpost to join the conversation.