Skip to content

Every new document updates the same case file, so staff can see what is missing and what needs clarification.

Client documents usually arrive in stages. The system identifies each document type, checks the case against its requirements, and drafts a request for specific gaps. Staff resolve conflicts and decide how the case proceeds.

Client document intakeDemonstration systemWalk through one client case file

Verified demonstration scope

The system read a document, retained real gaps, and did not mark the case complete. The demonstration uses no client data.

Recorded test
Verified demonstration scope
What we tested
Client document intake
Measurement data
test data

Problem, solution, and result

  1. Why case files get stuck in the inbox

    Identity documents, powers of attorney, and declarations arrive separately. Gaps are tracked in email or in one employee's memory, so the current state becomes unclear after several days.

  2. What the system does

    Each document joins the right case. A local classifier identifies its type, while rules check the required set, consistency, and expiry dates. The system saves the state and drafts a request for missing material.

  3. What we tested

    The system read a document, retained real gaps, and did not mark the case complete. The demonstration uses no client data.

For whom

This fits a team that collects documents across many messages, maintains checklists manually, and repeatedly follows up on missing or inconsistent material.

Document → case file → checks → decision

  1. 01Every arrival updates the same case
  2. 02Gaps and conflicts have distinct states
  3. 03Client approval remains outside the system
Best for
Financial intermediaries and back-office teams completing client files
Input data
Documents for one case in several arrivals, over days
Human decision
Staff resolve conflicts and decide whether the case can proceed
Cost
About PLN 0.00089 for the recorded read of one document.
Test scope
The demonstration checks file completeness and holds a case when a document is missing or sources conflict.
Audit trail
The history shows every submission, detected gap, both sides of a conflict, and the employee’s decision.
Similar system build
from €6,000 net (approx. $6,500) · 6–16 weeks

Staff decisions

What the system is deliberately unable to do

Its tool registry contains no client approval, sanctions screening, or risk scoring. A drafted request is never sent automatically. Staff evaluate conflicts and make every onboarding decision.

Cost
About PLN 0.00089 for the recorded read of one document.

Estimated impact

Calculate the impact at your volume

This estimate uses the stated volume. Enter your own numbers to assess the possible impact in your company. The result is confirmed only during a pilot.

  1. Today

    Modelled current scenario: fully manual handling

  2. With the system

    Modelled after scenario: 15 min less per case

  3. Time or cost saved

    Modelled scenario: 40-70 h/mo, base 55 h

Volume
Modelled scenario: 220 cases/mo
Formula
220 x 15 min / 60
Calculation status
medium

Data in the screenshots. The names, amounts, and documents shown in the screenshots are synthetic. Client data remains private. Measurements describe the demonstrator and are kept separate from production outcomes.

Working views

Staff resolve conflicts and make decisions. The system remembers documents, gaps, and case history.

Staff open a case and see its current state, missing items, and questions to resolve. Work can pause and resume after a process restart without losing documents or decisions. Multi-day reliability still needs validation in the client's environment.

Case file, gap list, and intake history.

Case state

Received documents, completeness, and expiry dates.

Gaps and conflicts

Specific items requiring contact or a decision.

Case history

Every arrival, state change, and escalation in time order.

System screens

See how the system works in practice

These desktop and mobile screenshots come from the running application. They show the process and the points where a person makes the decision.

Screens
8
px
1440 · 390
011440×1100
Incomplete case file with named gaps.
390390×844
  1. 021440×1100
    Conflicting values requiring review.
  2. 031440×1100
    Mobile case-file view.
Open the remaining screen archive (5)
  1. 041440×1100
    Gaps and deadlines
  2. 051440×1100
    Requests to the client
  3. 061440×1100
    Files handed over
  4. 071440×1100
    Restart checkpoint and decision history
  5. 081440×1100
    Required document sets

Technology stack

A graph with durable state, because the file lives for days.

This process waits by nature: documents arrive over several days, and between arrivals the case must remember everything. So we use LangGraph with PostgreSQL checkpoints, where interruption and resume are ordinary process states and case state survives restarts. Document classification runs locally, so no document leaves for an external model. State, decisions, and audit live in one database, which keeps maintenance and audit review simple.

LangGraph with a PostgreSQL checkpoint
runs the multi-day file process and saves full state at every interruption
PostgreSQL 17
holds case state, decisions, and the audit in one database
MinIO
object storage for the case's source documents
Local Naive Bayes classifier
recognizes the document type without calling an external model
FastAPI with Pydantic
validates input and exposes the process's commands and reads
Next.js
the operator's case room: trays, file, inconsistencies, and trace

The client receives the code, document requirements, evaluation data, and documentation. The system runs as four Docker Compose services in the client's infrastructure. The demonstrator connects to no mailbox, KYC system, or other client system.

Technical details and measurements

How the system works

The case file remembers every arrival and always shows the current state.

A new document is classified and added to the existing case. Rules recalculate completeness, consistency, and expiry. PostgreSQL stores the result so work survives interruption.

01

A document reaches an existing case

02

Type classification and case-file update

03

Completeness, consistency, and expiry checks

Gaps or conflicts go to staff

04

Staff resolve the issue and decide the next step

System architecture

Storage, classification, graph, and checkpoint.

Documents in MinIO, local classification, a process graph that pauses on gaps, and state that survives restarts in PostgreSQL.

  1. 01

    Input

    The document lands in object storage.

    FastAPI validates the input with Pydantic models, the file goes to MinIO, and the reading tool works on the source object. The case file points at source documents rather than copies of their text.

  2. 02

    Classification

    A local model recognizes the document type.

    The local classifier records its result and duration. That result selects the required document set for the entity type and drives the consistency and expiry checks.

  3. 03

    Checkpoint

    Interruption is one of the process states.

    A missing document or needed decision pauses the process and saves its full state in PostgreSQL. A separate restart trial resumed the same thread with 4 checkpoints preserved and 5 after a clean continuation.

  4. 04

    Boundary

    Exactly seven tools, and none of them approves.

    Read, classify, required set, file state, consistency, request draft, and escalate. The approve, sanctions_screen, and risk_score calls do not exist; the registry enforces the boundary, and no prompt wording can widen it.

Why a tool's absence is the proof here

The tool registry is closed and visible on a product screen, and the system can do nothing the registry does not hold. Approving a client is inexpressible because no such call exists. The checkpointed graph provides the required durable state: files remain active for days and resume from the exact point where they paused.

  • The registry of seven tools is closed and documented
  • No tool exists that could perform a forbidden action
  • A PostgreSQL checkpoint carries state across days
  • Every run and decision stays in the audit

Want to assess a similar process in your company?

  • A 30-minute call with the engineer who would lead the work.
  • A review of the processes that cost you the most time and money.
  • A written summary of what to automate first and the likely cost range.
€030 minutes · written takeaway within 2 business days
Book a free process scan (30 min)

Times are shown in your own time zone. We work with clients across time zones.

The scan is free and creates no obligation. If automation is unlikely to pay off, the written recommendation will say so.