Inspiration
Solo freelancers and consultants run their entire back office themselves no accountant, no AP team. Every week they face the same quiet, draining tasks: chasing unpaid invoices, matching stray bank deposits to the right invoice, checking whether a client's "I already paid" claim actually holds up, and deciding who to chase first when several payments are overdue at once.
We looked at what's out there enterprise AP tools like Ramp and Zamp assume a purchase-order workflow no freelancer has, and freelancer invoicing tools like Bookipi send scheduled reminders but never actually read the bank feed or the inbox to know what's already resolved. Nothing watches invoices, bank transactions, and client emails together and reasons across all three. That gap is CashGuard.AI.
What it does
CashGuard.AI is an autonomous Strands agent that reconciles a freelancer's financial life end-to-end:
- Monitors invoices, a live bank feed, and client emails together
- Silently resolves routine, high-confidence matches zero interruption
- Flags real exceptions underpayments, duplicate payment claims, overdue invoices ranked by cash impact (amount × days overdue)
- Drafts the next action (a reminder, a clarification, a refund note) in plain language
- Never sends anything without explicit human approval every drafted
message carries a
sent: falsecontract until the user signs off - Logs everything every silent match and every flagged decision is written to an append-only, immutable audit trail
In our live demo scenario (Priya, a freelance graphic designer with 12 invoices, 16 bank transactions, and 9 client emails), CashGuard resolved $25,550 in invoiced work down to just 4 genuine exceptions totaling $6,775 at risk — silently clearing 5 items no human ever needed to see.
How we built it
- AWS Strands Agents SDK orchestrates the whole pipeline as a genuine multi-tool agent: a Monitor Tool (ingests the three feeds), a Matching Tool (deterministic amount/date/reference reconciliation), a Cash-Impact Prioritizer, an Action Drafter, and a Human Approval Gate not a single prompt pretending to be an agent.
- OpenRouter powers the reasoning layer, meta-routed to
openrouter/freeacross models like Llama 3.3 70B, Gemini 2.0, and Mistral, with an automatic exponential-backoff failover chain so a rate-limited model never breaks the flow. - A WhatsApp-style conversational interface lets the user reply in plain language rather than filling out a form.
- Deployed live on AWS EC2, so judges can run the actual product, not a recording.
Challenges we ran into
- Designing the silence threshold deciding exactly when a match is confident enough to resolve without bothering the user, versus when it's a genuine judgment call, took real tuning against edge cases like partial payments and bank-fee deductions.
- Building a reliable free-tier LLM strategy free models rotate and rate-limit, so we built a model-agnostic reasoning layer with a fallback chain instead of hardcoding a single model.
- Keeping the human-approval gate genuinely non-bypassable in code, not just in the prompt so no drafted action can ever slip out unapproved.
Accomplishments that we're proud of
- A real, working, live-deployed multi-tool agent not a mockup that judges can interact with directly.
- A fully enforced responsible-AI design: 100% read-only data ingestion, a non-bypassable approval gate, and an append-only audit trail.
- Getting genuinely useful reasoning out of a zero-cost LLM setup.
What we learned
- How much of "AI agent" design is actually about deciding what not to automate the silent/escalate boundary mattered more than the LLM prompting itself.
- How to build resilient LLM infrastructure on free-tier rate limits without sacrificing reliability.
What's next for CashGuard.AI
Real bank-feed and email connectors (via a licensed aggregator and OAuth), the real WhatsApp Business API in place of our simulated chat, and eventually multi-tenant accounts so any solo professional not just our demo persona can connect their own books.
Built With
- amazon-web-services
- aws-ec2
- aws-strands-agents-sdk
- css
- gemini
- html
- javascript
- json
- llama-3.3
- mistral
- openrouter
- python
- streamlit
- whatsapp-business-api
Log in or sign up for Devpost to join the conversation.