# Een AI-portfolio opbouwen die opvalt

[Naar de inhoud](#lm-inhoud)Netwerk/NL[EN](/en/een-ai-portfolio-opbouwen-die-opvalt)[Hubhub.llmnet.nlModellen vergelijken op taak, taal, kosten en licentie.](https://hub.llmnet.nl/)[Communitycommunity.llmnet.nlPrompttechnieken, patronen en systeemprompts.](https://community.llmnet.nl/)[APIapi.llmnet.nlLLM's robuust in software: rate limits, routing, structured output.](https://api.llmnet.nl/)[Consultancyconsultancy.llmnet.nlAI invoeren in een organisatie, van pilot tot productie.](https://consultancy.llmnet.nl/)[Nieuwsnieuws.llmnet.nlOntwikkelingen in AI, geduid voor Nederland.](https://nieuws.llmnet.nl/)[Benchmarkbenchmark.llmnet.nlZelf meten wat AI-kwaliteit is, voor jouw taken.](https://benchmark.llmnet.nl/)[Vacaturesvacatures.llmnet.nlAI-rollen, salarissen en carrièrepaden in Nederland.](https://vacatures.llmnet.nl/)[Lerenleren.llmnet.nlAI-concepten in gewoon Nederlands, van beginner tot bouwer.](https://leren.llmnet.nl/)[Gidsgids.llmnet.nlAI privé draaien op eigen Mac, pc, NAS of thuisserver.](https://gids.llmnet.nl/)[Directorydirectory.llmnet.nlHet AI-ecosysteem in kaart: tools, modellen, bedrijven.](https://directory.llmnet.nl/)[Radarradar.llmnet.nlSignalen uit X, onderzoek en communities voor indie developers.](https://radar.llmnet.nl/)[Appsapps.llmnet.nlReviews van AI-apps en open-source repo's, met tips voor wie zelf bouwt.](https://apps.llmnet.nl/)[llmnet.nl — hoofdsite](https://llmnet.nl/)[](https://x.com/intent/post?url=https%3A%2F%2Fvacatures.llmnet.nl%2Feen-ai-portfolio-opbouwen-die-opvalt&text=Een%20AI-portfolio%20opbouwen%20die%20opvalt)[](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fvacatures.llmnet.nl%2Feen-ai-portfolio-opbouwen-die-opvalt)[](https://www.reddit.com/submit?url=https%3A%2F%2Fvacatures.llmnet.nl%2Feen-ai-portfolio-opbouwen-die-opvalt&title=Een%20AI-portfolio%20opbouwen%20die%20opvalt)[](#)[](https://x.com/intent/post?url=https%3A%2F%2Fvacatures.llmnet.nl%2Feen-ai-portfolio-opbouwen-die-opvalt&text=Een%20AI-portfolio%20opbouwen%20die%20opvalt)[](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fvacatures.llmnet.nl%2Feen-ai-portfolio-opbouwen-die-opvalt)[](https://www.reddit.com/submit?url=https%3A%2F%2Fvacatures.llmnet.nl%2Feen-ai-portfolio-opbouwen-die-opvalt&title=Een%20AI-portfolio%20opbouwen%20die%20opvalt)[](#)

 
# Een AI-portfolio opbouwen die opvalt

 Door Ivo Donker — samengesteld met AI-ondersteuning (Claude & Gemini)

 De tijd dat een verzameling losse Jupyter Notebooks met standaard datasets volstond om een baan in kunstmatige intelligentie te bemachtigen, ligt definitief achter ons. Technische recruiters, lead data scientists en engineering managers in Nederland zien wekelijks tientallen sollicitanten voorbijkomen met nagenoeg identieke projecten: een sentimentanalyse op IMDb-recensies, een generieke chatbot op basis van een standaard tutorial, of een simpele wrapper rond een commerciële API. Dergelijke repositories bewijzen hooguit dat iemand een handleiding kan overtypen, maar tonen geen enkel inzicht in robuuste software-architectuur, kwantitatieve evaluatie, foutafhandeling of operationele kosten.

 Dit artikel is geschreven voor kandidaten, omscholers en softwareontwikkelaars die een portfolio willen samenstellen dat direct overtuigt door inhoudelijke diepgang en realiteitszin. Een overtuigend portfolio laat zien dat een ontwikkelaar begrijpt hoe modellen zich gedragen in een echte productieomgeving met onvoorspelbare invoer, strikte budgetten en imperfecte data. Wie wil begrijpen welke vaardigheden en specialisaties momenteel de hoogste prioriteit hebben binnen het Nederlandse bedrijfsleven, kan het overzicht over [de AI-arbeidsmarkt in Nederland](https://vacatures.llmnet.nl/ai-arbeidsmarkt-nl) raadplegen om projecten strategisch af te stemmen op de actuele marktvraag.

 
## 1. De verschuiving van demonstratie naar productierijpheid

 Een sterk portfolio draait niet om het volume aan repositories, maar om de technische volwassenheid van de getoonde systemen. Waar beginnende kandidaten vaak geneigd zijn om zes tot tien oppervlakkige demonstraties op GitHub te plaatsen, maakt een selectie van twee tot drie diepgaand uitgewerkte architecturen aanzienlijk meer indruk. Technische beoordelaars kijken primair naar software-engineering discipline: gestructureerde codebases, geautomatiseerde tests, type hinting, containerisatie, reproduceerbare builds en continue integratie.

 In moderne AI-engineering volstaat het niet om aan te tonen dat een prompt toevallig het gewenste resultaat oplevert bij vijf handmatig geteste voorbeelden. Een kandidaat moet expliciet aantonen hoe het systeem omgaat met onverwachte output, rate limits, veranderende latency en netwerkfouten. Zonder defensieve validatielagen en robuuste foutafhandeling toont een project enkel een fragiel prototype, geen betrouwbare applicatie. Wie de theoretische achtergrond van zijn profiel wil versterken naast praktische implementaties, kan het vergelijkend overzicht van [relevante AI-certificeringen en opleidingen](https://vacatures.llmnet.nl/ai-certificeringen) bestuderen om te zien welke certificaten daadwerkelijk waarde toevoegen op een Nederlands cv.

 Het fundamentele onderscheid tussen een hobbyproject en een productierijpe applicatie zit in de details van de uitvoering. In onderstaande tabel staan de doorslaggevende technische kenmerken tegenover elkaar gezet die bepalen of een portfolio-item serieus wordt genomen door een lead engineer tijdens een technische screening.

 
 
 
 
 Architectuurcomponent | 
 Standaard portfolio (vermijd dit) | 
 Onderscheidend portfolio (bouw dit) | 
 

 
 
 
 Data-inname & Validatie | 
 Statische CSV of kant-en-klare download van HuggingFace | 
 Rauwe data-ingestie met schema-validatie, ontdubbeling en tekstfiltering | 
 

 
 Modelinteractie | 
 Ongeteste tekstprompts hardgecodeerd in applicatielogica | 
 Gestructureerde schema's (Pydantic), deterministische parsers en fallback-modellen | 
 

 
 Kwaliteitsevaluatie | 
 "De antwoorden zien er goed uit na enkele steekproeven" | 
 Kwantitatieve benchmarks, golden datasets, retrieval metrics en rubric-scoring | 
 

 
 Infrastructuur & CI/CD | 
 Lokaal script of kale Streamlit-app zonder persistentie | 
 Dockerized FastAPI service, automatische unit tests, linter checks en tracing | 
 

 
 Kostenbeheer & Snelheid | 
 Geen inzicht in tokenverbruik of rekenkosten | 
 Tokenbudgetten per sessie, semantische caching en p95-latency monitoring | 
 

 
 
 

 
## 2. Projectkeuze: los echte, domeinspecifieke problemen op

 De keuze van het onderwerp bepaalt grotendeels of een beoordelaar de tijd neemt om door de code heen te klikken. Veelvoorkomende projecten zoals een standaard "Chat met je eigen PDF" via een generieke vector database worden direct herkend als het resultaat van een middag een tutorial volgen. Om op te vallen, moet een project een tastbaar, complex probleem aanpakken waarin data rommelig is en randvoorwaarden een rol spelen. Denk aan het extraheren en structureren van semi-gestructureerde financiële rapportages, een geautomatiseerde triage-engine voor technische supporttickets met meertalige ondersteuning, of een deterministisch evaluatieraamwerk voor kleine open-source taalmodellen.

 Wie zoekt naar realistische scenario's buiten de gebaande paden, kan de uitgebreide gids met [portfolioprojecten die indruk maken bij werkgevers](https://vacatures.llmnet.nl/portfolioprojecten) raadplegen om direct concrete use-cases en inspiratie op te doen. Het bouwen van projecten die aansluiten bij Nederlandse regelgeving of lokale open datasets — zoals data van het CBS, rechtspraak.nl, het Kadaster of openbare raadsinformatie — toont direct affiniteit met de operationele context waarin veel Nederlandse bedrijven en overheidsinstellingen werken.

 Zorg er daarnaast voor dat de projecten in het portfolio elkaar inhoudelijk aanvullen. Eén project kan focussen op een geavanceerde Retrieval-Augmented Generation (RAG) pijplijn met hybride zoekalgoritmes, een tweede op een autonoom agent-systeem met externe API-koppelingen, en een derde op het kwantiseren en lokaal draaien van open-source modellen met latency-benchmarks. Deze variatie demonstreert een brede technische beheersing van het vakgebied zonder in herhaling te vervallen.

 
## 3. Systematische evaluatiemethoden en metrieken

 Het grootste inhoudelijke gebrek in vrijwel elk junior portfolio is het ontbreken van een kwantitatieve evaluatiemethode. Wanneer een kandidaat stelt dat een zoeksysteem "zeer nauwkeurige antwoorden levert", wil een interviewer precies weten hoe die nauwkeurigheid is gemeten. Zonder een reproduceerbare evaluatieset is een dergelijke claim subjectief en waardeloos. Een volwassen portfolio bevat daarom een expliciet evaluatieframework waarin metrics zoals context precision, context recall, faithfulness en answer relevancy structureel worden gemeten op een representatieve testset.

 Om een evaluatieraamwerk professioneel in te richten, combineert men doorgaans deterministische codecontroles met model-gebaseerde evaluaties. Deterministische controles toetsen of verplichte sleuteltermen aanwezig zijn en of de output voldoet aan strikte JSON-schema's. Model-gebaseerde evaluaties (LLM-as-a-judge) beoordelen of het gegenereerde antwoord volledig ondersteund wordt door de opgehaalde documentcontext, zonder dat er verzonnen feiten worden geïntroduceerd.

 Hieronder staat een voorbeeld van een evaluatiescript met Pydantic en geautomatiseerde scoring dat direct aantoont dat kwaliteitsbewaking integraal onderdeel is van de software-architectuur:

import json
from typing import List
from pydantic import BaseModel, Field

class EvaluatieRapport(BaseModel):
 test_id: str
 vraag: str
 verwachte_feiten: List[str]
 gegenereerd_antwoord: str
 feitelijke_dekking_score: float = Field(ge=0.0, le=1.0)
 hallucinatie_gedetecteerd: bool
 toelichting: str

def evalueer_antwoord(
 test_id: str,
 vraag: str,
 referentie_feiten: List[str],
 output: str
) -> EvaluatieRapport:
 # Bereken overlap van verplichte feiten en signaleer afwijkingen
 gevonden = sum(1 for feit in referentie_feiten if feit.lower() in output.lower())
 score = gevonden / len(referentie_feiten) if referentie_feiten else 0.0
 is_hallucinatie = score < 0.8
 
 return EvaluatieRapport(
 test_id=test_id,
 vraag=vraag,
 verwachte_feiten=referentie_feiten,
 gegenereerd_antwoord=output,
 feitelijke_dekking_score=round(score, 2),
 hallucinatie_gedetecteerd=is_hallucinatie,
 toelichting="Score berekend op basis van deterministische token-matching."
 )

if __name__ == "__main__":
 rapport = evalueer_antwoord(
 test_id="eval-rag-nl-042",
 vraag="Wat is de wettelijke bewaartermijn van sollicitatiegegevens onder de AVG?",
 referentie_feiten=["maximaal 4 weken", "toestemming maximaal 1 jaar"],
 output="Sollicitatiegegevens mogen maximaal 4 weken bewaard worden, of maximaal 1 jaar met toestemming."
 )
 print(json.dumps(rapport.model_dump(), indent=2))

 Door dergelijke evaluatiescripts op te nemen in een CI/CD-pipeline toont een kandidaat aan dat elke aanpassing in prompts, chunking-strategieën of embedding-modellen automatisch wordt getoetst op regressie. Dit niveau van automatisering en meetbaarheid onderscheidt professionele ontwikkelaars direct van hobbyisten.

 
## 4. Geavanceerde RAG-architectuur: voorbij de basisvectordocumenten

 Een eenvoudige RAG-pijplijn die een tekst opsplitst in vaste blokken van 500 tokens en een top-3 cosine similarity uitvoert, presteert in productie vaak teleurstellend. Echte documenten bevatten tabellen, voetnoten, kruisverwijzingen en hiërarchische kopstructuren die verloren gaan bij naïeve chunking. Een opvallend portfolio laat zien dat de kandidaat deze structurele uitdagingen begrijpt en geavanceerde technieken toepast om de zoekkwaliteit drastisch te verbeteren.

 In een volwassen implementatie zien we technieken terug zoals semantische chunking, hybride zoeken (waarbij dichte vector-embeddings worden gecombineerd met traditionele BM25-trefwoordherkenning) en het toepassen van een cross-encoder reranking-model. Reranking zorgt ervoor dat de top-20 initieel opgehaalde documenten opnieuw worden gescoord op basis van diepe semantische relevantie ten opzichte van de gebruikersvraag, voordat de selectie naar het taalmodel wordt gestuurd.

 Documenteer in het project expliciet hoe verschillende retrieval-strategieën tegen elkaar zijn afgezet. Toon bijvoorbeeld in een benchmarktabel aan waarom hybride zoeken in jouw specifieke domein tot een substantieel hogere context recall zou kunnen leiden dan pure vector similarity, en welke impact dit kan hebben op de totale end-to-end latency van de applicatie.

 
## 5. Autonome agents, gereedschappen en fouttolerantie

 In moderne AI-ontwikkeling verschuift de focus steeds sterker van statische vraag-antwoordketens naar agents die zelfstandig beslissingen nemen, externe systemen bevragen en meerstaps workflows uitvoeren. Een portfolio dat inspeelt op deze ontwikkeling toont aan dat de ontwikkelaar overweg kan met state management, gereedschapsaanroepen (tool calling), loop-detectie en herstelmechanismen bij foutieve API-antwoorden.

 Het bouwen van een robuuste agent vereist diepgaande kennis van orchestration-patronen en deterministische sturing. Wie zich specifiek wil bekwamen in het ontwerpen van betrouwbare autonome systemen, vindt in de gids over [AI-agent engineer worden in 2026](https://leren.llmnet.nl/ai-agent-engineer-worden-2026) een gedetailleerd overzicht van de noodzakelijke technische competenties en productiepatronen. Een sterk agent-project laat zien hoe een taalmodel betrouwbaar SQL-queries samenstelt, API-endpoints aanroept en zichzelf corrigeert wanneer een schema-fout optreedt.

 Benoem in de documentatie van agent-projecten ook altijd expliciet de veiligheidsgrenzen en risico's: wat gebeurt er als een externe webservice onbereikbaar is, hoe wordt voorkomen dat een agent oneindig in een cyclus blijft redeneren (max iteration limits), en hoe worden destructieve database-acties afgeschermd met expliciete menselijke goedkeuringsstappen (human-in-the-loop).

 
## 6. Kosten, latency en rekenkracht optimaliseren

 Bedrijven die AI-systemen op schaal in productie draaien, sturen dagelijks op twee cruciale operationele factoren: cloudkosten per transactie en eindgebruikersvertraging. Een kandidaat die uitsluitend het zwaarste en duurste model aanroept zonder rekening te houden met tokenverbruik, toont een gebrek aan commercieel en operationeel realiteitszin. Een van de krachtigste manieren om senioriteit te demonstreren, is het documenteren van een doordachte optimalisatieslag.

 Laat in het portfolio zien hoe een specifieke taak initieel werd uitgevoerd via een algemeen groot model, en hoe deze vervolgens is overgezet naar een kleiner gespecialiseerd model, gecombineerd met semantische caching via Redis en gerichte prompt-compressie. Onderbouw de resultaten met concrete cijfers over tokenreductie, kostenbesparing en latency-verbetering.

 
 
 
 
 Configuratie | 
 P50 Latency | 
 P95 Latency | 
 Geschatte kosten per 1.000 requests | 
 Kwaliteitsscore (0-100) | 
 

 
 
 
 Baseline (Fictief voorbeeld ter illustratie van eigen meetresultaten: Groot extern LLM, geen cache) | 
 1.450 ms | 
 3.200 ms | 
 € 18,50 | 
 94 | 
 

 
 Met semantische cache (35% hitrate) | 
 980 ms | 
 3.100 ms | 
 € 12,02 | 
 94 | 
 

 
 Compact model + Hybride RAG + Reranking | 
 420 ms | 
 890 ms | 
 € 2,15 | 
 91 | 
 

 
 Lokaal gekwantiseerd open-source model (8-bit) | 
 280 ms | 
 510 ms | 
 € 0,45 (vaste compute) | 
 86 | 
 

 
 
 

 Het kunnen presenteren van een dergelijke trade-off analyse bewijst dat een engineer beslissingen neemt op basis van meetbare data en rekening houdt met de financiële en infrastructurele kaders van een organisatie.

 
## 7. De GitHub README als technisch visitekaartje

 In de praktijk heeft een lead engineer of hiring manager zelden de tijd om honderden regels code handmatig door te spitten tijdens een eerste selectieronde. De README.md van een repository fungeert als het primaire technische visitekaartje. Een professionele documentatie is gestructureerd, to-the-point en maakt direct inzichtelijk welke architectuurkeuzes zijn gemaakt en waarom.

 Een overtuigende repository bevat minimaal de volgende gestructureerde secties:

 
 
- Probleemstelling & Domeincontext: Een heldere toelichting op het concrete zakelijke of technische knelpunt dat met deze software wordt opgelost.
 
- Architectuuroverzicht: Een visueel diagram dat dataflows, microservices, vector databases, cache-lagen en externe API-grenzen toont.
 
- Onderbouwde Ontwerpkeuzes: Een overzicht van de overwogen technologieën, inclusief argumenten waarom bepaalde frameworks of modellen juist zijn afgewezen.
 
- Evaluatiemetrieken & Benchmarks: Tabellen en grafieken met meetbare scores op het gebied van accuratesse, context retrieval, latency en tokenverbruik.
 
- Lokale Reproductie: Eenduidige instructies om het project via Docker Compose binnen enkele minuten lokaal te starten, inclusief testinstructies.
 
- Bekende Beperkingen & Randgevallen: Een eerlijke analyse van situaties waarin het systeem faalt en welke vervolgstappen nodig zijn voor verdere optimalisatie.
 

 
## 8. De fundering: een brede basisstructuur neerzetten

 Naast specialistische diepgang in individuele projecten moet het portfolio als geheel een samenhangend verhaal vertellen over de vaardigheden van de kandidaat. Het opbouwen van een portfolio is geen eenmalige exercitie, maar een doorlopend proces van itereren, documenteren en opschonen. Wie vanaf de basis wil beginnen met het structureren van projecten, kan de richtlijnen in het artikel over [een sterk AI-portfolio bouwen zonder werkervaring](https://vacatures.llmnet.nl/ai-portfolio-bouwen) doornemen voor een solide vertrekpunt.

 Zorg er daarnaast voor dat projecten daadwerkelijk live getest kunnen worden. Een publiek toegankelijke web-interface of een interactieve API-documentatiepagina (zoals Swagger UI via FastAPI) op een subdomein verlaagt de drempel voor een recruiter aanzienlijk. Koppel dit aan een schone Git-geschiedenis met duidelijke commit-berichten en automatische linting via tools als ruff, mypy en pytest. Dit toont aan dat softwarematige hygiëne een vanzelfsprekendheid is in de dagelijkse workflow.

 
## Conclusie: focus op diepgang en methodologische discipline

 Een opvallend AI-portfolio anno 2026 onderscheidt zich niet door oppervlakkige kwantiteit, maar door methodologische strengheid, meetbare evaluatie en diepgaand software-engineering vakmanschap. Door weg te blijven van standaard tutorials, te investeren in reproduceerbare benchmarks, operationele kosten en latency inzichtelijk te maken en projecten te voorzien van kristalheldere documentatie, transformeert een portfolio van een eenvoudige verzameling scripts naar een onweerlegbaar bewijs van technische senioriteit. Twee zorgvuldig ontworpen, geteste en gedocumenteerde systemen openen aanzienlijk meer deuren dan tien half afgewerkte prototypes.
