FintechSU$PEND
A Local Llama Audits the Company Spending
A team-built spend auditor where a local Llama 3 model checks employee transactions against company policy and flags risks by level.
- FetchEmployee transactions from the Nessie sandbox
- PromptSpending policy plus a JSON output schema
- AuditLlama 3 runs locally through Ollama
- ValidatePydantic turns the answer into a typed AuditReport
- ActRisk view, drafted email, employee tickets
Rochester, N.Y. Auditing company card spending is slow, manual work. SU$PEND speeds it up. An admin searches for an employee, sees their transactions and runs an audit against the company's spending policy. Findings come back sorted into high, medium and low risk, and the tool can draft an email to the employee explaining what it found. Employees get their own dashboard where they can raise a ticket, and an approved ticket overrides a flag.
We were a team of four and built it over one weekend. My part was the AI audit pipeline, the Nessie integration and data seeding, the backend API, the audit results page and the frontend's API layer. Sadit Hussain, Hithashree Rayachoti and Jacky Huang built the rest of the app, including login and the dashboards.
It stayed useful because the schema was tight and nothing that failed validation got through.
The audit runs Llama 3 through Ollama, on the machine. That was deliberate: spending data is exactly what a company doesn't want to send to a third-party API. The engine fetches the transactions, builds a system and user prompt with a JSON output schema, calls the model and validates the answer with Pydantic into a typed AuditReport. Anything outside high, medium or low doesn't get through.
For data, I used Capital One's Nessie sandbox API and wrote a seeding script that fills it with synthetic customers and purchases. The Flask API exposes the policy, employee search, per-employee transactions and statements, audit runs, drafted emails and a health check. The audit routes also exist as a FastAPI router with typed response models, and I wrote an integration test that runs the whole pipeline.
The Llama 3 that Ollama runs locally is a small model. It stayed useful because the schema was tight and nothing that failed validation got through.