Install
openclaw skills install @roelbroersma/marktplaats-publisherMarktplaats-advertenties voorbereiden, plaatsen/bewerken, copy-QA, preflight, live-verificatie en register.
openclaw skills install @roelbroersma/marktplaats-publisherGebruik deze skill voor normale Marktplaats-advertenties: voorbereiden, plaatsen, bewerken, live controleren en lokaal registreren.
De workflow is command-first. Proceduretekst is alleen toelichting. Als een gate faalt, stop je.
Voor kleinere modellen: doe steeds een fase, lees de output, en ga pas door als de vorige fase aantoonbaar geslaagd is. De scripts zijn harde gates; publiceren en UI-invulwerk blijven browserwerk met verificatie, geen blinde submit-flow.
Als de taak installatie, eerste setup of herstel van de skill is, laad references/setup-small-model-nl.md.
Package-identiteit:
marktplaats-publisher;marktplaats, marktplaats-nl-publisher of pvoo/marktplaats zijn niet de doel-skill;npm test vanuit de skillmap.Voor lichte modellen zoals GPT-4.5 mini of de lokaal beschikbare mini-route geldt dit contract:
PASS, self-test ok of exitcode 0 met verwachte output;adDir, adJson, description, currentGate, lastCommand, result en nextStep.Als globale CLI-commando's ontbreken, gebruik vanaf de skillmap de directe fallback:
node ./scripts/marktplaats-place-probe.js --self-test
node ./scripts/marktplaats-copy-qa.js --self-test
node ./scripts/marktplaats-ad-preflight.js --self-test
node ./scripts/marktplaats-live-verify.js --self-test
node ./scripts/marktplaats-register-update.js --self-test
--allow-* opties alleen bij expliciete, taak-specifieke uitzondering van de gebruiker.http://, https://, www., e-mailadressen en woorden met bekende domeinextensies zoals .com, .nl, .eu, .org, .net, .de, .be en .io. Merknamen met een domeinextensie, zoals StarTech.com, moeten worden herschreven naar een gewone merknaam zonder punt, bijvoorbeeld StarTech.<br>-achtige regelovergangen of Marktplaats-blokken.Laad references/background-safari-nl.md bij plaats-/bewerkwerk met Safari.
Voorkeursvolgorde:
marktplaats-place-probe --browser-fetch --url ... voor authenticated inspectie zonder zichtbare navigatie.marktplaats-place-probe --browser --open-background ... om een pagina in Safari te openen zonder Safari actief te maken.Regels:
Werk per advertentie in:
~/Documents/OpenClaw/Data/marktplaats/<slug>/ad.json
~/Documents/OpenClaw/Data/marktplaats/<slug>/description.md
~/Documents/OpenClaw/Data/marktplaats/<slug>/photos/
Centraal register:
~/Documents/OpenClaw/Data/marktplaats/advertenties.json
ad.json moet minimaal bevatten: titel, prijs, conditie, levering, categorie/categoryIds, biddingAllowed, descriptionFile, imageDir of foto's, URL/adId zodra live, en copyQuality.
Schrijf een feitelijke Nederlandse tekst van ongeveer 3200-3500 tekens.
Moet bevatten:
buiten antenne naast buitenantenne.Niet doen:
www.-tekst, URL's of e-mailadressen;Zoektermen:, Keywords: of SEO: footer;Altijd draaien voordat Marktplaats wordt ingevuld of opgeslagen:
marktplaats-copy-qa ./description.md \
--require "<merk-of-model>" \
--require "<productsoort>" \
--variant "<natuurlijke zoekvariant>" \
--ad-json ./ad.json
Stop als dit geen PASS geeft. De command schrijft copyQuality inclusief descriptionSha256 naar ad.json.
Herhaal --variant alleen voor een tweede minimale variant als die natuurlijk in de omschrijving past. Gebruik geen losse typefoutenlijst.
Copy-QA faalt bij URL's, www.-tekst, e-mailadressen en domeinachtige tekst zoals startech.com, ook als er geen protocol voor staat.
Altijd draaien na copy-QA en voor browser/UI-werk:
marktplaats-ad-preflight --ad-json ./ad.json --require-bidding-allowed
Gebruik --require-bidding-allowed wanneer bieden aan moet staan. Stop bij failure.
Preflight controleert onder andere:
www.-tekst, e-mailadressen of domeinachtige tekst;Inspecteer Marktplaats voordat je invult. Kies de minst storende route die genoeg bewijs geeft.
Met browser-fetch:
marktplaats-place-probe --browser-fetch --url "https://www.marktplaats.nl/plaats/..." --save ./snapshot-place.json
Als Safari niet de actieve app hoeft te worden, open de plaatsingspagina op de achtergrond en probe daarna dezelfde Safari-context:
marktplaats-place-probe --browser \
--open-background "https://www.marktplaats.nl/plaats/..." \
--save ./snapshot-place.json
Als de juiste Marktplaats-tab al open staat:
marktplaats-place-probe --browser --save ./snapshot-place.json
Stop als:
security.challengeSignals login, captcha, MFA, WAF of betaal-/promotiesignalen toont.Vul Marktplaats pas na groene copy-QA en preflight.
Controleer voor submit/save:
Gebruik geen blinde coordinate-clicks. Gebruik DOM/events of een expliciet UI-element met verificatie voor en na.
Gebruik geen directe hidden-field submit of platte URLSearchParams-post voor de omschrijving tenzij live-verificatie daarna bewijst dat alinea's bewaard zijn. Als Marktplaats de tekst ondanks correcte inhoud als een doorlopende lap toont, is de advertentie niet klaar.
Na opslaan of plaatsen moet de live advertentie gecontroleerd worden.
Als fetch genoeg tekst bevat:
marktplaats-live-verify --ad-json ./ad.json --url "https://www.marktplaats.nl/seller/view/..." --update-ad-json
Als de pagina dynamisch is, sla eerst zichtbare/live tekst op en verifieer die:
marktplaats-live-verify --ad-json ./ad.json --text ./live-text.txt --update-ad-json
Stop als:
Zoektermen: of keyworddump live zichtbaar is;Werk na live verificatie het centrale register bij:
marktplaats-register-update \
--ad-json ./ad.json \
--central-json ~/Documents/OpenClaw/Data/marktplaats/advertenties.json \
--note "Live gecontroleerd na plaatsing/bewerking."
Run register-updates sequentieel. Het script gebruikt een lock en faalt als een tweede update tegelijk hetzelfde centrale register probeert te schrijven.
De register-update hoort standaard te falen als live-verificatie ontbreekt of faalde. Gebruik --allow-unverified alleen voor niet-gepubliceerde conceptadministratie en vermeld waarom in --note.
Voor elke inhoudelijke tekstbewerking geldt dezelfde pipeline:
marktplaats-copy-qa ./description.md --require "<term1>" --require "<term2>" --variant "<variant>" --ad-json ./ad.json
marktplaats-ad-preflight --ad-json ./ad.json --require-bidding-allowed
# bewerk via Marktplaats UI/DOM
marktplaats-live-verify --ad-json ./ad.json --url "<live-url>" --update-ad-json
marktplaats-register-update --ad-json ./ad.json --central-json ~/Documents/OpenClaw/Data/marktplaats/advertenties.json
Als live fetch de tekst niet ziet, gebruik --text ./live-text.txt met tekst uit de browser/accessibility snapshot.
npm test
Deze test moet groen zijn voordat je publiceert naar ClawHub.
README.mdreferences/handleiding-nl.mdreferences/guide-en.mdreferences/robust-posting-checklist.mdreferences/setup-small-model-nl.mdreferences/background-safari-nl.md