Inspiration

A useful project can still miss a submission requirement hidden in a separate rules page: a detectable open-source license, a public video, a specific platform, or a deadline expressed in another time zone. The Nebius hackathon itself spreads those requirements across its overview, rules and resources. FinePrint makes the supporting sentence visible instead of asking an entrant to trust an unexplained checklist.

What it does

Paste official contest-page URLs and an entry's repository, video, demo and description. FinePrint extracts requirements, verifies their quotations against the retrieved text, collects supporting facts from GitHub and YouTube, and labels requirements as pass, fail, to do, manual review or not applicable. It converts a Pacific-time submission deadline in code, orders suggested fixes and exports the report as Markdown. Cross-page conflicts must reference two verified rules from different sources.

The demo has three explicitly different modes: an offline sample using stand-ins, a recorded real LIVE report, and actual LIVE requests using the judging access code. Recorded output is not presented as a new model response.

How it is built

Node.js serves a small single-page interface and streams progress as NDJSON. All actual model calls go to Nebius Token Factory:

  • NVIDIA Nemotron 3 Nano extracts rules from page chunks in parallel.
  • NVIDIA Nemotron 3 Super checks the verified requirements against collected evidence.
  • NVIDIA Nemotron 3 Ultra reviews cross-page conflicts and prioritizes fixes.

Quotation matching, deadline conversion, repository/license checks and evidence collection are code, not model guesses. Tavily is optional in the code but was not used in the submitted validation and is not claimed for the Tavily bonus prize.

The public deployment uses a private Vercel Blob ledger with ETag conditional writes. Before every model request it reserves a conservative input/output cost upper bound. Concurrent instances share a USD 0.65 reservation cap; missing storage, stale writes and exhausted budget refuse a model call. URL, body, redirect, response-size, timeout and per-instance abuse limits provide additional defenses.

Challenges

The first actual Nano run reached its output limit and produced incomplete JSON. We added explicit thinking control for bounded JSON requests and reject length-truncated output rather than treating it as a report. A serverless routing mismatch was also caught during the first deployment check; a dedicated regression test now verifies route preservation and the recorded-report endpoint.

A rate counter in server memory is not a global spending limit on serverless. We therefore tested the actual private Blob adapter separately: create/read/stream/ETag, conditional update, rejection of a stale ETag, and persistence across a new ledger instance passed without making any inference request.

Verification and limitations

The automated suite has 41 passing tests. After the initial saved-excerpt integration test, the deployed app retrieved all three official pages and completed 10 Nano calls, one Super call and one Ultra call. It matched 91 of 94 extracted quotations to the retrieved source text, with token/latency records and a code-calculated Korean deadline. This is integration evidence, not an accuracy benchmark. A verbatim quotation does not prove that every requirement was retrieved or correctly interpreted. Manual review and the binding official rules remain necessary. In-memory rate counters are per instance, and DNS rebinding is not fully eliminated by pre-resolution checks.

What we learned

The OpenAI-compatible endpoint made model routing straightforward, but production readiness required more than a successful response: complete-output checks, provenance validation, explicit demonstration modes and durable cost reservations mattered just as much. The interface should show evidence and uncertainty, not only a confidence-sounding verdict.

What's next

Evaluate extraction coverage and interpretation against a manually labeled set of official rules, strengthen URL-fetch isolation, and monitor demo availability through the judging period without silently enabling paid usage.

AI assistance

AI coding and review tools (Claude and GPT) assisted the implementation, tests and documentation under the entrant's direction. FinePrint's runtime models are the named NVIDIA Nemotron models on Nebius Token Factory; it does not call Claude or GPT at runtime.

Built With

Share this project:

Updates

Submission history