Your Tech Club
SUCCESVERHALEN

Van cao naar ingevulde SUGB, met de bron bij elk antwoord

Voor een organisatie in de uitzendbranche bouwden we een AI-assistent die de SUGB voorinvult uit cao en bedrijfsregelingen, met bij elk antwoord de bron.

AI-assistent voor het SUGB-formulier

Deliverables

  • Klikbaar prototype
  • UX/UI-design
  • Webapplicatie-ontwikkeling
  • AI-implementatie
  • Documentverwerking met tekstherkenning
  • Pdf-export en archief
  • DocuSign-koppeling

Tech stack

  • React en TypeScript
  • Python en FastAPI
  • Azure OpenAI
  • Azure AI Document Intelligence
  • Unstructured en Tesseract
  • FAISS
  • Azure Blob Storage
  • DocuSign

Sinds 1 januari 2026 hebben uitzendkrachten onder hun nieuwe cao recht op een gelijkwaardige beloning. Die is in waarde gelijk aan wat een vergelijkbare werknemer krijgt bij het bedrijf waar ze werken. Dan moet het uitzendbureau wel weten wat dat bedrijf biedt. Daarvoor is er de SUGB, de Standaard uitvraag Gelijkwaardige Beloning van de ABU en de NBBU. Onze klant werkt in de uitzendbranche en vult die uitvraag in voor de bedrijven waar uitzendkrachten aan de slag gaan. Your Tech Club bouwde een interne applicatie voor de medewerkers die dat werk doen: een assistent die het formulier voorinvult uit de cao en de bedrijfsregelingen, met bij elk antwoord de plek waar het staat.

Wat moest er beter?

De SUGB is een lange vragenlijst. Hij vraagt naar loon en inschaling, toeslagen, reiskosten, bijzondere uitkeringen, verlof, pensioen, het individueel keuzebudget en een reeks aanvullende regelingen. De antwoorden staan in de cao en in de eigen regelingen van het bedrijf, zoals een personeelshandboek. Wie het formulier invult, zoekt ze stuk voor stuk op. Voor elk bedrijf opnieuw.

Dat zoekwerk luistert nauw. Een gemiste toeslag of een verkeerd percentage werkt door in wat een uitzendkracht betaald krijgt. En de cao is niet altijd het hele verhaal: een bedrijf kan eigen regelingen hebben die ervan afwijken.

Geen bron, geen antwoord

Een taalmodel vult zo'n formulier zonder aarzelen in. De vraag is of het klopt. Een antwoord dat plausibel klinkt maar nergens staat, is hier erger dan een leeg veld. In de eerste proefversies zagen we precies dat gebeuren: het model gaf soms waarden die niet in de documenten stonden.

Daarom draaiden we het om. De assistent beantwoordt een vraag alleen als hij het antwoord in de aangeleverde documenten vindt. Hij laat dan het letterlijke fragment zien, met de bestandsnaam en de pagina. Vindt hij niets, dan blijft het veld leeg, met de melding dat de documenten er geen informatie over geven.

Onze aanpak

We begonnen met een klikbaar prototype van de wizard, gevuld met voorbeeldgegevens. Zo lag de route door het formulier vast voordat er AI aan te pas kwam. Na de proefversies van de AI-analyse volgde de definitieve opzet: een aparte documentverwerking in Python en een webapplicatie voor de medewerker.

Een zoekinstructie per vraag

Veel werk zat in de vragen zelf. Voor elke vraag uit de uitvraag ligt vast bij welk onderdeel hij hoort en met welke zoekwoorden de assistent zoekt. Ook het soort antwoord en de keuzeopties liggen vast, en bij welke opties een waarde hoort, zoals een bedrag of een percentage.

Elke vraag kreeg ook een korte werkinstructie: waar zoek je eerst, wat schrijf je op en wat doe je als je niets vindt. Neem de vraag naar de standaard arbeidsduur per week. De instructie zegt: zoek in de cao naar de normale arbeidsduur. Staat daar 40, 38 of 36 uur, kies dan die optie. Staat er een ander aantal, kies dan 'Anders, namelijk' en neem het getal letterlijk over. Staat er niets, geef dan geen antwoord.

De instructies houden ook rekening met woorden die per document verschillen. Vakantietoeslag heet in de ene cao vakantiebijslag en in de andere vakantiegeld. De assistent leest de cao als basis en kijkt daarna naar bedrijfsregelingen die daarop aanvullen of ervan afwijken.

Eén bedrijf per sessie

Bij het uploaden geeft de medewerker op voor welk bedrijf het formulier is. Elke sessie krijgt een eigen zoekindex, zodat documenten van verschillende bedrijven gescheiden blijven. Passages waarin de naam van het bedrijf staat, krijgen voorrang. Bedrijfsspecifieke bepalingen gebruikt de assistent alleen als ze voor dat bedrijf gelden.

Hoe een sessie verloopt

Een formulier invullen gaat in vijf stappen:

  • De medewerker vult de bedrijfsnaam in, kiest hoe hij wil werken en uploadt de cao en de bedrijfsdocumenten.
  • De applicatie leest de documenten en maakt ze doorzoekbaar. Het scherm laat zien hoe ver dat is. Zolang het loopt, staat de navigatie stil.
  • De assistent vult de stappen van het formulier voor, met bij elk antwoord de bron.
  • De medewerker loopt de stappen na, past aan wat niet klopt en vult aan wat leeg is gebleven.
  • In de controlestap maakt de applicatie een pdf en bewaart die in het archief.

Documenten lezen

De applicatie werkt met pdf's. Dat heeft twee voordelen. Elke bron wijst naar een vaste pagina, en digitale en gescande documenten gaan door dezelfde verwerking. Een bestand dat geen geldige pdf is, neemt de verwerking niet mee.

Uit elke pdf komen de tekst en de tabellen, zoals loontabellen. Gescande pagina's gaan door tekstherkenning in het Nederlands en het Engels.

Voorbeeld met fictieve gegevens: de eerste stap van de assistent, met de keuze tussen autopilot en stap voor stap en twee geüploade pdf's

Als een document niet te lezen is

Elk document wordt apart verwerkt. Levert de eerste leesmethode niets bruikbaars op, dan probeert de applicatie een tweede. Lukt ook dat niet, dan wordt de fout voor dat document vastgelegd en gaan de andere documenten gewoon door. Komt er uit geen enkel document tekst, dan stopt de sessie met een duidelijke melding. Per sessie is terug te zien welke stap wanneer is gezet en hoe elk document is gelezen. Lijkt de verwerking vast te lopen, dan zegt het scherm dat ook en kan de medewerker hem opnieuw starten.

Wat de assistent invult

Open vragen en keuzevragen

Per vraag zoekt de assistent de passages die er het meest over zeggen. Een taalmodel kiest daaruit het antwoord. Bij een open vraag is dat een kort antwoord. Bij een vraag met één antwoord kiest het precies één optie die door de tekst wordt gesteund. Bij vragen met meerdere antwoorden legt de assistent elke optie naast de gevonden passages en vinkt alleen aan wat daarin terugkomt.

Een waarde, geen ja

Veel opties vragen om een waarde: 'Anders, namelijk', een percentage van het periodeloon, een bedrag per kilometer. Dan neemt de assistent die waarde letterlijk over uit de tekst. Geeft het model toch 'ja' of 'nee' als waarde, dan wijst de assistent dat af. Hij zoekt dan in het fragment naar een bedrag, een percentage of een aantal dagen of uren. Vindt hij dat niet, dan blijft de waarde leeg.

Het fragment bij het antwoord

Naast elk ingevuld veld staat het fragment waarop het antwoord is gebaseerd, van hooguit 300 tekens. De assistent kiest daarvoor de passage waarin het antwoord echt staat, niet zomaar de bovenste zoektreffer. Eronder staan de bestandsnaam en de pagina, bij meerdere vindplaatsen tot drie. Zo weet de medewerker meteen waar hij moet kijken.

Voorbeeld met fictieve gegevens: een ingevuld veld met het fragment en de bron eronder, en een veld zonder bron dat leeg is gebleven

Autopilot of stap voor stap

In de autopilotstand vult de assistent na het uploaden alle stappen een voor een in. Lukt een stap niet, dan probeert hij het nog eens of slaat hij die stap over met een melding, en gaat hij door met de volgende. De medewerker kan het invullen ook stoppen. In de handmatige stand gaat de medewerker zelf stap voor stap door het formulier en kiest hij per stap of de assistent meedoet.

De controlestap

De laatste stap zet het hele formulier op een rij. Per onderdeel staat er 'Voltooid' of 'Aandacht vereist', met de belangrijkste waarden en eventuele fouten en waarschuwingen. Met de knop Bewerk springt de medewerker terug naar dat onderdeel. Indienen kan pas als alle onderdelen in orde zijn. Hier maakt de medewerker ook de pdf, die met de antwoorden wordt bewaard.

Archief en verder bewerken

Het archief toont per formulier de bedrijfsnaam, de datum en de status. Van daaruit download je de pdf of de antwoorden als databestand. Met Bewerken open je het formulier met de opgeslagen antwoorden. In die stand vult de assistent niets opnieuw in, dus wat de medewerker heeft aangepast blijft staan. Een formulier kan ook via DocuSign ter ondertekening worden verstuurd. De pdf heeft daarvoor vaste plekken voor naam, bedrijf, handtekening en datum.

Voorbeeld met fictieve gegevens: het archief met per bedrijf de pdf, de antwoorden en de knop om verder te bewerken

Wie doet wat

De assistent leest, zoekt en doet een voorstel met bron. De medewerker kiest het bedrijf en de documenten, loopt elke stap na, vult aan wat ontbreekt en beslist wat er in het formulier komt.

Wat verandert er?

De medewerker begint niet meer bij een leeg formulier en een stapel pdf's, maar bij een voorstel dat hij kan nalopen. Elk antwoord wijst naar de plek in de cao of regeling waar het vandaan komt. Waar de documenten niets zeggen, staat geen gok maar een leeg veld. Het oordeel blijft bij de mensen die ervoor verantwoordelijk zijn.

Vragen of kennismaken

Neem direct contact met ons op. We komen zo snel mogelijk bij je terug

Joey van VlietYassine SeghrouchniHet team op kantoorJe bericht komt bij ons team in Amsterdam binnen.

We nemen zo snel mogelijk contact met je op.

Veelgestelde vragen

Wat heeft Your Tech Club voor deze klant gebouwd?

Een interne webapplicatie met een AI-assistent die de SUGB voorinvult uit de cao en de bedrijfsregelingen. Wij maakten het prototype, het ontwerp en de webapplicatie, bouwden de documentverwerking, schreven per vraag een zoekinstructie en leverden de pdf-export, het archief en de koppeling met DocuSign.

Wat is de SUGB?

De Standaard uitvraag Gelijkwaardige Beloning is een vragenlijst van de ABU en de NBBU. Daarmee worden bij het bedrijf waar een uitzendkracht werkt de arbeidsvoorwaarden opgevraagd die het uitzendbureau nodig heeft om gelijkwaardig te belonen, van loon en toeslagen tot pensioen en reiskosten. Het bedrijf vult de uitvraag in en deelt die met het uitzendbureau.

Hoe voorkom je dat de AI antwoorden verzint?

Door alleen antwoorden toe te laten die in de aangeleverde documenten staan. Bij elk antwoord hoort een letterlijk fragment met het bestand en de pagina. Zonder bron blijft het veld leeg. Daarna loopt de medewerker de antwoorden na in de controlestap, voordat de pdf wordt gemaakt.

Welke documenten kan de assistent lezen?

Pdf's van de cao en van bedrijfsregelingen, zoals een personeelshandboek. Ook gescande documenten: die gaan door tekstherkenning in het Nederlands en het Engels. Tabellen worden meegelezen. Andere bestandstypen neemt de verwerking niet mee.

Wat gebeurt er als een document niet te lezen is?

Dan probeert de applicatie een tweede leesmethode. Lukt ook dat niet, dan wordt de fout voor dat document vastgelegd en gaan de andere documenten door. Komt er uit geen enkel document tekst, dan stopt de sessie met een melding.

Werkt de assistent per bedrijf?

Ja. Bij het uploaden geeft de medewerker op voor welk bedrijf het formulier is, en de assistent beantwoordt de vragen voor die onderneming. Elke sessie krijgt een eigen zoekindex, zodat documenten van verschillende bedrijven niet door elkaar lopen.

Kan een ingevuld formulier later nog worden aangepast?

Ja. Vanuit het archief open je het formulier met de opgeslagen antwoorden. De assistent vult dan niets opnieuw in, zodat aanpassingen van de medewerker blijven staan. Daarna maak je een nieuwe pdf.

Op welke techniek draait de assistent?

De webapplicatie is gebouwd in React en TypeScript. De documentverwerking draait op Python met FastAPI. Unstructured en Tesseract halen tekst en tabellen uit de pdf's, met Azure AI Document Intelligence als terugval. FAISS doorzoekt de documenten, een taalmodel in Azure OpenAI kiest het antwoord, en de bestanden staan in Azure Blob Storage.