This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle
#
What I Built
VaultSign AI is a contract red-flag reviewer for freelancers that runs entirely on their own laptop.
Freelancers regularly receive client contracts with clauses that quietly cost them money: IP assignments that capture their pre-existing tools, Net-90 payment terms, uncapped indemnities, broad non-competes, and unlimited revisions. Most can't pay a lawyer to review every gig. Pasting the contract into a cloud AI tool is risky too, because many contracts include confidentiality terms that restrict sharing with third parties. Whether a given NDA covers an AI provider depends on its wording, but the risk is real.
VaultSign AI reads a contract (PDF, DOCX, or TXT) locally, flags risky clauses, explains them in plain English, and drafts a polite counter-offer email. Every flag shows the exact quoted text and page number, and a quote that can't be found verbatim in the contract is discarded, so the report can't show a clause that isn't there.
It checks 8 clause families: IP transfer / work for hire, extended payment terms (Net-60/90), broad non-competes, one-sided liability and indemnity, unlimited revisions, termination without a kill fee, missing late-payment consequences, and exclusivity restrictions. If nothing is found for a family, it says "Not detected. Please verify manually." It never says "no problems."
Who would pay: freelancers and independent contractors who sign client contracts regularly, and small agencies that want a self-hosted option. I have not validated pricing yet. My starting hypotheses are about $19/month or $99/year for freelancers and a $299 one-time team license, with the free open-source version covering clause extraction.
VaultSign AI is a review aid, not legal advice.
#
Demo
#
Code
https://github.com/SomnathPal-max/VaultSign-AI
#
How I Built It
Open-source pieces
- Ollama runs open-weight models locally. I support and recommend Gemma 2 (9B and 2B) and Llama 3.1 (8B), and any other Ollama model works.
- A deterministic offline baseline engine works even when Ollama isn't running.
- FastAPI + PyMuPDF serve the app and parse PDFs; DOCX is parsed with the standard library.
- Everything stays on the machine: the server binds to 127.0.0.1, no cloud keys are used, and document text lives in memory only. How it works
Contract file -> parser + section-aware chunker -> 8-clause extraction (local LLM or baseline)
-> Verifier (verbatim quote + page, or the flag is dropped)
-> risk report + pushback email drafts
-> optional Pro mode: Advocate / Corporate Counsel / Mediator debate The Verifier. Small models can invent clause text. A flag is shown only if its quoted text matches the parsed contract exactly, and anything that doesn't is dropped and counted. This is why the false-fabrication rate is 0.0% by design: it shows that unverifiable quotes are filtered, not that every flag is correct. Multi-agent simulator (Pro). Three local agents argue about a flagged clause. The Advocate must quote the clause it criticizes, the Corporate Counsel must not invent precedent, and the Mediator proposes a compromise clause that is marked as a suggestion to review with a lawyer. Pushback emails. Friendly, Neutral, and Firm tones, for example: "To align with my standard operational cash flow, I kindly request adjusting the payment terms from Net-90 to Net-30." Benchmark. I labeled 25 contracts by hand (synthetic variations, public templates, and fair negative controls). Results for the deterministic baseline engine:
| Clause family | Precision | Recall | F1 |
| IP transfer / work for hire | 100% | 100% | 1.00 |
| Extended payment terms | 100% | 100% | 1.00 |
| Broad non-compete | 100% | 100% | 1.00 |
| Asymmetric liability / indemnity | 100% | 100% | 1.00 |
| Unlimited revisions | 100% | 75% | 0.86 |
| Termination and kill fee | 100% | 75% | 0.86 |
| Late-payment consequences | 100% | 100% | 1.00 |
| Exclusivity | 100% | 75% | 0.86 |
| Overall | 100% | 91.2% | 0.95 |
Average latency was 12.6 ms per contract for the baseline.
Limitations. Twenty-five contracts, labeled by me and partly synthetic, is a small development benchmark and may not reflect real-world accuracy. Recall is lower on the newer clause families, and the tool can miss clauses, which is why "Not detected" always asks the user to verify.
#
Why Does Open Innovation Matter?
- Privacy: The contract is processed on the user's own machine, so there is no third-party server involved. The repo includes an offline-isolation test (tests/test_offline_privacy.py), and the app works with Wi-Fi off. I call it offline-by-design rather than air-gapped, because the operating system and other software are outside the app's control.
- Cost: A 50-page contract uses a lot of tokens, and a paid API charges for all of them on every rerun. Local inference costs only electricity.
- Swap and tune: Users can choose a model that fits their laptop, such as a 2B or 3B model on low RAM or a larger one on a better machine, instead of accepting whatever one provider offers.
- No lock-in: The product doesn't depend on any provider's pricing, rate limits, or terms of service.
- It makes the product possible: A closed API would mean sending the user's confidential document to a third party, which is exactly what this tool exists to avoid.
#
Prize Categories
- Best Use of Gemma: Gemma 2 (9B and 2B) is supported through Ollama and included in the model comparison. [Keep only if you really ran it; the numbers must come from your rerun.]
- Best Use of GitHub Copilot: I used Copilot to draft tests and verification routines, and CI runs through GitHub Actions. [Keep only if accurate.]
- Best Use of Entire: The agent session log is linked above. [Keep only if it contains your real sessions.]