Skip to content
07.6Capability — Document intelligence

The form arrives already filled.

A pharmacy joining a marketplace has already produced its commercial registration and its licences. The numbers, the dates and the names are all in those documents, and asking someone to type them into a signup form again is how the wrong digit gets in. A model reads the uploaded files and returns the fields, so the work becomes checking twenty values rather than entering them — and the ones it is not sure of arrive marked instead of guessed.

What it looks like

Filled in, except where it is unsure

Draft readyregistration.pdf · 2 pagesCompletedraft · not approved

السجل التجاري

scan · 1 of 2

  1. الاسم التجاريصيدلية الواحة الطبية
  2. رقم السجل التجاري١٠١٠٤٤٧٢١٩
  3. المدينةالرياض
  4. النشاطبيع الأدوية والمستحضرات الطبية بالتجزئة
  5. تاريخ انتهاء السجل٢٩/٠٦/١٤٤٧ هـ
  6. المفوّض بالتوقيعنورة بنت سعد العتيبي
رخصة مزاولة صادرة عن الهيئة العامة للغذاء والدواء

2007-043 — two digits obscured by the stamp

the stamp crosses the number

page 1 of 2 — the licence on page 2 is read the same way

Press Try now to drive it yourself
سجل تجاري واضحرخصة مختومةصورة مائلةوثيقة منتهية
Signup form

Each field appears as it is read, with what the model would stake on it

  1. Legal name0.99

    صيدلية الواحة الطبية

  2. Registration no.0.98

    1010447219

  3. City0.97

    الرياض

  4. Activity0.91

    Retail pharmacy

    Mapped to the closest option on your list

  5. Registration expiry0.94

    2026-12-19

    Hijri date normalised to the calendar your system stores

  6. Signatory0.96

    نورة بنت سعد العتيبي

  7. Licence no.0.41

    Not filled — needs review

    Two readings disagree where the stamp crosses the digits. Left for the applicant to enter.

  8. Licence expiry0.89

    2027-03-14

Twelve further fields — address, contact and banking — are read the same way and are not drawn here

Fields returned

Nineteen of twenty

Held for review

One — the licence number

Approval

A person, after this

A simulated extraction. On one side an invented Arabic commercial registration — trade name, registration number, city, activity, expiry, signatory and a licence stamp. On the other, the signup form filling in field by field as each value is read, every field carrying a confidence score, and the licence number returned marked for review rather than guessed because the stamp crosses its digits. The result is a draft a person confirms; nothing here approves an applicant. After the run, the reader chooses which document is handed over — a clean registration, a stamped licence, a skewed phone photograph or a document past its validity — and each one fills the same form differently, two of them leaving fields nobody filled. Every document is invented.

A simulated extraction, drawn in code in this palette and played once. Press Try now and hand it a different document — a clean one, a stamped one, a bad photograph — and watch which fields it refuses to guess. The interface is drawn rather than captured and the documents are invented: no real registration, licence or client record appears here.

How it runs

Six steps, and the last one is a review

01

Upload

The applicant attaches the registration and the licences, in the formats a scanner and a phone camera actually produce.

02

Classify

Each file is identified before it is read: a registration, a licence, or something that does not belong in this application.

03

Read

A vision model reads the page as it is — Arabic, stamps, a signature across a line, a photograph taken at an angle.

04

Map

Values land in named fields, with dates normalised and numbers written the one way your system stores them.

05

Score

Every field carries what the model would stake on it, and anything under your threshold is marked rather than filled.

06

Review

The applicant confirms or corrects, and only then is there a record. The extraction approves nothing.

What you get

A draft, and the screen where it is confirmed

Extraction serviceYour document types, your field list, your thresholds
Review screenEvery value beside the page it was read from
Confidence policyWhere the line sits, field by field, changed without a release
Audit trailWhat was read, what a person changed, and when
StorageOriginals held where your retention rules say they may be held
DocumentationTechnical and administrator, handed over with training
What it connects to

Into what you already run

OnboardingThe signup or application the fields belong to
Systems of recordWhere an approved supplier or customer finally lands
Object storageThe bucket the original files stay in
IdentityWho uploaded, who reviewed, who approved
MessagingSending an applicant back for the page that did not arrive
RegistriesA number checked against the authority that issued it, where an interface exists
Custom, not configured

Your fields, your thresholds.

Which documents count, which fields matter, and how sure the model has to be before a value is offered at all — those are your decisions, and they are written down before anything is built. A licence number is held to a higher line than a city name, because the two are not wrong at the same cost.

An extraction is a draft. A person confirms it, and that confirmation is the record — nothing here approves an applicant. A field the model is unsure of comes back marked and empty rather than guessed, because a confidently wrong licence number is worse than one nobody filled in.

Next

Send us one of the documents.

A registration or a licence of the kind you actually receive, with the fields you would want off it. We will tell you which can be read reliably, which will always need a person, and scope a build against that.