ak-labz/Doc Intake

20 invoices just landed in your inbox.

Each one needs to be opened, read, and re-typed into your accounting system. About 3 minutes apiece. There goes your morning.

~3 min per doc
60 min of your morning

Open. Read. Find the fields. Type them somewhere.

Acme Logistics LLC
4220 SE Powell Blvd, Portland, OR 97206
Invoice #
INV-2026-0428
Bill to
Northwest Furniture Co.
900 NW Glisan St, Portland, OR 97209
Date
2026-05-18
Due
2026-06-17
DescriptionQtyRateAmount
Freight: PDX → LAX (5/12)1$2,400.00$2,400.00
Freight: PDX → SEA (5/14)1$850.00$850.00
Fuel surcharge (12.5%)1$406.25$406.25
Detention (2.5 hrs @ $75/hr)2.5$75.00$187.50
Lumper fee1$125.00$125.00
Subtotal$3,968.75
Tax$0.00
Total$3,968.75
Fields a person extracts
  • Vendor name
  • Invoice number
  • Invoice date + due date
  • Each line item (qty, rate, amount)
  • Subtotal, tax, total
  • Sanity-check the math
Multiply by 20 invoices, and there goes the time.

The AI reads it the way a person would. Just faster.

Invoice (PDF)
Acme Logistics LLC
INV-2026-0428
2026-05-18 / due 2026-06-17
Freight PDX→LAX $2,400.00
Freight PDX→SEA $850.00
Fuel surcharge $406.25
Detention $187.50
Lumper fee $125.00
Total $3,968.75
~3 sec
Structured fields
vendor:"Acme Logistics LLC"
invoice_number:"INV-2026-0428"
date:"2026-05-18"
due_date:"2026-06-17"
line_items:[ … 5 rows ]
subtotal:3968.75
tax:0.00
total:3968.75

The AI follows the same logic a human would: spots the header, reads the body, sums or validates as needed. No template setup. No re-training when the format changes.

Fully structured. Validated. Posted.

extracted_invoice.json
Validated
{
  "vendor": "Acme Logistics LLC",
  "invoice_number": "INV-2026-0428",
  "date": "2026-05-18",
  "due_date": "2026-06-17",
  "bill_to": "Northwest Furniture Co.",
  "line_items": [
    { "description": "Freight: PDX → LAX (5/12)", "qty": 1, "amount": "$2,400.00" },
    { "description": "Freight: PDX → SEA (5/14)", "qty": 1, "amount": "$850.00" },
    { "description": "Fuel surcharge (12.5%)", "qty": 1, "amount": "$406.25" },
    { "description": "Detention (2.5 hrs)", "qty": 2.5, "amount": "$187.50" },
    { "description": "Lumper fee", "qty": 1, "amount": "$125.00" }
  ],
  "subtotal": "$3,968.75",
  "tax": "$0.00",
  "total": "$3,968.75"
}
Checks
  • Subtotal = sum of line items
  • Vendor matched to AP master list
  • Invoice # not seen before
  • Due date in the future
Pushed to
QuickBooks Online
#Acme-folder (Drive)
Slack #ap-incoming

60 minutes 30 seconds.

Before
60
minutes / morning
· 20 invoices opened by hand
· Re-typed into QuickBooks
· Cross-checked totals
After
30
seconds / morning
· Inbox watched automatically
· Extracted, validated, posted
· You get a Slack summary
120× faster.
Per batch. Every morning. Every Monday.

Every invoice becomes searchable.

Once docs are structured, finding anything is a sentence away. Ask in plain English. No SQL, no filters, no Excel pivot tables.

4 matching invoices
Acme Logistics LLC
2026-04-22
INV-2026-0301
$5,240.00
paid
Acme Logistics LLC
2026-04-08
INV-2026-0214
$7,182.50
paid
Acme Logistics LLC
2026-03-29
INV-2026-0188
$5,015.00
paid
Acme Logistics LLC
2026-03-15
INV-2026-0142
$6,420.00
paid
Same engine works across rate confirmations, contracts, engagement letters. Anything that comes in.