Inspiration
SpecCheck started with a problem my coworker, a general contractor, has to deal with every day. Before any product is installed, the subcontractor sends its data sheets, called a submittal, and he has to check them against the architect's specification. On one project that means hundreds of sheets checked by hand, questions coordinated with the architect, and constant back and forth with manufacturers to confirm a sheet is current or a product is still made. One missed detail sends the submittal back, and the project loses weeks.
When he tried other tools, his feedback was clear. Don't just tell me my specs don't match, tell me what to send instead and find me alternatives. This is what inspired SpecCheck.
What it does
SpecCheck reviews a package of submittals the way a careful reviewer would:
- Reads each data sheet and finds the values the spec cares about. Every value is stored with its exact quote and page number.
- Checks the manufacturer's website to see if the sheet is out of date or the product is discontinued.
- Compares each value to the spec and shows the whole package in one table: meets spec, current sheet, still made.
- Says what to send instead for each problem: the right product, a specific ordering option, or possible alternates.
- Re-checks approved products later and prints one review memo for the package.
You can also upload your own spec section. SpecCheck drafts the rules a data sheet can prove, and you edit them before using them.
In testing on real manufacturer documents, it caught 5 of 6 planted problems. These included a (1) firestop rated 0 hours where the spec required 2, (2) a 2005 data sheet whose values had since changed, and (3) a light fixture discontinued three months after approval.
How I built it
- Reading: NVIDIA Nemotron 3 Nano sorts the pages. Nemotron 3 Super pulls out each value with its quote. Both run on Nebius Token Factory.
- Checking the web: Tavily searches manufacturer sites and extracts their current documents. Super then reads those documents the same way.
- Deciding: Code decides pass or fail, not the AI. A value counts only if its quote is actually on the cited page with the same number and unit. Anything that can't be proven is flagged for a person.
- Running it: The app runs on a Nebius Serverless Endpoint, served through Vercel. Every AI and search call is budgeted before it's made, and a daily GitHub Actions job re-checks approved products.
Challenges
- Finding the current document. Some manufacturer sites block downloads, and one discontinuation notice listed its replacements only in an image. I used Tavily's extraction and OCR, and kept every value linked to where it came from.
- Trusting the output. AI models sometimes misread numbers. Strict quote checks keep wrong values out, at the cost of flagging more items for a person to review.
- Too much information. Early screens were hard to read since spec sheets have so much information. Each review now starts with the decision and What to send, with details underneath.
What I learned
- Making the AI quote its source, and letting code make the decision, makes every result easy to verify.
- Finding the right, current document is harder than reading it.
- One conversation with a real reviewer changed the product more than anything I had planned.
The future of SpecCheck
Extensive testing on real project packages, adding more spec sections, verifying replacement products end to end, and exporting the memo to the tools contractors already use.
Log in or sign up for Devpost to join the conversation.