-
-
Three real rejections at our own factory. The product was fine every time; the paperwork wasn't.
-
11 lakh+ small sellers on GeM won ₹2.36 lakh crore in FY26. 20–40% of bids still fail the technical round.
-
Search, read, extract, judge, fix: four Nemotron models, each with one job, and code-verified page citations.
-
Every call on Nebius Token Factory is traced: model, tokens, cost, latency. A full report costs a few cents.
Small factories don't lose government tenders on price. They lose on page 37.
I run a small electrical factory outside Delhi. We make current transformers that state power utilities install in their substations. Our product passes type tests at national labs. We have still been rejected from government tenders, and never because of the product:
- A BoQ rejected as "invalid" because it was saved in LibreOffice instead of Excel.
- A turnover certificate worded "Trading Business" when the tender wanted a manufacturer.
- A missing state contractor enlistment, discovered only after we had bid.
Each time the bid died on a clause buried in a long PDF that nobody on a small team had time to read line by line. Big companies have bid teams for this. Small factories have the owner, at night, with a highlighter.
In Indian government offices, the officer who approves your file signs in green ink. Green Ink exists to get small firms that signature.
The size of the problem
| Number | |
|---|---|
| MSMEs registered in India | 7.83 crore (78 million), ~99% micro (PIB, Mar 2026) |
| Micro & small sellers already on GeM, India's government marketplace | 11 lakh+ (1.1 million) (PIB, Apr 2026) |
| GeM orders those small sellers won in FY 2025-26 | ₹2.36 lakh crore (≈ US$27 billion), 68% of all GeM orders (PIB) |
| Total GeM purchases, FY 2025-26 | > ₹5 lakh crore (≈ US$57 billion) |
| Central buyers' legal minimum from micro & small firms | 25% of annual procurement |
| Bids rejected at technical evaluation | 20–40%, missing or wrong documents the top cause (industry estimates) |
The demand for small suppliers is mandated by law. What's missing is small suppliers that clear the technical round. Green Ink is built for the 11 lakh firms already bidding, for whom one avoided rejection is worth an average ₹4.6 lakh order.
What it does
1. Type what you sell. "current transformer", "LED street light", "office chair". Green Ink pulls live bids from GeM and Nemotron 3.5 Lightning ranks each one green, amber or red for your company.
2. Open a bid. Green Ink downloads the bid and every linked attachment (specifications, terms, BoQ spreadsheets) and reads every page. Scanned pages with no text layer go to Nemotron 3.5 Super VL. Nemotron 3 Super then lists every requirement: turnover, experience, MSE exemption, OEM authorisation, BIS licence, type tests, EMD, delivery, BoQ format. Each one comes with its page number and a verbatim quote.
3. Verify. Plain code checks every quote against the text of its cited page. If it isn't there, the requirement is dropped. A clause reaches you only if we can show you where it is.
4. Judge. Nemotron 3 Ultra checks each verified requirement against the company's own documents: pass, fail, missing proof or unclear, with severity. The verdict (Bid / Fix then bid / Skip) is then computed by deterministic code from those findings, never by a model, so it's auditable and repeatable.
5. Fix it and price it. For every gap, Ultra drafts the fix: the letter to your CA asking for the certificate to be reissued as "manufacturer", the missing-document checklist, the OEM authorisation request. Tavily finds past prices for similar items, Lightning extracts the unit prices, and the price panel shows the band with every source cited.
Click any page citation and the tender PDF opens at that page with the quote highlighted. Open the Model Trace and you see every model call: which Nemotron model, tokens, cost and latency.
How we built it
Every model call runs on NVIDIA Nemotron through Nebius Token Factory. One OpenAI-compatible API, one key, four models, each chosen for one job:
| Job | Model | Why this model |
|---|---|---|
| Triage search results; build a company profile from a website | Nemotron 3.5 Lightning | Cheap and fast, runs on every search result |
| Extract requirements with page and verbatim quote | Nemotron 3 Super | Strong instruction-following on long documents |
| Read scanned pages and BoQ tables | Nemotron 3.5 Super VL | Vision, only where text extraction fails |
| Judge each requirement; draft fixes | Nemotron 3 Ultra | The hardest reasoning step, once per report |
All model calls go through a single gateway: routing table in config, fallback model per task, JSON-schema output with one repair retry, per-model concurrency limits, per-report and daily spending caps, and a trace row for every call. Model IDs never appear in application code, so a retired model is a one-line config change.
Architecture: a modular monolith driven by queues. FastAPI returns 202 immediately and streams progress over server-sent events, so a slow model never blocks a page. arq workers run ingest → parse → extract + verify → judge + verdict, plus price intel and triage in parallel. Each stage is idempotent and keyed by content hash. Requirements are extracted once per tender document and shared across every company that opens it; only judging runs per company. That keeps cost flat as users grow. Domain modules talk only through typed ports, enforced by import-linter in CI. The web app is Next.js 15 with a typed client generated from a frozen OpenAPI contract. Postgres, Redis and S3-compatible storage; the whole stack runs with one docker compose up.
What we measured on real GeM bids
- Cost: extraction with Super costs about $0.002–0.006 per bid; judging with Ultra about $0.01–0.05 per bid; a drafted fix about $0.002. A full report costs a few cents, so a ₹999/month subscription has plenty of margin.
- Citations: about 90% of Super's quotes from bilingual GeM pages matched their cited page on the first try. The verifier drops the other ~10%, so none of them reach the screen.
- Judging: with thinking enabled, Ultra caught every trap we planted in our demo company (manufacturer wording, missing BIS licence, type tests) and compared rupee thresholds correctly. With thinking off it was half the price but wrongly failed a company with ₹46 lakh turnover against a ₹3 lakh threshold. So we pay for thinking on the judging step and turn it off everywhere else.
Challenges
- Most of the risk isn't in the bid PDF. GeM bids say "as per specification (attached)" and link to buyer-uploaded documents, often scanned PDFs with zero text and BoQ Excel files. We had to follow every link, add a vision path for scans and a spreadsheet reader for BoQs.
- Bilingual pages. Hindi glyphs extract as noise; quotes span line breaks. The verifier normalises whitespace and anchors on the English text.
- Reasoning budgets. Nemotron reasoning models can spend the whole output budget thinking and return
content: null. We tune thinking per task and record it in the trace. - Non-determinism. The same bid gave 14–18 requirements across runs at temperature 0, which is why extraction is done once and cached by document hash.
Why open models
Bid prices and company documents are commercially confidential. A small manufacturer shouldn't have to send its pricing to a closed AI to get help bidding. Green Ink runs entirely on open NVIDIA Nemotron models on Nebius, and every claim in the report is tied to a page you can check.
What's next
- More portals: CPPP and state NIC portals (any tender PDF can already be uploaded).
- Hindi summaries and Hindi-only annexures.
- Nightly alerts: "7 new tenders you can actually win, 0 disqualifiers."
- The same engine for any eligibility-gated document: schemes, scholarships, licences.
Limitations (published on purpose)
- Only GeM is searched live; other portals work by upload. GeM's full-text search is loose, so triage marks unrelated results red.
- Scanned pages depend on vision accuracy; tables with merged cells can be misread.
- Hindi-only text is not read yet.
- A profile built from a website is marked unverified. The report is only as good as the documents behind it.
- Green Ink is advisory. It never submits a bid.
The demo company, Brightline Electricals, is fictional. Code is MIT-licensed: github.com/amityadav0/greenInk.
Get to the green ink.
Built With
- docker
- fastapi
- nebius-token-factory
- nemotron-3-super
- nemotron-3-ultra
- nemotron-3.5-lightning
- nemotron-3.5-super-vl
- next.js
- nvidia-nemotron
- postgresql
- pymupdf
- python
- railway
- redis
- tavily
- typescript