Documents to CSV · closed to new work
Documents to CSV is closed to new work.
From 29 September 2026 we take no new jobs or free proofs. The reference job, the sample files and the tool comparison below stay public as a record of how the service worked.
We finish it or settle it with you, and the terms you agreed to still apply, including refunds. Write to hello@cybernative.ai from the address you used.
- 4Company Name
- 5Northwind Logistics LLCA
- 6Registered address
- 74120 Harbour Way, Suite 300
- 8Tacoma, WA 98402
- 9Contract Date
- 102025-04-02B
- 11Contract Value
- 12USD 84,000C
| Company Name | Northwind Logistics LLC | A · p1 l5 |
|---|---|---|
| Contract Date | 2025-04-02 | B · p1 l10 |
| Contract Value | USD 84,000 | C · p1 l12 |
| PO Number | blank | not on page |
Reference job · 10 public invoices
86 of 100 values filled, each with its line. 14 left blank, with reasons.
Ten supplier invoices from public U.S. court filings, read into one CSV with ten named columns. Every filled cell quotes the page and line of the court record.
| invoice_number | 10 | |
|---|---|---|
| invoice_date | 10 | |
| due_date | 7 | |
| amount_due | 10 | |
| po_number | 2 | |
| payment_terms | 9 | |
| supplier_name | 10 | |
| remit_to | 10 | |
| bill_to | 10 | |
| customer_account | 8 |
86 / 100 filled
filled, with page and lineblank, with the reason
- po_number · 8The invoice prints no PO number.
- due_date · 3The invoice gives terms, not a calendar date.
- customer_account · 2No labelled account number is printed.
- payment_terms · 1The terms sit on a linked page, not the invoice.
Court records carry an OCR text layer, and it can misread: one reads “Oliver MciVlillan” where the page says “Oliver McMillan”. We deliver the readable name and publish the raw line.
- reference-job.csvthe 10 rows
- reference-job-evidence.csvline behind each cell
- reference-job-flagged.csvthe 14 blanks
- reference-job-dictionary.mdcolumn rules
Sample output · data.csv
One row per document. Each value with its page and line.
Three vendor documents, six named columns. None of the three prints a PO number, so that column comes back blank and is listed in flagged.csv.
| Document | Company Name | Contract Date | Contract Value | Signatory Name | Governing Law | PO Number |
|---|---|---|---|---|---|---|
| Cover sheet | Harbourline Systems Ltdp1 l5 | 2025-06-18p1 l6 | USD 32,500p1 l7 | Priya Ramanp1 l8 | England and Walesp1 l9 | blanknot on page |
| Vendor form | Northwind Logistics LLCp1 l5 | 2025-04-02p1 l10 | USD 84,000p1 l12 | Dana Okonkwop2 l3 | Washingtonp2 l7 | blanknot on page |
| Consulting agreement | Ridgeline Analytics Corp.p1 l3–4 | 2025-03-15p1 l3 | USD 150,000p1 l14 | Amara Whitfieldp3 l8 | State of New Yorkp2 l9 | blanknot on page |
Scroll sideways for all seven columns.
Five files land in every completed job.
- data.csvYour columns, one row per document, line item or transaction.sample-data.csv
- data.xlsxThe same rows as an Excel workbook.in every job
- flagged.csvRows with missing or unreadable values, with the reason.sample-flagged.csv
- reconciliation.mdDocuments in, rows out, cells filled.sample-reconciliation.md
- data-dictionary.mdWhat each column means and where it was read.sample-data-dictionary.md
Free table tool · 6 bank statements
In its best mode, a free table tool found every amount. By our heuristic, 228 of 1,085 rows (21%) came out ready to import.
Our own test on public documents: six business bank statements from six US banks, all selectable-text PDFs, 1,085 transactions. We ran Tabula 1.0.5, the free open-source PDF table tool, in its three modes and kept the mode that found the most amounts for each bank. We then compared its output with the ledger our own process produced for the same six statements.
| Measure | Free table tool, best mode per bank | Our ledger, same statements |
|---|---|---|
| Signed amount column | No | Yes, money out negative |
| Checked against the bank’s printed totals | No | 6 of 6, to the cent |
| Source line behind each value | No | 5,425 cited cells |
| Transactions whose amount appears | 1,085 of 1,085 | 1,085 of 1,085 |
| Rows ready to import: date, amount, full description, sign readable | 228 (21%) | 1,085 |
| The same, if you sign the rest by hand | 418 (39%) | — |
| Descriptions split onto other lines | 654 | 0 |
| Amounts fused with the balance in one cell | 19 | 0 |
| Extra lines to delete or merge (headers, summaries, wrapped text, page furniture) | 1,767 | 0 |
The free tool finds the numbers. Turning its output into a ledger is still your job: joining descriptions back onto their rows, adding signs, deleting page lines and checking the result against the statement.
This is a heuristic comparison against our own ledger, not a measured accuracy score. We paired the tool’s lines with our rows by date and amount; 32 of the 1,085 transactions share both with another on the same statement, so some pairings can be wrong, and a bookkeeper may accept a shorter description than ours. Six text PDFs from six US banks, picked by us; scans and other layouts were not tested. We did not run any paid converter or Excel’s PDF import, and we did not time the cleanup. Our own first pass had description errors; our review fixed most of them, but 5 of our 1,085 final descriptions still ended with a section heading copied from the page. A later test found them, and the counts above use the corrected ledger. The statements name individuals and vendors, so we publish counts only.
We also gave the same six statements’ text to one general AI assistant at two capability levels, run by us, not any consumer chat product, one run per statement. The stronger level matched every date, sign and amount, and its totals matched the bank’s on all six. The lighter level got one statement wrong (two added rows, one missing check) while calling the file ready to import; a second run on that statement was right. What we add is output we have reviewed and answer for, with the source line behind each value.
Questions about a job, a refund or your data?
This service takes no new work. If you already agreed a job with us, write to hello@cybernative.ai and we finish it or settle it with you.
Contact us