This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle
What I Built
I built PayGuard Local, a zero-cloud AI invoice and receipt sorter designed for independent freelancers, student developers, and small agencies. Freelancers spend hours manually sorting client bills, calculating tax categories, and logging payments into spreadsheets. Freelancers and small studios would gladly pay a one-time fee for a lightweight desktop utility that organizes their messy billing texts into structured JSON/CSV records completely offline without risking client confidentiality.
Demo
Below is a sample terminal execution showing how invoice_sorter.py takes raw invoice text and extracts structured JSON fields locally:
$ python3 invoice_sorter.py
Sorting Invoice Locally via Open-Weight Model...
{
"client_name": "Acme Corp",
"invoice_date": "2026-10-17",
"total_amount": "$450.00",
"category": "Software"
}
Code
Direct Repository Link: https://github.com/Anurag-tiwaricodes/local-ai-invoice-sorter
How I Built It
I built this project using Python paired with Ollama for local inference, running Meta's open-weight Llama 3.2 model (llama3.2) on localhost:11434. The script formats raw receipt or invoice strings into a structured extraction prompt and queries the local model endpoint using standard HTTP requests (urllib.request), ensuring zero external dependencies and instant setup on any machine.
Why Does Open Innovation Matter?
For freelancers and independent contractors, invoices contain sensitive PII (Personally Identifiable Information), client names, bank details, and NDA-protected deliverables. Sending this data to a closed, proprietary cloud API creates severe privacy risks and adds recurring monthly API token costs.
Using an open-weight model (Llama 3.2) running locally made three crucial things possible that a closed API couldn't:
- 100% Data Privacy (Zero Cloud): Client financial records never leave the freelancer's laptop. Everything runs offline.
- Zero Running Costs: A side-hustle utility shouldn't charge per scan. Local inference makes the unit economics completely free after setup.
-
Full Model Swappability: Users can easily swap
llama3.2withmistralorqwen, or fine-tune the extraction schema for local tax formats (such as Indian GST invoices) without vendor lock-in.
My First User
I shared this script with a college friend who does freelance web development and video editing. Earlier, he used to manually track his client payments in a notes app. He tested it on 5 of his past invoices and loved that it categorized them into clean JSON without needing an OpenAI API key or internet connection. He immediately asked for a CSV export feature next!