Ga naar inhoud
Terug naar al ons werk
Methodologie

Hoe Wij een Casinobonus Verifiëren

Van scrape naar publicatie in 11 stappen

De datapijplijn achter BonusWijs.nl. Gebouwd en bijgeschaafd in een maand met adversarial review door zes frontier LLMs. Draait nu dagelijks over 30 KSA-vergunninghouders.

10 min leestijd|LLM-extractieSchemavalidatieAudit TrailFail-Closed

Het Probleem

KSA-vergunde operators publiceren hun bonusvoorwaarden in lange Nederlandse juridische teksten. Match-percentages verstopt in alinea vier. Inzetvereisten die op dezelfde pagina drie verschillende kanten op worden geformuleerd. "Keuzebonussen" waarbij de speler tussen alternatieve armen kiest (100% match tot €250 OF 100 free spins) lijken voor elke extractor die één waarde wil zien op tegenstrijdigheid.

Affiliates en vergelijkingssites hebben twee opties. De marketingtekst van de operator ongewijzigd overnemen: weinig vertrouwen, hoog volume, wat het grootste deel van de markt doet. Of de data handmatig bijhouden: traag, foutgevoelig, schaalt niet voorbij een handvol operators.

Beide falen onder de standaard die de KSA in 2024 aanscherpte. Toon iets dat niet overeenkomt met de live brontpagina en je riskeert niet alleen je reputatie. Je nodigt een brief van de toezichthouder uit.

We hadden een derde optie nodig. Iets dat de pagina kan lezen als een mens, de structuur kan vastleggen als een database, en weigert iets te publiceren waarvan het niet zeker is.

De Vorm van het Systeem

Stappen 01-04 reduceren ruis. Stappen 05-07 bepalen wat veilig is. Stappen 08-11 publiceren, monitoren en herstellen. De flow loopt één kant op, met gedocumenteerde overdrachten.

Reduceren

01 - 04

Scrapen, extraheren, vergelijken, onderdrukken.

Beslissen

05 - 07

Auto-update wat veilig is, escaleer wat niet veilig is, valideer alles voor publicatie.

Publiceren & Bewaken

08 - 11

Schone runs uitleveren, fail-closed bij staleness, nieuwe armen wachtrijen, beschermen tegen hallucinatie.

De 11 Stappen

Elke stap lost één probleem op en geeft door aan de volgende. Samen brengen ze een bonus van operatorpagina naar gepubliceerde data met een gedocumenteerd audit trail bij elke stap.

01

Dagelijkse scrape

Elke ochtend om 06:00 wordt de officiële bonusvoorwaardenpagina van elke KSA-vergunninghouder opgehaald. Playwright met stealth-flags, Nederlandse geo via NordVPN, retries bij tijdelijke fouten. 30 operators, volledig onbemand.

02

LLM-extractie

Claude leest de gescrapte HTML en geeft gestructureerde velden terug: match-percentage, max bonus, free spins, inzetvereiste, inzettarget, tijdslimieten, bonustype. Het model ziet de pagina; het schema ziet alleen getypte waardes.

03

Vergelijking met keuze-arm-bewustzijn

Geëxtraheerde waardes worden vergeleken met de opgeslagen data, maar de comparator weet van keuzebonussen. Als een speler tussen alternatieve armen kan kiezen, is elke arm structureel vastgelegd. Een match op één arm telt als bevestigd.

04

Suppressiefilter

Bekende LLM-extractieartefacten worden automatisch opgelost: proza-als-null missers, verwarring rond keuze-armen, foutieve "combined"-classificatie op meerarmige aanbiedingen. Negen terugkerende patronen worden automatisch gefilterd zodat ze nooit een mens bereiken.

05

Auto-update voor veilige velden

Velden waar de extractor met hoge zekerheid overeenstemt en de impact niet bonus-kritisch is (tijdslimieten, formatting) worden automatisch toegepast. Bonus-kritische velden (match %, max bonus, free spins, inzet, type) worden nooit automatisch toegepast. Niet één keer.

06

Mens in de loop bij echte signalen

Alles wat de suppressie overleeft en niet auto-applicable is, gaat naar handmatige review tegen de live brontpagina. Elke beslissing wordt vastgelegd in publieke verificatienotities: wat veranderde, waarom, met een verwijzing naar de pagina van de operator.

07

4-laagse validatiepoort

Voor er iets publiceert: zod-getypte schema-guards met harde plafonds, een heuristische validator die afwijkingen vangt (inzet op een no-deposit bonus = waarschuwing), een verification-notes pre-commit hook die gedocumenteerd bewijs eist voor bonus-kritische wijzigingen, en regressietests die elk eerder incident terugvangen.

08

Auto-publish, auto-deploy

Schone runs committen, npm-versie ophogen, publiceren naar GitHub Packages, downstream consumer (BonusWijs.nl) bumpen en een Vercel-deploy triggeren. De end-to-end loop draait zonder mensenhanden op een groene run.

09

Veiligheidskleppen

Publicatie wordt geblokkeerd als een getoonde bonus meer dan 30 dagen onbevestigd is. Een per-arm staleness watchdog op 60, 90, 180 dagen. Fail-closed semantiek: liever een verouderde datum in de footer dan een verkeerde voorwaarde op de pagina.

10

Kandidaatwachtrij voor nieuwe armen

Als een scraper drie runs op rij een waarde teruggeeft die op geen enkele bekende arm matcht, wordt die voorgelegd voor handmatige review. De eerste promotie per casino vereist expliciete goedkeuring; vervolgmatches gaan automatisch. Nieuwe aanbiedingen verdwijnen niet, maar glippen er ook niet doorheen.

11

Hallucinatieguard

Op het promotiemoment leest een tweede LLM-extractie met een structureel andere prompt de pagina opnieuw. Onenigheid tussen de twee passes leidt tot handmatige review. Twee goedkope reads zijn beter dan één duur herstel van een gehallucineerd veld.

Wat Veranderde

De pijplijn vervangt een handmatige reviewqueue die ~9 false positives per dag genereerde. Nadat het suppressiefilter en de keuze-arm-comparator live gingen, daalde het echte signaal naar 0-3 actionable flags per dag.

9 → 0-3

Dagelijkse false positives, voor/na suppressie en keuze-arm-vergelijking

6

Frontier LLMs in 3 rondes adversarial peer review op het schema

30

KSA-vergunninghouders in de dagelijkse run

100%

Bonus-kritische wijzigingen gedocumenteerd in publieke verificatienotities

Adversarial peer review

Het schemaontwerp ging door drie rondes review met zes frontier modellen: DeepSeek V4 Pro, Minimax M1, GPT-5.5 Pro, Kimi K2.6, Claude Sonnet 4.6, Gemini 2.5 Pro. Onenigheid tussen modellen bracht edge cases boven die de oorspronkelijke spec miste. Het uiteindelijke schema is de versie waar elke reviewer mee instemde.

Waarom Dit Telt Voor Operators en Affiliates

Drie eigenschappen van de pijplijn vertalen direct naar wat onze klanten belangrijk vinden.

Regulatoire weerbaarheid

Elke bonus-kritische wijziging is gedocumenteerd met een verwijzing naar de live operatorpagina. Als een toezichthouder vraagt waarom de getoonde waarde is wat hij is, staat het antwoord in version control. Niet in iemands inbox.

Vertrouwen als productlaag

Gebruikers kunnen de verificatienotities lezen. Het audit trail is de marketing. Vergelijkingssites die ongecontroleerde operatortekst publiceren kunnen dat niet zeggen, en die kloof komt steeds vaker terug in search en conversie.

Schalen voorbij handmatige review

De 31e operator toevoegen kost een config-entry, geen extra mens. De structurele eliminatie van ruis (keuze-arm-vergelijking, suppressiefilter) is wat dat economisch reëel maakt.

Fail-closed by default

Als de pijplijn twijfelt, publiceert hij niet. Hij blokkeert de verouderde waarde en maakt het gat zichtbaar. De asymmetrie (liever een ontbrekende datum dan een verkeerd getal) zit in de gate-logica.

De Conclusie

Bonusdata is niet moeilijk omdat de waarden complex zijn. Het is moeilijk omdat de bronpagina's rommelig zijn, de structuur impliciet is, en één verkeerd getal een regulatoir voorval is. De pijplijn probeert niet slimmer te zijn dan de pagina. Hij probeert gedisciplineerder te zijn dan een mens die 30 operators handmatig nakijkt.

Dezelfde aanpak generaliseert. Overal waar je een gereguleerde content-laag hebt, gestructureerde vergelijkingsdata, en een muur van juridische brontekst ertussen: werkt deze methodologie.

Als je een operatormerk of een affiliate-portfolio runt in een gereguleerde markt en je data heeft deze problemen, dan moeten we praten.

Zie het live

BonusWijs.nl draait volledig op deze pijplijn. De verificatienotities zijn publiek.

Bezoek BonusWijs.nl