Inspiration
Goldman Sachs' DealPilot challenge got us thinking about commercial loan fraud that only becomes visible when you compare deals. Two applications might claim exclusive ownership of the same equipment, or related businesses might submit requests that need to be reviewed together. Looking at each application separately can hide those connections.
We built Loan Wick to help loan officers investigate those concerns and follow the evidence back to the documents behind them.
What it does
Loan Wick is a commercial loan review prototype that compares applications for potential concerns. It checks for conflicting equipment ownership claims and calculates combined loan requests across businesses whose relationships have been confirmed by a human reviewer. Each finding includes supporting document excerpts so an officer can see what triggered it.
The review workflow lets officers request clarification from borrowers, review their responses, and record decisions with a written explanation. Borrowers receive only information about their own case. Changes to relevant documents or payment instructions invalidate earlier checks, requiring another review before a simulated release can proceed.
Officers can upload PDF and DOCX contracts, follow the investigation's progress, and inspect the resulting findings and source evidence. Our demo uses synthetic applications and documents, with no real money movement.
How we built it
We used a TypeScript monorepo with npm workspaces to share data contracts across the project. The frontend uses React and Vite, while SpacetimeDB manages application state, role-based access, investigation jobs, and audit history. Its subscriptions let the interface receive database updates as they happen.
The analysis package uses deterministic rules to normalize equipment identifiers and compare supported ownership claims. For connected borrowers, it follows human-confirmed relationships and totals active requests against a versioned demo review threshold. Zod schemas validate data at component boundaries, and document hashes, versions, and source excerpts keep findings traceable.
We built a Node.js/TypeScript worker that processes uploaded PDF and DOCX documents and runs investigations through SpacetimeDB's job queue. It uses NVIDIA's Nemotron model and tool calling alongside our deterministic analysis to produce findings grounded in document evidence. The worker writes results back to the database, and the frontend receives updates through subscriptions. We used Vitest for unit and integration tests and Playwright for browser workflows, including checks around borrower privacy and outdated reviews.
Challenges we ran into
Our features depended heavily on one another. The frontend needed the database schema and client bindings, while the AI worker needed the investigation job format and evidence contracts. Testing the complete workflow meant waiting for those pieces to be ready. When one part changed or took longer than expected, it affected what the rest of us could finish.
Accomplishments that we're proud of
We're proud of building a review workflow where officers can inspect the evidence behind a concern and ask borrowers for clarification. We also implemented safeguards that prevent outdated reviews from being reused after relevant information changes.
Getting the shared analysis connected to the database and testing browser workflows with separately authorized roles was another milestone. Our synthetic cases cover conflicting ownership claims and connected borrowers, alongside similar names, shared addresses, and missing evidence that should not automatically become fraud accusations.
What we learned
We learned to communicate more clearly when our work depends on someone else's. With features this closely connected, a change to a data field or interface can hold up another teammate. We had to explain what each component needed, flag blockers early, and keep each other informed about changes so everyone could deliver their part on time.
The project also taught us to be precise about what a finding means. A document conflict needs investigation, and missing information needs clarification. Keeping those distinctions clear shaped both our checks and the way we presented results.
What's next for Loan Wick
We'd use Loan Wick to evaluate loans on a larger, carefully labeled dataset to measure missed concerns and false alarms. Working with lending professionals would help us refine the review rules and clarification process before considering a pilot with real loan data.
Built With
- css
- nemotron
- node.js
- python
- spacetimedb
- typescript
- vultr