Inspiration

Almost everyone has signed something they didn't fully read. A 20-page employment contract, a rental agreement, a Terms of Service you scrolled past to hit "I Agree." We do it because we don't have the time or the legal training to decode the jargon, and the other side has a team of lawyers who wrote it. We wanted to even that out a bit. FinePrint is meant to be the lawyer-friend you wish you had: it translates legalese into plain English and goes looking for the hidden fees, lopsided clauses, and traps before you sign.

What it does

You give FinePrint an agreement. It splits it into clauses, works out who the parties are and what each one stands to gain, and flags anything risky or unfair.

It doesn't stop at pointing out problems. For every flagged clause, FinePrint:

  • Explains in plain English what the text actually says and why it's a problem for you.
  • Tells you what to ask for in negotiation, with a suggested counter-clause you can paste in.
  • Gives the whole document a risk score, calculated by fixed rules rather than a model's guess, so you know how bad it is before you read a word.

How we built it

The backend is Python with FastAPI and plain asyncio. The frontend is simple HTML, JS, and CSS, and it streams the agents' reasoning live so you can watch them work. Gemini powers the agents.

We skipped LangChain and CrewAI and wrote a small multi-agent pipeline ourselves:

  • Segmenter: ordinary Python code that splits the document into clauses. No AI involved.
  • Readers and Risk Analysts: agents that each look for a specific kind of trouble, like hidden fees, control - grabs, or exit traps.
  • Grounding Guardrail: Python code that checks every AI finding against the original text.
  • Skeptic: an agent whose only job is to try to prove the other agents wrong.
  • Advisor: an agent that turns the surviving findings into negotiation advice.

Challenges we ran into

  • Hallucinations: Language models like to paraphrase, and sometimes they invent clauses that aren't in the document at all. Our fix was the Grounding Guardrail. Any agent that flags a risk has to include a verbatim quote, and a plain Python check confirms that exact text exists in the contract. If it doesn't, the finding is dropped.

  • Over-flagging: Our first versions treated normal boilerplate as high risk, which made the output noisy and hard to trust. The Skeptic fixed most of that by cross-examining each finding and rejecting the ones that weren't actually a problem.

  • Orchestration without a framework: Running several agents at once and passing context between them was harder than we expected. We wrote our own asyncio orchestrator to manage state and handoffs, and it stayed small and easy to debug.

Accomplishments that we're proud of

Findings tied to the real text. Pairing the LLM with deterministic string matching means every finding points to something that's really in the contract.

Our own async pipeline. It turned out faster, easier to follow, and easier to control than an off-the-shelf agent framework would have been.

The Skeptic. Adding an agent to argue against the others made the output noticeably cleaner and more useful.

What we learned

Heavier isn't always better. For a lot of multi-agent apps, plain Python and asyncio give you more flexibility and speed than a big framework.

Generative AI is great at extraction and reasoning, but in something like legal tech you can't trust it on its own. It needs hard-coded checks around it.

Making agents argue against each other is one of the most effective ways we found to cut false positives.

What's next for FinePrint

  • OCR: support for scanned and physical documents. Right now we handle text and PDFs.
  • Browser extension: score Terms of Service and Privacy Policies automatically before you click "I Agree."
  • Diff analysis: upload two versions of a contract and see the sneaky changes made during negotiation.
  • Multi-language support: handle contracts in other languages and legal jurisdictions.

Built With

Share this project:

Updates

Submission history