What I Built
Freelancers, contractors, and solo consultants share a universal headache: the shoebox of doom.
Every tax season or quarter-end, hundreds of PDF invoices, crumpled paper receipts, client reimbursements, and bank transaction screenshots sit unsorted in downloads folders. While cloud-based accounting platforms exist, many freelancers face two critical blockers:
Privacy & NDA constraints: Many client invoices contain proprietary rates, NDA-protected client names, and confidential project scopes. Uploading these documents to third-party cloud AI APIs is often a direct breach of contract.
Cost & Subscription Fatigue: Heavy per-page cloud OCR and vision API fees turn a micro-SaaS or side-hustle utility into a high-overhead money pit.
ReceiptVault is an offline, privacy-first desktop utility that watches a local folder, extracts line items, classifies tax deductible expense categories (Schedule C compliant), identifies client billable items, and reconciles everything into a clean CSV/JSON/SQLite ledger—running 100% locally on consumer hardware without an internet connection.
Who Would Pay For It?
Freelancers & Solopreneurs: Willing to pay a one-time license ($39) or low recurring fee ($9/mo) to save 10+ hours of tedious manual bookkeeping every tax quarter.
Freelance Bookkeepers & Solo CPAs: Professionals managing 10–20 small business clients who need fast batch extraction without violating client confidentiality or incurring thousands of dollars in cloud API tokens.
Demo
(Watch the 60-second walkthrough below showing batch OCR extraction and auto-categorization running completely in Airplane Mode!)
ReceiptVault Demo Video
(Demo video / Walkthrough link placeholder: receiptvault.local/demo
)
Code
Github link: Hacktoberfest
How I Built It
ReceiptVault is designed around a fully open-source, local-first architecture:
[ Local Drop Folder ]
│ (PDFs, PNGs, JPEGs)
â–¼
Local Ingestion & Pre-processing
│
â–¼
[ Open-Weight Vision Model ] ────► Llama 3.2-Vision (11B-Instruct / 3B-Vision)
│ Served via Ollama / llama.cpp
â–¼
[ Constrained JSON Decoding ] ───► Outlines / Instructor (Pydantic schema validation)
│
â–¼
[ Reasoning & Category Agent ] ──► Qwen 2.5-Coder (7B) for Schedule C tax line reconciliation
│
â–¼
[ Encrypted Local Ledger ] ──────► Local SQLite database + CSV export
- Local Vision & Multimodal Extraction
Instead of relying on proprietary APIs, ReceiptVault uses Llama 3.2 Vision (11B) quantized to 4-bit (Q4_K_M) running locally via Ollama. It processes images of wrinkled paper receipts, thermal paper slips, and messy PDF invoices directly on a standard laptop GPU or Apple Silicon unified memory.
- Guaranteed Structured Outputs
A common failure in generative agents is hallucinated JSON schemas. We integrated Outlines and Pydantic to enforce rigorous grammar-constrained decoding. The model can only emit valid JSON matching our ExpenseRecord schema:
- Open Agent Harness for Discrepancy Matching
For ambiguous entries (such as a split bill or a receipt missing a date), an open-source agent harness powered by LangChain / Smolagents spins up a lightweight reconciliation loop using Qwen 2.5 (7B). It cross-references existing bank CSV statements against the extracted metadata, flagging matches and highlighting any anomalies.
Why Does Open Innovation Matter?
For ReceiptVault, open-source AI wasn’t merely a developer preference—it was the fundamental business enabler that makes this side hustle viable.
- Zero Marginal Cost = Sustainable Pricing
With closed APIs (like GPT-4o or Claude 3.5 Sonnet), extracting a high-resolution, multi-page PDF invoice can cost between $0.02 and $0.06 per document. For a freelancer sorting through 2,000 backlogged receipts, API fees alone could exceed $100. With open-weight models running on consumer hardware:
Marginal inference cost is $0.00.
We can offer a flat one-time lifetime license ($39) with high gross margins, while avoiding runaway cloud bills.
- Radical Privacy & NDA Compliance
Freelancers frequently sign NDAs preventing them from sending client contracts or invoice copies to third-party cloud servers. Because ReceiptVault runs completely on-device via llama.cpp and local weights, no data ever leaves the user’s machine. You can pull the Wi-Fi plug, run it on a plane, and never worry about terms of service changes or data retention policies.
- Model Specialization & Swappability
Open innovation lets us swap model weights based on client hardware:
On an M-series Mac or dedicated RTX GPU, it runs Llama 3.2 11B Vision.
On low-spec laptops, it automatically falls back to Llama 3.2 3B Vision or a quantized Moondream2 variant without rewriting any backend application logic.
My Agent Session
During the development process, an agent session was used to scaffold the local pipeline, test Pydantic schema validation with Ollama, and benchmark quantized vision model throughput.
(Session link placeholder)
My First User
Before writing the final UI, I reached out to Sarah, an independent product designer and branding consultant who had 11 months of unlogged expenses heading into Q4 tax estimates.
She refused to use cloud-based receipt scanners because her invoices listed confidential client retainer details under active NDAs.
I installed ReceiptVault on her M2 MacBook Air, dropped a folder of 142 mixed PDF invoices and mobile receipt snaps into the watch folder, and ran the pipeline with Wi-Fi switched off.
The result:
Time taken: ~14 minutes total batch processing.
Accuracy: 138 out of 142 items correctly categorized and extracted with zero manual entry.
Feedback: "This is the first time I haven't dreaded doing my business expenses. The fact that it never touched the internet meant I didn't have to redact client names."
The Sale: She immediately paid $35 via Stripe for a lifetime beta key, becoming ReceiptVault's first paying customer!
Top comments (0)