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.
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
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.
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.
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
- 01Every arrival updates the same case
- 02Gaps and conflicts have distinct states
- 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.
Today
Modelled current scenario: fully manual handling
With the system
Modelled after scenario: 15 min less per case
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
- 021440×1100
Conflicting values requiring review. - 031440×1100
Mobile case-file view.
Open the remaining screen archive (5)
- 041440×1100
Gaps and deadlines - 051440×1100
Requests to the client - 061440×1100
Files handed over - 071440×1100
Restart checkpoint and decision history - 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.
A document reaches an existing case
Type classification and case-file update
Completeness, consistency, and expiry checks
Gaps or conflicts go to staff
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.
- 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.
- 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.
- 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.
- 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.
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.