ClickUp vervangt mensen met AI-agents. Wat kun jij daarmee?
Negen jaar oud, honderden ontslagen medewerkers, duizenden AI-agents ingezet. ClickUp maakte groot nieuws door openlijk te zeggen dat ze repetitief werk structureel overhevelen naar AI-agents. Geen tijdelijk experiment, maar een strategische herstructurering.
Wat ClickUp doet met enterprise-budget, kun jij al vandaag doen in je eigen SaaS-project. Het principe is hetzelfde: een agent krijgt een taak, voert die zelfstandig uit, en rapporteert terug. Geen handmatig klikken, geen toezicht per stap.
Wat betekent dit voor jouw project?
Als jij een SaaS bouwt waarbij iets repetitief of regelmatig moet gebeuren, zoals nieuwe aanmeldingen verwerken, rapporten genereren, data valideren of e-mails versturen, dan kun je Claude Code inzetten als die agent. Niet als chatbot die je antwoorden geeft, maar als zelfstandige werker die een taak oppakt en afmaakt.
Vanavond kun je dit concreet bouwen: een Claude Code-agent die een map met inkomende bestanden bewaakt, ze verwerkt en het resultaat wegschrijft. Kleine versie van wat ClickUp op grote schaal doet.
Hoe pak je het aan met Claude Code?
Stap 1: Definieer de taak die je wilt automatiseren
Kies één terugkerende taak in je project. Goede voorbeelden:
- Nieuwe CSV-uploads van klanten omzetten naar databaserecords
- Inkomende support-e-mails samenvatten en categoriseren
- Elke nacht een rapport genereren op basis van Supabase-data
Voor dit voorbeeld: een agent die tekstbestanden in een map leest, ze samenvatten en de samenvatting wegschrijft.
Stap 2: Geef Claude Code de structuur via een CLAUDE.md
Maak eerst een CLAUDE.md in je project met de context die de agent altijd nodig heeft:
# Agent-context
Dit project bevat een autonome verwerker voor inkomende tekstbestanden.
- Inkomende bestanden staan in: /inbox
- Verwerkte output gaat naar: /processed
- Gebruik altijd UTF-8 encoding
- Schrijf logs naar: /logs/agent.log
- Nooit bestanden verwijderen, alleen verplaatsen
Dit is de "geheugen" van je agent. Claude Code leest dit automatisch aan het begin van elke sessie.
Stap 3: Schrijf de agent-prompt voor Claude Code
Gebruik deze prompt in Claude Code om de agent te bouwen:
Bouw een Python-script
agent.pydat de map/inboxbewaakt. Voor elk nieuw.txtbestand in die map:
- Lees de inhoud
- Maak een samenvatting van maximaal 3 zinnen
- Schrijf de samenvatting weg naar
/processed/[bestandsnaam]-summary.txt- Log de actie met timestamp naar
/logs/agent.log- Verplaats het originele bestand naar
/processed/originals/Gebruik de
watchdoglibrary om de map te bewaken. Voeg foutafhandeling toe zodat een kapot bestand de agent niet stopt. Maak ook eenrequirements.txt.
Claude Code schrijft nu het volledige script. Typisch resultaat:
import time
import logging
from pathlib import Path
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
logging.basicConfig(
filename="logs/agent.log",
level=logging.INFO,
format="%(asctime)s - %(message)s"
)
class InboxHandler(FileSystemEventHandler):
def on_created(self, event):
if event.is_directory or not event.src_path.endswith(".txt"):
return
self.verwerk(Path(event.src_path))
def verwerk(self, pad: Path):
try:
tekst = pad.read_text(encoding="utf-8")
samenvatting = self.maak_samenvatting(tekst)
output_pad = Path("processed") / f"{pad.stem}-summary.txt"
output_pad.write_text(samenvatting, encoding="utf-8")
archief = Path("processed/originals") / pad.name
pad.rename(archief)
logging.info(f"Verwerkt: {pad.name}")
except Exception as e:
logging.error(f"Fout bij {pad.name}: {e}")
def maak_samenvatting(self, tekst: str) -> str:
zinnen = tekst.strip().split(". ")
return ". ".join(zinnen[:3]) + "."
if __name__ == "__main__":
for map_naam in ["inbox", "processed", "processed/originals", "logs"]:
Path(map_naam).mkdir(parents=True, exist_ok=True)
observer = Observer()
observer.schedule(InboxHandler(), path="inbox", recursive=False)
observer.start()
print("Agent actief. Ctrl+C om te stoppen.")
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
Stap 4: Vervang de samenvatting-logica met een echte API-call
De samenvatting-functie hierboven is een placeholder. Vraag Claude Code om die te upgraden:
Vervang de
maak_samenvattingfunctie inagent.pydoor een aanroep naar de Anthropic API. Gebruikclaude-3-haiku-20240307want dat is snel en goedkoop. De API-sleutel haalt het script op uit de omgevingsvariabeleANTHROPIC_API_KEY. De prompt is: "Vat de volgende tekst samen in maximaal 3 Nederlandse zinnen:"
Stap 5: Draai de agent als achtergrondproces
Vraag Claude Code tot slot:
Schrijf een
start-agent.shbash-script dat de virtual environment activeert,agent.pystart als achtergrondproces, en het PID opslaat inagent.pid. Voeg ook eenstop-agent.shtoe dat het proces netjes stopt.
# start-agent.sh
#!/bin/bash
source venv/bin/activate
nohup python agent.py > logs/stdout.log 2>&1 &
echo $! > agent.pid
echo "Agent gestart met PID $(cat agent.pid)"
Wat te checken na afloop
- Gooi een testbestand in de
/inboxmap. Verschijnt er binnen 2 seconden een-summary.txtin/processed? - Open
logs/agent.log. Staat er een regel met timestamp en bestandsnaam? - Staat het originele bestand in
/processed/originals/en niet meer in/inbox? - Gooi een leeg bestand of een bestand met rare tekens in de inbox. Blijft de agent draaien zonder te crashen?
Als dat allemaal klopt, heb je een werkende autonome agent. Klein van schaal, maar hetzelfde principe als waar ClickUp miljoenen in steekt.
Bij Eighty leer ik je Claude Code in het Nederlands gebruiken, van installatie tot een werkend SaaS-product. Wekelijks een nieuwe module, persoonlijke begeleiding.
