AI PM Portfolio · Fintech · Berlin, 2026
A human-in-the-loop agentic triage assistant — inspired by public N26 job postings and BaFin regulatory findings. Built in 14 days using LangGraph, Claude Sonnet 4.6, and the public IEEE-CIS dataset.
Sample agent output — generated using public IEEE-CIS dataset. No real customer data.
Section 01 · Problem & market context
BaFin, Germany's financial regulator, fined N26 €4.25M in 2021 and €9.2M in 2024 specifically for systematic delays in filing suspicious activity reports. A special audit in 2024 found serious deficiencies in risk management and complaint handling, leading to the appointment of a second special monitor. The root cause named in every enforcement action: compliance infrastructure that could not scale with the bank's transaction volume.
The bottleneck is not fraud detection. N26 has an upstream fraud scoring model. The bottleneck is the reasoning step between a flag and a human decision — investigators manually reviewing cases with no structured context, no explainability, and no way to log their decisions in a BaFin-auditable format at scale.
Section 02 · Why AI, not automation
A rules-based system handles known SEPA fraud typologies well — velocity thresholds, blacklisted BICs, known mule IBAN patterns. N26 already has these. What it cannot do is reason over a case where signals conflict: a legitimate-looking high-value SEPA Instant transfer to a new payee that matches a known APP scam pattern but also matches normal behaviour for this customer segment.
These ambiguous cases are where investigators spend disproportionate time — and where delays in SAR filing accumulate. An LLM-based agent adds value here not by replacing the investigator's judgement, but by assembling the case file, naming the conflicting signals, and explaining its reasoning. The investigator's cognitive load shifts from gathering context to evaluating a structured argument — a much faster task.
Section 03 · User & job-to-be-done
User: Fraud investigator, N26 Financial Crime team. Reviews 50–200 flagged transactions per shift. Has a fraud score but no context around it. Must log a defensible decision in a BaFin-auditable format.
Job to be done: Given a flagged transaction, gather relevant context, make an approve / decline / escalate decision, and move to the next case — in under 3 minutes per case, with a written rationale that satisfies a BaFin audit examiner.
Current friction: Steps 1–3 (gather context, cross-reference history, write rationale) are entirely manual and unstructured. The investigator opens 3–4 internal tools, runs queries, and types free-form notes. On novel cases — new payee, cross-border SEPA Instant, conflicting signals — this takes 10–20 minutes.
Section 04 · Product design decisions
Section 05 · Evaluation framework
Evaluated on a 50-case held-out set from the IEEE-CIS dataset (25 fraud, 25 legitimate), not used during prompt development. Results below — replace with your actual numbers after Day 10.
Section 06 · Regulatory classification
This system was designed from day one as high-risk under EU AI Act Annex III (systems affecting creditworthiness and financial access). The design decisions in section 4 flow directly from this classification — they are not bolted-on compliance checkboxes.
| Regulation | Implementation in this prototype |
|---|---|
| EU AI Act — Annex III | Classified as high-risk. Decision-support only — no autonomous actions on accounts. |
| EU AI Act — Article 14 | Hardcoded HITL escalation rules. Human approval required on every case. Low/medium confidence → automatic escalation. |
| BaFin / MaRisk | Append-only SQLite audit log: timestamp, case ID, recommendation, confidence score, investigator decision, override reason. |
| GDPR — Article 22 | No solely-automated decisions. Written reasoning trace enables right-to-explanation. Data minimisation: agent retrieves only fields needed for the case. |
| PSD2 | Explicit fraud type classification: APP fraud (customer-initiated, different PSD2 liability) vs card fraud. Different escalation paths. |
| GwG / AML | AML secondary flag routes cases to SAR path — not customer contact — with explicit note on confidentiality obligation (Verdachtsmeldung). |
Section 07 · Architecture snapshot
A LangGraph state graph — not a single-shot chain. Each node has a defined input and output. The HITL boundary is node 4 (apply_hitl_rules), not the UI. The decision to escalate is made in code, before a human ever sees the recommendation.
Section 08 · 90-day success metrics
If this shipped as a real product at N26, these are the metrics I would track — and the ones I would use to argue for continued investment after the pilot.
Section 09 · What was cut from v1
Section 10 · Data & tools
Data transparency statement: All data used in this prototype is derived from the public IEEE-CIS Fraud Detection dataset (Kaggle) and synthetic records generated by the author. No real customer data, no N26 internal data, and no confidential information was used at any point. Company references are inspired by published job postings, public regulatory filings, and publicly available product direction — not insider knowledge.
Built by [Your Name] · AI PM Portfolio · July 2026
Deployed on Streamlit Community Cloud. No login required.