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.

Already agreed a job with us?

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.

Source · vendor form p1l4–12
  1. 4Company Name
  2. 5Northwind Logistics LLCA
  3. 6Registered address
  4. 74120 Harbour Way, Suite 300
  5. 8Tacoma, WA 98402
  6. 9Contract Date
  7. 102025-04-02B
  8. 11Contract Value
  9. 12USD 84,000C
Output · data.csv, row 2evidence
Company NameNorthwind Logistics LLCA · p1 l5
Contract Date2025-04-02B · p1 l10
Contract ValueUSD 84,000C · p1 l12
PO Numberblanknot on page
From the sample job: three vendor documents, six named columns. See the full table and download the files.

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
One square per cell. Source: ten invoices, each linked to its court filing and the page it starts on. Counts: reconciliation.

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.
Limit

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.

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.

Done-for-you sample data output
DocumentCompany NameContract DateContract ValueSignatory NameGoverning LawPO Number
Cover sheetHarbourline Systems Ltdp1 l52025-06-18p1 l6USD 32,500p1 l7Priya Ramanp1 l8England and Walesp1 l9blanknot on page
Vendor formNorthwind Logistics LLCp1 l52025-04-02p1 l10USD 84,000p1 l12Dana Okonkwop2 l3Washingtonp2 l7blanknot on page
Consulting agreementRidgeline Analytics Corp.p1 l3–42025-03-15p1 l3USD 150,000p1 l14Amara Whitfieldp3 l8State of New Yorkp2 l9blanknot on page

Scroll sideways for all seven columns.

Five files land in every completed job.

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.

MeasureFree table tool, best mode per bankOur ledger, same statements
Signed amount columnNoYes, money out negative
Checked against the bank’s printed totalsNo6 of 6, to the cent
Source line behind each valueNo5,425 cited cells
Transactions whose amount appears1,085 of 1,0851,085 of 1,085
Rows ready to import: date, amount, full description, sign readable228 (21%)1,085
The same, if you sign the rest by hand418 (39%)—
Descriptions split onto other lines6540
Amounts fused with the balance in one cell190
Extra lines to delete or merge (headers, summaries, wrapped text, page furniture)1,7670
On its default autodetect mode the tool found 793 of the 1,085 amounts. Three of the six statements came back almost empty: 2 of 99, 0 of 13 and 24 of 90.

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.

Limit

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