Propose before writing
Invoice drafts enter a human approval workflow before an authorized write can occur.
An extra approval step sacrifices full automation in exchange for explicit control.
Making financial automation more reliable through human oversight.
Exploring financial AI that proposes actions and earns permission to execute.
Explore the repository (opens in a new tab)Financial operations combine repetitive retrieval with consequential decisions. FinPilot explores assistance for customer lookup, invoice search, policy retrieval, duplicate detection and invoice proposals—while keeping authorized writes behind explicit human approval and deterministic controls.
The project frames repetitive financial operations as an opportunity for assistance. But incorrect amounts, duplicate invoices and unauthorized writes can outweigh the convenience of a faster answer.
This is a technical product prototype using synthetic records, not a customer-validated production deployment. Its central design question is how to separate helpful retrieval and proposals from actions that change financial records.
Independently rerun on November 10, 2026.
Synthetic and deterministic; not live LLM accuracy.
Proposals are separated from authorized writes.
The AI can propose an action. The system must independently decide whether that action is authorized and valid.
Invoice drafts enter a human approval workflow before an authorized write can occur.
An extra approval step sacrifices full automation in exchange for explicit control.
Validate financial inputs and approval state; enforce idempotency and duplicate checks outside the language model.
Rules require maintenance, but critical behavior becomes testable and repeatable.
A local deterministic path works without a paid API; optional LangGraph and OpenAI support agent exploration.
Offline scenarios verify safeguards, not the accuracy or resilience of a live language model.
Explore the product thinking through a small, interactive illustration. The example content below is fictional and is not a screenshot or a live product integration.
Try the approval boundary. Approving creates one illustrative local draft; rejecting creates none. This interaction does not call FinPilot or move money.
FastAPI exposes customer, invoice and policy workflows.
LangGraph can orchestrate tools with an optional OpenAI provider.
Deterministic controls inspect the draft and prevent invalid operations.
Approval state is checked independently before committing a write.
SQLite and synthetic records support idempotency and audit trails.
Python, FastAPI and local SQLite are source-inspected. Optional live OpenAI/LangGraph execution is not independently verified. No real banking, payment, QuickBooks, or production financial integration is claimed.
All 52 automated tests passed when independently rerun for this portfolio on November 10, 2026. They cover validation, approval, idempotency and resilience. These local tests do not establish production reliability.
All 150 synthetic offline scenarios also passed on rerun. They exercise deterministic behavior. They are not evidence of live LLM accuracy, real-world financial correctness, adoption, or production readiness.
A trustworthy workflow is more than an impressive AI demonstration. The proposal, approval and execution boundaries are part of the product experience.
Evaluate live agent behavior separately with adversarial requests, ambiguous records and tool failures. Expand audit review and operator usability before considering real financial data.
Reviewed November 10, 2026. Repository documentation is attributed to its author; implementation claims are distinguished from research findings and planned capabilities.
Repository README & implementation scope (opens in a new tab)Product requirements (opens in a new tab)Technical architecture (opens in a new tab)Evaluation methodology & limits (opens in a new tab)Download the content verification record