All articles

Open source

Introducing OpenPaperwork

Eliminate paperwork bureaucracy. An open-source library of 91 document standards, each with a scripted check, for the agent you already have.

Today we are opening the library behind Nodejam. OpenPaperwork is a set of document rules for the agent you already have, whether that is Claude, ChatGPT, Cursor or Antigravity. You ask for an invoice, an NDA or the board minutes. Your agent writes the content, our scripts build the file, and a check against the published rule decides when it is done. It is free and open source under Apache 2.0.

Paperwork already has rules

Most paperwork is a file with rules somebody already wrote down. An e-invoice in the EU follows EN 16931. A Swedish company’s invoices and letters must name its registered seat, under the Companies Act. A paper follows APA 7 or IEEE. The rules differ by country and by field, but they are written, versioned and public.

An agent can make a file that looks finished. Whether it follows those rules is a separate question. Coding agents took off because code can answer that question by itself, since the tests either pass or fail. OpenPaperwork gives paperwork the same kind of test.

How it works

Input, process, output. Your files, a folder or nothing go into a workflow, where code builds the file and the model writes. A check against the published rule follows, and a fail goes back to the workflow with the reason. The file lands beside your originals.

The picture is a real run. The input is a plain note with a seller, a buyer, three delivered lines and an advance already paid. You ask for the invoice in your own words.

Code does every step that has one right answer, such as the totals, the VAT, the dates and the invoice number. The model reads the note, writes the words and makes the judgement calls. Then a script checks the finished PDF and its XML against the rules the pack names. In this run the first check failed, because the invoice left out the company’s registered seat. The agent got that reason back, found the seat in the notes and added it. The second check passed, and the invoice landed in the folder beside the note.

Each standard in the library comes with four parts. A guideline names its source and version. A starter fixes the layout before the model writes a word. A scripted check reads the finished file. Invented cases show the check passing a clean file, and on every pull request the build fails if a check lets a planted fault through.

More than invoices

Fifteen pages the library's own scripts built from its starters: a German e-invoice, an NDA, a sales deck, UK board minutes, a US quotation, a Norwegian employment contract, an IEEE paper, a requirements specification, a budget sheet, a UK letter, a Swedish annual report, a service deck, a Finnish order confirmation, a Canadian offer letter and a cloud service agreement, and an open tile for what comes next.

The library starts with 91 standards, laws and style guides, from Swedish annual reports to IEEE papers. They come in packs for finance, sales, legal, HR, operations, marketing, engineering and academic work. The standards list names each source and version, and says where a pack still uses our own layout until the published one is ported.

What it changes

We ran the same invoice case five times in Claude Code on Claude Haiku, with and without the library. The Mustang validator judged each e-invoice against EN 16931, and we compared the amount due with the right one, 15,010 kr.

The agent aloneWith OpenPaperwork
Valid e-invoice2 of 55 of 5
Right amount due5 of 55 of 5
Median time142 s92 s

Five runs of one case check the claim. They are not a benchmark. The agent alone got the money right every time, and three of its five invoices still came back looking finished and failed the validator. With the library, a file that fails goes back to the agent instead of to you.

Use the agent you already have

In the folder that holds your notes, run one line.

npx skills add ActuallyNodejam/openpaperwork

Then ask your agent for the file. The packs are plain Agent Skills, so Claude Code, Codex, Cursor, Antigravity and any other agent that reads skills and runs Python can use them as they are. In the Claude app, add the library as a plugin. In ChatGPT, open the folder as a project. The quickstart has the steps for each.

Why open

The rules were public before we wrote them down. In a shared library, the next standard is a small change anyone can review, made by the people who know their country’s invoice or their field’s style guide. Adding a standard walks through it. Nodejam builds on the same library for teams.

OpenPaperwork is an early preview. A passing check means the file meets the rules we took from a named source and version. It is not certification, and it is not legal, tax or accounting advice. Read a file before you send it.

OpenPaperwork on GitHub

Sources

Start with your own work.

Bring the files of one project to a call.

Get in touch