Inspiration

What it does

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for Autocfo

InspirationThe CFO's office is often bogged down by a massive bottleneck: manual data entry and reconciliation. Watching finance teams spend countless hours comparing uploaded invoices against bank ledgers inspired me to build a truly autonomous solution. The goal was to eliminate the "swivel-chair" accounting process and create an AI agent that doesn't just read data, but actually reasons through discrepancies like a human accountant.What it doesAutoCFO is an autonomous Treasury & Reconciliation Agent. Users simply upload multi-format invoices (PDFs, Images). The system asynchronously extracts the core data, saving it to the database without blocking the UI. Then, our LangGraph ReAct agent takes over. It autonomously queries the pending invoices and checks the bank ledger. Instead of rigid if/else rules, the agent handles fuzzy matching—resolving variations in vendor names or minor discrepancies like wire fees. If a major exception is found, it flags it for human review and autonomously drafts a highly contextual follow-up email to the vendor.How we built itTo build a highly scalable, enterprise-grade architecture, I utilized Agent Orchestrator (AO) extensively throughout the entire development lifecycle, from architecting the backend async queues to styling the frontend.Frontend: React (Vite) styled with Tailwind CSS and shadcn/ui, secured by Clerk Authentication.Backend: A scalable FastAPI server connected to a PostgreSQL database.Asynchronous Processing: Implemented Celery workers with a RabbitMQ message broker to handle heavy file extraction tasks in the background.AI & Logic: Used PyMuPDF for document parsing and LangGraph for the ReAct agent. To evaluate fuzzy matching during reconciliation, the agent conceptualizes a similarity threshold using a weighted scoring model:$S_{match} = \arg\max_{x \in Ledger} \left( \alpha \cdot \text{Sim}(I_{vendor}, x_{desc}) + \beta \cdot \text{Sim}(I_{amount}, x_{amount}) \right)$Challenges & What we learnedThe biggest hurdle was architecting the asynchronous workflow. Configuring RabbitMQ and Celery to communicate seamlessly with the FastAPI endpoints and update the React UI via polling required precise execution. Additionally, I faced deployment challenges with Netlify MIME type errors and Vite build configurations, which I successfully debugged with the help of AO. Through this hackathon, I deeply enhanced my understanding of message queues, agentic orchestration, and deploying robust full-stack AI applications under strict time constraints.

Built With

Share this project:

Updates

Submission history