What inspired us We wanted to help small and medium businesses measure and reduce their environmental impact without needing big budgets or consultants. Many SMEs have the data—invoices, utility bills, shipping receipts—but no simple way to turn it into emissions and actionable insights. We were inspired by the idea of making sustainability reporting accessible and practical for everyday businesses. What we learned We learned how to combine Document AI and an LLM (Gemini) so that messy, real-world documents get turned into structured data we can store and calculate with. We also dug into GHG accounting (Scope 1, 2, and 3), EPA emission factors, and how to design a recommendation system that suggests concrete changes—like switching to closer haulers or greener shipment modes—instead of generic advice. How we built it We built an end-to-end pipeline: documents go through Document AI for OCR and layout, then through Gemini for field extraction. We classify documents (invoice vs utility vs shipping, etc.), validate and normalize the data, and store everything in PostgreSQL. A calculation engine turns that into activities and emissions; a content-based recommendation engine suggests better haulers, alternative materials, and shipment method changes. The dashboard (React + Vite) talks to a FastAPI backend that serves KPIs, charts, and recommendations so users can see their sustainability pulse at a glance. Challenges we faced Getting extraction reliable across different document layouts and formats was tough—we had to tune prompts and validation so bad OCR or odd formats didn’t break the pipeline. Wiring Document AI, Gemini, the DB, and the dashboard together also meant a lot of moving parts; we had to be careful with env vars, API timeouts, and making sure the snapshot/refresh flow for the dashboard stayed simple and fast.

Built With

Share this project:

Updates