Elke organisatie verzamelt contracten sneller dan ze ze leest. Leveranciersovereenkomsten, SaaS-abonnementen, NDA's, huurcontracten en arbeidsvoorwaarden belanden als PDF in een mailbox of een gedeelde map, en daar blijven ze liggen. Tot het moment dat een abonnement zichzelf stilzwijgend verlengt, een opzegtermijn net is verstreken, of iemand vraagt: welke leverancier mag jouw klantdata eigenlijk buiten de EU verwerken? Dan begint het zoeken in tientallen losse bestanden.
Deze gids is voor de ondernemer, office manager of operations-verantwoordelijke die geen (of een kleine) juridische afdeling heeft, maar wel tientallen tot honderden contracten beheert. Je leert hoe je met AI een werkstroom bouwt die contracten inleest, de belangrijke punten eruit haalt, risico's markeert en alles in een doorzoekbaar archief zet dat de AVG respecteert. Het vervangt je jurist niet. Het maakt wel een einde aan handmatig overtypen en aan het missen van datums die geld kosten.
Wat je nodig hebt
- Eén plek waar contracten samenkomen. Een gedeelde map, een mailbox-label of een uploadformulier. Zolang het maar de enige bron wordt.
- Een AI-model met structured output. Een taalmodel dat je dwingt om antwoorden in een vast JSON-formaat terug te geven, in plaats van vrije tekst. Dit is de spil van de hele werkstroom.
- OCR voor gescande PDF's. Veel contracten zijn ingescand en bevatten geen selecteerbare tekst. Daar heb je een tekstherkenningslaag voor nodig.
- Een opslag- en goedkeuringslaag. Notion, of Google Drive in combinatie met Google Sheets. Hier komt het register, de versies en de akkoorden.
- Afspraken voor privacy. Een verwerkersovereenkomst met je AI-leverancier, verwerking binnen de EU, en een bewust retentiebeleid.
- Een eindverantwoordelijke. Een mens die het laatste woord houdt over juridische oordelen. AI levert een voorzet, geen handtekening.
De kern in zes stappen
In het kort: je bouwt een werkstroom die elk contract als PDF inleest, de tekst (zo nodig via OCR) leesbaar maakt, met structured output vaste velden extraheert (partijen, datums, opzegtermijn, waarde, risico's), die laat controleren door een mens, en het resultaat wegschrijft in een doorzoekbaar register met versiebeheer en een doordacht retentiebeleid.
Begin bij één bron en werk per contract deze stappen af.
1. Centraliseer je contracten
Verzamel alles op één plek voordat je iets automatiseert. Een AI-werkstroom op een verzameling verspreide mappen levert alleen verspreide chaos op, sneller. Maak een map of database "Contracten - inbox" waar nieuwe overeenkomsten binnenkomen, en een "Contracten - verwerkt" waar ze na controle heen gaan. Dezelfde discipline die nodig is om je data op orde te krijgen voordat je AI loslaat geldt hier letterlijk: zonder één bron is de rest bouwen op zand.
2. Maak de tekst leesbaar (en OCR waar nodig)
Een modern PDF-contract bevat meestal selecteerbare tekst die je model direct kan lezen. Een ingescand of gefotografeerd contract niet, dat is in feite een plaatje. Voeg dan eerst een OCR-laag toe die de tekst herkent. Dit is precies dezelfde stap die je gebruikt om inkomende facturen automatisch te laten uitlezen met OCR: herken de tekst, en geef die schone tekst pas daarna aan het model. Sla de herkende tekst op naast het originele bestand, zodat je later kunt terugzoeken waar een conclusie vandaan kwam.
3. Extraheer de reviewpunten met structured output
Hier zit de winst. In plaats van een model te vragen "vat dit contract samen" (en vrije tekst terug te krijgen die je weer met de hand moet uitpluizen), dwing je het in een vast schema. OpenAI's structured outputs garanderen dat het model JSON teruggeeft dat exact jouw JSON-schema volgt, inclusief verplichte velden. Bij Claude doe je hetzelfde via output_config.format of een tool met strict: true. Je definieert dus eenmalig welke velden je wilt, en krijgt voor elk contract dezelfde nette structuur terug.
Een bruikbaar startschema voor de meeste commerciele contracten:
- Partijen: wie sluit het contract met wie.
- Ingangsdatum en einddatum.
- Opzegtermijn en verlengingsclausule (stilzwijgend of niet).
- Contractwaarde of prijsafspraak.
- Aansprakelijkheid en eventuele beperkingen.
- Toepasselijk recht en bevoegde rechtbank.
- Verwerking van persoonsgegevens en, zo ja, waar die plaatsvindt.
- Bijzondere risico's als vrije-tekstveld, met een verwijzing naar de artikelnummers.
Laat het model bij elk veld de bronpassage of het artikelnummer meeleveren. Zo kun je elke geextraheerde datum of bedrag terugleiden naar de tekst, in plaats van het model op zijn woord te geloven.
4. Laat risico's en een samenvatting genereren
Met de gestructureerde velden binnen kun je een tweede, lichtere stap toevoegen: een korte samenvatting in gewone taal en een lijstje aandachtspunten. Denk aan een ongebruikelijk lange opzegtermijn, een eenzijdige prijsverhogingsclausule, of een aansprakelijkheid die onbeperkt is. Houd dit bewust beschrijvend: het model signaleert, jij beoordeelt. Een goede prompt vraagt expliciet om "alleen wat in de tekst staat" en om "geen juridisch advies".
5. Bouw versiebeheer en een goedkeuringsflow
De geextraheerde velden schrijf je weg naar een register. In Notion maak je een database waarin elk contract een rij is, met de velden als kolommen, een statusveld (concept, in review, akkoord) en een koppeling naar het bronbestand. Wie liever in een spreadsheet werkt, gebruikt Google Sheets als eenvoudig register met het PDF in Drive ernaast. Belangrijk is de goedkeuringsstap: een nieuw of gewijzigd contract staat op "in review" tot een verantwoordelijke het op "akkoord" zet. Zet bij elke wijziging een nieuwe versie weg in plaats van het origineel te overschrijven, zodat je altijd kunt terugzien wat er wanneer veranderde.
6. Archiveer met de AVG in het achterhoofd
Een contractarchief zit vol persoonsgegevens: namen, handtekeningen, soms bijzondere categorieen. Drie keuzes maken het verschil. Retentie: leg vast hoe lang je een contract bewaart en wanneer je het opschoont, in plaats van alles eindeloos te bewaren. Toegang: niet iedereen hoeft elk contract te zien, beperk de rechten op je register. Verwerking: kies een AI-leverancier die binnen de EU verwerkt en sluit een verwerkersovereenkomst. Het grootste AVG-risico zit zelden in het model en bijna altijd in je data: wat je waarheen stuurt, en wie erbij kan.
Valkuilen
- Hallucinaties op datums en bedragen. Een model kan een plausibele maar verkeerde einddatum verzinnen. Laat altijd de bronpassage meeleveren en steekproefsgewijs controleren. Op precies deze velden mag je niet blind vertrouwen.
- Geen mens in de lus. AI mag een opzegtermijn signaleren, maar de beslissing om wel of niet op te zeggen blijft mensenwerk. Bouw de goedkeuringsstap er niet uit "om sneller te gaan".
- Persoonsgegevens naar een model buiten de EU. Een gratis tool die je niet kunt herleiden naar een verwerkersovereenkomst en EU-verwerking is geen optie voor contractdata.
- Schemadrift. Als je het schema steeds aanpast, krijg je inconsistente data. Kies een set velden, houd die stabiel, en versieer wijzigingen bewust.
- Een grote map is geen register. Het doel is doorzoekbaarheid: kunnen filteren op "alle contracten die binnen 60 dagen aflopen" is het hele punt. Een PDF-berg kan dat niet.
- Stilzwijgende verlenging blijft jouw verantwoordelijkheid. Zet automatische herinneringen op de einddatum minus de opzegtermijn. Dat is vaak de eerste plek waar deze werkstroom zichzelf terugverdient.
Kant-en-klaar vs. maatwerk
Grofweg drie routes, met heel verschillende kosten en controle:
| Aanpak | Wat het is | Sterk in | Zwak in |
|---|---|---|---|
| No-code register | Notion of Google Sheets, handmatig of half-geautomatiseerd gevuld | Snel starten, lage drempel, volledige controle | Extractie blijft handwerk zonder AI-stap |
| Eigen AI-werkstroom | Model met structured output plus je eigen opslag | Past exact op jouw velden, je eigen data, leverancier-onafhankelijk | Je bouwt en onderhoudt het zelf |
| CLM-software | Kant-en-klaar contractplatform (Juro, Ironclad, LegalFly) | Compleet pakket, opstellen tot tekenen tot beheer | Prijzig en vaak op maat geoffreerd, minder grip op je data |
De gespecialiseerde contractplatforms zijn volwassen, maar zelden goedkoop: Juro publiceert geen vaste prijzen en offreert op basis van volume en integraties, en dat patroon zie je bij de meeste enterprise-CLM's. Voor een organisatie met een paar honderd contracten en standaard velden is een eigen werkstroom vaak goedkoper en flexibeler, zeker omdat de AI-kosten per contract laag zijn. De extractiestap kost doorgaans een paar duizend tokens; bij een goedkoop model praat je over centen per contract.
Voor pure extractie is een snel, goedkoop model zoals Claude Haiku 4.5, dat 1 dollar per miljoen invoertokens kost, ruim voldoende; een zwaarder model reserveer je voor de lastige risico-analyse. De keuze welk model je gebruikt, kun je het beste openhouden, zodat je niet vastzit aan een leverancier. Dezelfde logica als bij het bouwen van een leverancier-onafhankelijke AI-stack: de werkstroom is van jou, het model is inwisselbaar.
De afweging is uiteindelijk niet "AI of geen AI", maar hoeveel grip je wilt op je eigen contractdata. Een eigen werkstroom geeft je een doorzoekbaar register, voorspelbare kosten en data die binnen je eigen muren blijft. Een platform geeft je gemak, tegen een prijs en met je data op iemand anders zijn servers. Wie zijn SaaS-stapel kritisch tegen het licht houdt op verborgen kosten, weet dat een extra abonnement zelden de goedkoopste oplossing is wanneer de bouwstenen, een model en een database, al binnen handbereik liggen.
De grootste winst zit niet in de techniek, maar in het ritueel dat verdwijnt: nooit meer een map openslaan met de vraag wanneer dit ook alweer afliep. Een contract dat je kunt doorzoeken, is een contract dat voor je werkt in plaats van tegen je. En dat begint niet met het slimste model, maar met de saaie discipline van alles op één plek zetten en de juiste velden eruit halen.
