Document extraction · Private preview

Peel the data
off the page.

Upload an invoice, contract, receipt or scan. Docpeel works out what it is, pulls out typed fields with a confidence score for each, and flags the values worth a second look before you export them.

  • PDF · DOCX · scans
  • JSON · CSV · Excel
  • Your choice of model
invoice-0412.pdf InvoiceCompleted

Header

invoice number

0412

98%

vendor name

Northline Studio

96%

Totals

total amount

720.00 GBP

94%

due date Review

03 Apr 2026

64%
Illustration of Docpeel’s review screen with sample values. The due date is inferred from “within 30 days”, so it scores lower and is flagged for review.

How it works

One pass from file to fields you can trust.

Uploads are processed in the background while the page keeps you posted. When a value looks wrong, re-process the document with a different field list without uploading it again.

  1. 01 Upload PDF, DOCX, JPEG, PNG, TIFF
  2. 02 Read Text layer or OCR
  3. 03 Classify Six document types
  4. 04 Extract Template or your fields
  5. 05 Validate Typed checks, confidence
  6. 06 Review Then export

Features

Built for the work between upload and spreadsheet.

01

Reads what you already have

PDF and Word files are parsed directly. Scans and photos go through Tesseract OCR. Files up to 50 MB are checked by their actual bytes, not the extension they claim.

02

Knows what it is looking at

Each document is classified as an invoice, contract, receipt, tax form, legal filing or other, and extracted with a template built for that type.

03

Or asks for exactly your fields

Name the fields you need and their types at upload. Your list replaces the template and is remembered when you re-process the document.

04

Shows how sure it is

Every value carries a confidence score and is validated as a date, amount, email, phone, tax ID or JSON. Weak or invalid values are flagged for review.

05

Exports where you work

Download the fields as JSON, CSV or Excel, copy a single value, or download the original file you uploaded.

06

Handles a stack at once

Drop in up to 20 documents. Each one gets its own job and status, and the library lets you search by name and filter by type or status.

Document types

  • Invoice
  • Contract
  • Receipt
  • Tax form
  • Legal filing
  • Other

Field validation

  • date
  • money
  • number
  • percent
  • email
  • phone
  • tax ID
  • JSON

Model providers

  • Anthropic
  • OpenAI
  • Google
  • OpenRouter

Your documents

Only the owner sees a document.

Every document, file and field is scoped to the account that uploaded it, twice: by database row-level security and again in the app’s own queries. The original is kept so you can check a value against it, and deleting a document removes the stored file too.

Text is sent to the model provider you configure for classification and extraction. Choose the provider whose data terms suit your documents.

Get Docpeel

In private preview.

There is no public sign-up yet, and the source is shared by invitation. If you have access, you can run your own instance against your own Supabase project and model key.

Run your own instance
git clone git@github.com:aylith-labs/docpeel.git
cd docpeel/app && npm install

# Add your Supabase URL, anon key and model key
cp .env.example .env

# Create the tables, policies and storage bucket
supabase link --project-ref <your-project-ref>
supabase db push

npm run dev    # http://localhost:5540

Needs repository access. Commands run in your own terminal.

  • Node.js 22 or newer

    The app is a SvelteKit server. Run it on a long-lived Node host if you rely on background processing.

  • A Supabase project

    The migrations create the tables, row-level security policies and a private storage bucket.

  • A model provider key

    Anthropic by default; OpenAI, Google and OpenRouter work too. Your provider account and usage costs apply.

Not built yet

Highlighting the exact spot on the page a value came from, extraction history, a durable job queue, a public API, team accounts and billing. Throughput and accuracy have not been benchmarked.

Follow progress and the changelog