PayUnfold: the line in your job offer worth reading twice A developer built PayUnfold, a free local prototype that reviews Indian job offer letters for clauses worth clarifying—conditional variable pay, notice and buyout terms, bonds, probation, and work restrictions—citing the page and quoted wording for each finding along with a neutral question to ask HR. The Next.js app uses PDF.js to render pages and runs an open-weight model through Ollama at 127.0.0.1:11434, keeping documents off third-party AI APIs, while arithmetic such as comparing monthly basic pay, HRA, and fixed gross against a payslip stays in ordinary inspectable code. The developer frames a paid career-coach workflow as an untested hypothesis and notes the tool suggests questions rather than judging legality or employer error. This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle https://dev.to/challenges/hacktoberfest-week2-2026-10-12 The offer promises ₹1,20,000 in annual variable pay. A few lines later, it says that payment is subject to company discretion and performance criteria. That second sentence is the one I want a person to notice before they reply, “I accept.” I built PayUnfold for people navigating a new job. Give it an offer letter and it points to clauses worth clarifying: conditional pay, notice and buyout, bonds or repayment, probation, and work restrictions. Each finding includes the page, the quoted wording, a plain-English explanation, and a neutral question to ask HR. It does not call a clause illegal or tell you to reject an offer. After joining, you can optionally add a full-month payslip. PayUnfold reads the figures, lets you correct them, and compares monthly basic pay, HRA, and fixed gross with the offer. It keeps CTC, variable pay, joining bonuses, and one month's fixed pay separate. A ₹3,000 gap becomes a question for payroll, not an accusation: was this proration, leave, a changed structure, or something else? The side-hustle customer I want to test is an independent career coach who reviews offers for clients. A private, source-linked first pass could save them time and help them deliver a better conversation. The current app is a free prototype. A paid coach workflow is a hypothesis, not a feature I am claiming to have shipped. Know what you are signing, then check what you are paid. PayUnfold reviews an Indian job offer for terms worth asking about before signing. After joining, you can add a payslip, correct extracted pay amounts, and compare monthly fixed pay. This is a local prototype for Indian salaried workers. It suggests questions; it does not decide whether a clause is legally valid, whether an employer made an error, or what financial decision you should make. Use the theme toggle in the header to switch between light and dark mode. PayUnfold starts with your system preference and remembers a choice made in the toggle when browser storage is available. npm install , then npm run dev . PayUnfold is a Next.js app with PDF.js for preparing document pages and Ollama for local inference. The browser renders the selected pages. The local Next.js server talks to Ollama at 127.0.0.1:11434 ; there is no account or document database. I split the job deliberately: The offer review covers the first six PDF pages or one image. Pay-field extraction uses the page, so a salary annexure farther back needs manual correction. The app says how much it read instead of pretending it saw the whole contract. A calculator can subtract ₹45,000 from ₹48,000. It cannot tell which number is monthly basic pay, which is annual CTC, or why a variable-pay clause deserves a question. That interpretation is why an open-weight model sits at the centre of PayUnfold. The arithmetic stays ordinary code because it should be inspectable and predictable. Running the model on the same computer as the app changes the privacy story. An offer letter and payslip can contain salary, address, and employer details. In the local setup, they pass between the browser, the local Next.js process, and local Ollama—not to a third-party AI API. This promise depends on running both programs locally; hosting the app elsewhere would send the document to that host. There are no per-document API charges, although the model still uses your own hardware and electricity. Open weights also let a user switch models when one struggles with a scan, a layout, or their laptop. I have not shown that a local model is more accurate than a closed API. The advantage I can demonstrate today is control over where the document goes, which model reads it, and whether an API price change breaks the workflow. The business test comes next: put PayUnfold in front of a career coach and a job switcher, watch where the questions help or fail, and ask whether either would pay for a polished private review. Until then, the most honest line in this submission is that the product works as a prototype; the side hustle is still being tested. Gemma has a clear role. PayUnfold’s beginner setup recommends Gemma 3 4B as the local image-reading model for offer letters and payslips