{"id":1275,"date":"2026-08-24T09:00:00","date_gmt":"2026-08-24T07:00:00","guid":{"rendered":"https:\/\/fresh-dev.nl\/?post_type=blog&#038;p=1275"},"modified":"2026-08-22T14:12:30","modified_gmt":"2026-08-22T12:12:30","slug":"make-claude-skills","status":"publish","type":"blog","link":"https:\/\/fresh-dev.nl\/en\/blog\/claude-skills-maken\/","title":{"rendered":"Creating Claude Skills in Cowork and Claude Code: the guide"},"content":{"rendered":"<div class=\"section section-blocks\">\n    <div class=\"container\" data-reveal-group>\n        <div class=\"acf-innerblocks-container\">        <div class=\"block is-content\" id=\"claude-skills-maken-wat-het-is-en-hoe-je-begint\">\n                            <h2>Claude Skills maken: wat het is en hoe je begint<\/h2>\n                                        <p>Als je Claude wat vaker gebruikt, ken je het patroon wel. Je vraagt om een offerte en krijgt iets bruikbaars terug, maar niet in jullie opbouw. Dus leg je uit hoe jullie het doen. De week erna doe je dat weer. En de week daarna nog een keer.<\/p>\n<p>Daar zijn skills voor. Je legt \u00e9\u00e9n keer uit hoe iets bij jou werkt, je zet dat in een mapje, en vanaf dat moment weet Claude het. Geen prompt die je elke keer moet opzoeken en plakken.<\/p>\n<p>Wij draaien er inmiddels 29 op kantoor, van het opstellen van facturen tot het opzetten van een SEO-project. Hieronder wat een skill precies is, hoe je er in tien minuten zelf een maakt, en wat het verschil is tussen een skill die werkt en eentje die blijft liggen.<\/p>\n<p><strong>In het kort:<\/strong><\/p>\n<ul>\n<li>Een skill is een map met daarin \u00e9\u00e9n bestand: <code>SKILL.md<\/code>. Daar staat in wat het doet, wanneer Claude het moet gebruiken, en hoe jij het aanpakt.<\/li>\n<li>Je schrijft het gewoon in het Nederlands. Er komt geen code aan te pas, tenzij je dat zelf wilt.<\/li>\n<li>Alleen de naam en de beschrijving staan altijd geladen. De rest leest Claude pas als de taak erom vraagt, dus twintig skills kosten je niets.<\/li>\n<li>Het werkt in Cowork, in de Claude-apps en in Claude Code. Alleen de plek waar je het bestand neerzet verschilt.<\/li>\n<li>Hang je er een koppeling aan met je website of applicatie, dan voert Claude het werk daar ook echt uit in plaats van het alleen op te schrijven.<\/li>\n<li>Begin bij iets wat je deze maand drie keer hebt uitgelegd. Dat is bijna altijd de beste eerste skill.<\/li>\n<\/ul>\n<p>In dit artikel:<\/p>\n<ul>\n<li><a href=\"#wat\">Wat een skill precies is<\/a><\/li>\n<li><a href=\"#wanneer\">Wanneer je er een maakt<\/a><\/li>\n<li><a href=\"#eerste\">Je eerste skill in tien minuten<\/a><\/li>\n<li><a href=\"#waar\">Waar je &#8216;m neerzet in Cowork, Claude Code en de API<\/a><\/li>\n<li><a href=\"#goed\">Wat een goede skill onderscheidt van een slechte<\/a><\/li>\n<li><a href=\"#praktijk\">Wat wij er zelf mee doen<\/a><\/li>\n<li><a href=\"#website\">Skills op je eigen website of applicatie<\/a><\/li>\n<li><a href=\"#fouten\">De fouten die iedereen maakt<\/a><\/li>\n<li><a href=\"#leren\">Waar je verder leert<\/a><\/li>\n<\/ul>\n                                <\/div>\n                <div class=\"block is-image\">\n            <div class=\"image-holder\" data-click-zoom>\n                <img decoding=\"async\"\n                    src=\"https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-uitleg-1024x576.jpg\"\n                                            srcset=\"https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-uitleg-1024x576.jpg 1024w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-uitleg-300x169.jpg 300w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-uitleg-768x432.jpg 768w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-uitleg-1536x864.jpg 1536w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-uitleg-18x10.jpg 18w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-uitleg.jpg 1600w\"\n                        sizes=\"(max-width: 767px) 100vw, 720px\"\n                                        alt=\"Drie kenmerken van Claude Skills: een map met een SKILL.md, alleen de beschrijving staat geladen, Claude pakt de skill zelf\"\n                >\n                <button type=\"button\" class=\"image-zoom\" aria-label=\"Afbeelding vergroten\"><\/button>\n            <\/div>\n        <\/div>\n                <div class=\"block is-content\" id=\"wat\">\n                            <h2>Wat een skill precies is<\/h2>\n                                        <p>Een skill is een mapje met een bestand erin, en dat bestand heet <code>SKILL.md<\/code>. Bovenin staan twee dingen: een naam en een beschrijving. Daaronder staat in gewone taal hoe jij wilt dat iets gebeurt.<\/p>\n<p>Het belangrijkste om te snappen is hoe Claude ermee omgaat. Bij de start leest &#8216;ie alleen van elke skill de naam en de beschrijving. Meer niet. Pas als je iets vraagt waar een beschrijving bij past, opent &#8216;ie het hele bestand. Heb je in die skill nog verwezen naar een tweede bestand met bijvoorbeeld je tarieven, dan wordt dat pas gelezen als het echt nodig is.<\/p>\n<p>Dat klinkt als een detail, maar het is precies waarom skills werken en een lange systeemprompt niet. Je kunt er twintig hebben zonder dat het in de weg gaat zitten. Claude pakt wat &#8216;ie nodig heeft en laat de rest liggen.<\/p>\n<p>Het tweede verschil met een prompt: je hoeft &#8216;m niet aan te roepen. Je vraagt gewoon om een offerte, en Claude ziet zelf dat daar een skill voor is. Dat lukt alleen als je beschrijving klopt, en daar komen we zo op terug.<\/p>\n                                <\/div>\n                <div class=\"block is-content\" id=\"wanneer\">\n                            <h2>Wanneer je er een maakt<\/h2>\n                                        <p>Niet elke taak verdient een skill. De vuistregel die bij ons goed werkt: als je iets voor de derde keer aan het uitleggen bent, schrijf het dan op.<\/p>\n<p>Goede kandidaten hebben meestal deze kenmerken:<\/p>\n<ul>\n<li><strong>Het komt regelmatig terug.<\/strong> Een offerte, een weekrapportage, een blog, het bijwerken van een klantdossier.<\/li>\n<li><strong>Er zit een vaste werkwijze in.<\/strong> Niet noodzakelijk vastgelegd, maar wel iets wat jij in je hoofd hebt en collega&#8217;s niet.<\/li>\n<li><strong>De uitkomst moet consistent zijn.<\/strong> Elke offerte dezelfde opbouw, elke factuur hetzelfde format.<\/li>\n<li><strong>Er zitten regels in die je snel vergeet.<\/strong> &#8220;Altijd exclusief btw vermelden&#8221;, &#8220;nooit publiceren zonder tweede check&#8221;. Dat soort dingen.<\/li>\n<\/ul>\n<p>Slechte kandidaten zijn taken die je \u00e9\u00e9n keer doet, of taken waarbij elke situatie zo anders is dat er geen patroon in zit. Daar heb je meer aan een goed gesprek dan aan een instructie.<\/p>\n                                <\/div>\n                <div class=\"block is-content\" id=\"eerste\">\n                            <h2>Je eerste skill in tien minuten<\/h2>\n                                        <p>Neem iets kleins. Wij pakken hier een offerte, maar vul in wat bij jou past.<\/p>\n<p><strong>Stap 1. Doe de taak eerst gewoon een keer met Claude.<\/strong> Zonder skill, gewoon in een gesprek. Let op wat je onderweg allemaal moet uitleggen: onze opbouw, onze tarieven, dat we altijd een geldigheidsduur noemen. Dat wat je uitlegt, d\u00e1t wordt je skill.<\/p>\n<p><strong>Stap 2. Vraag Claude om er een skill van te maken.<\/strong> Letterlijk: &#8220;maak hier een skill van, met onze opbouw en de regel over btw.&#8221; Claude kent het formaat en schrijft &#8216;m voor je. Je hoeft de syntax niet uit je hoofd te leren.<\/p>\n<p><strong>Stap 3. Gooi eruit wat Claude al weet.<\/strong> Dit is de stap die de meeste mensen overslaan. Uitleggen wat een offerte is, is zonde van de ruimte. Alleen wat specifiek voor jou geldt hoort erin.<\/p>\n<p><strong>Stap 4. Zo ziet het resultaat eruit:<\/strong><\/p>\n<pre style=\"background-color:#141414;border:1px solid #2e2e2e;border-radius:12px;padding:26px 28px;font-size:15px;line-height:1.7;color:#d8d8d8\"><code>---\nname: offerte-opstellen\ndescription: Stelt een offerte op volgens de vaste opbouw en tarieven van het\n  bureau. Gebruik dit wanneer iemand vraagt om een offerte, prijsopgave of\n  calculatie voor een nieuw project.\n---\n\n# Offerte opstellen\n\n## Vaste opbouw\n1. Wat we begrepen hebben van de vraag\n2. Wat we gaan bouwen, per onderdeel\n3. Wat er niet in zit\n4. Investering en doorlooptijd\n\n## Regels\n- Nooit een totaalprijs zonder uitsplitsing\n- Altijd een geldigheidsduur van 30 dagen\n- Bedragen exclusief btw, en dat er expliciet bij vermelden<\/code><\/pre>\n<p><strong>Stap 5. Test &#8216;m op een echte klus.<\/strong> Niet op een verzonnen voorbeeld. Vraag om een offerte voor een klant die morgen op de agenda staat en kijk of Claude de skill pakt en de regels volgt. Doet &#8216;ie dat niet, dan ligt het bijna altijd aan de beschrijving.<\/p>\n                                <\/div>\n                <div class=\"block is-image\">\n            <div class=\"image-holder\" data-click-zoom>\n                <img decoding=\"async\"\n                    src=\"https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-anatomie-1024x646.jpg\"\n                                            srcset=\"https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-anatomie-1024x646.jpg 1024w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-anatomie-300x189.jpg 300w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-anatomie-768x485.jpg 768w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-anatomie-1536x970.jpg 1536w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-anatomie-18x12.jpg 18w, https:\/\/fresh-dev.nl\/app\/uploads\/2026\/08\/claude-skills-anatomie.jpg 1600w\"\n                        sizes=\"(max-width: 767px) 100vw, 720px\"\n                                        alt=\"Voorbeeld van een SKILL.md bestand met frontmatter en instructies, met uitleg per onderdeel\"\n                >\n                <button type=\"button\" class=\"image-zoom\" aria-label=\"Afbeelding vergroten\"><\/button>\n            <\/div>\n        <\/div>\n                <div class=\"block is-content\" id=\"waar\">\n                            <h2>Waar je &#039;m neerzet<\/h2>\n                                        <p>De inhoud is overal hetzelfde, alleen de plek verschilt per omgeving.<\/p>\n<ul>\n<li><strong>Claude Cowork en de Claude-apps.<\/strong> Stop je map in een zip-bestand, met de map er nog omheen, en upload &#8216;m onder Customize en dan Skills. Daarna nog even aanzetten. Let erop dat de mapnaam gelijk is aan de naam in je bestand.<\/li>\n<li><strong>Claude Code.<\/strong> Hier hoeft geen zip aan te pas te komen. Zet de map in <code>~\/.claude\/skills\/<\/code> en klaar. Bij ons staat die map in een gedeelde Drive-map met een snelkoppeling ernaartoe, zodat we op twee laptops dezelfde skills hebben.<\/li>\n<li><strong>De API.<\/strong> Daar werkt het via de code execution tool.<\/li>\n<\/ul>\n<p>Voor alle drie geldt dat code execution aan moet staan. Skills werken op de gratis versie en op alle betaalde abonnementen.<\/p>\n<p>Nog een handige: in Cowork op de Mac kun je een skill <strong>opnemen<\/strong>. Je zet de opname aan, doet de klus \u00e9\u00e9n keer voor, en Claude schrijft er zelf een skill van. Dat gaat tot ongeveer tien minuten en werkt op Pro, Max en Team. Voor mensen die liever iets voordoen dan opschrijven is dat de kortste route.<\/p>\n                                <\/div>\n                <div class=\"block is-content\" id=\"goed\">\n                            <h2>Wat een goede skill onderscheidt van een slechte<\/h2>\n                                        <p>Het verschil zit bijna nooit in de inhoud. Het zit in de beschrijving en in de lengte.<\/p>\n<p><strong>De beschrijving is het halve werk.<\/strong> Dat is het enige wat Claude ziet als &#8216;ie moet kiezen. Zet er dus in w\u00e1t de skill doet \u00e9n wanneer je &#8216;m gebruikt, en schrijf &#8216;m in de derde persoon. &#8220;Stelt een offerte op volgens de vaste opbouw. Gebruik dit wanneer iemand vraagt om een offerte, prijsopgave of calculatie&#8221; werkt. &#8220;Helpt met documenten&#8221; werkt niet, want daar kan Claude niets mee.<\/p>\n<p><strong>Kort is beter.<\/strong> De richtlijn van Anthropic zelf is: houd het onder de 500 regels. Wordt het langer, splits het dan op in losse bestanden waar je vanuit je hoofdbestand naar verwijst. Claude leest die pas als het nodig is.<\/p>\n<p><strong>Verwijs \u00e9\u00e9n laag diep.<\/strong> Een bestand dat verwijst naar een bestand dat weer verwijst naar een bestand gaat mis. Alles wat je nodig hebt link je rechtstreeks vanuit je hoofdbestand.<\/p>\n<p><strong>Geen datums en versies die verlopen.<\/strong> &#8220;Vanaf september gebruiken we het nieuwe tarief&#8221; is over drie maanden gewoon fout. Zet het actuele tarief erin en pas het aan als het verandert.<\/p>\n<p><strong>E\u00e9n woord voor \u00e9\u00e9n ding.<\/strong> Als je het de ene alinea een offerte noemt en de volgende een prijsopgave, moet Claude gaan raden. Kies er \u00e9\u00e9n.<\/p>\n<p><strong>Geef \u00e9\u00e9n manier, niet vijf.<\/strong> Opsommen dat het zus of zo of ook nog anders kan, maakt de uitkomst wisselvallig. Kies de manier waarop jij het wilt.<\/p>\n                                <\/div>\n                <div class=\"block is-quote\">\n            <p>Als je iets voor de derde keer zit uit te leggen, is dat geen irritatie maar een signaal. Daar hoort een skill.<\/p>\n                            <span>&#8211; Jesse Lafeber, Fresh-Dev<\/span>\n                    <\/div>\n                <div class=\"block is-content\" id=\"praktijk\">\n                            <h2>Wat wij er zelf mee doen<\/h2>\n                                        <p>Een paar uit onze eigen map, zodat je een idee krijgt van het soort klussen dat zich ervoor leent:<\/p>\n<ul>\n<li><strong>Facturatie voor een klant met eigen regels.<\/strong> Die klant weigert facturen zonder inkoopnummer v\u00f3\u00f3r de dienstnaam. Dat is precies zo&#8217;n regel die je \u00e9\u00e9n keer vergeet en dan twee weken later terugkrijgt. Staat nu in een skill, samen met wat er moet gebeuren als een mail niet te matchen is.<\/li>\n<li><strong>Werk inplannen in onze projectadministratie.<\/strong> Inclusief de capaciteitscheck: zit iemand al boven de 75 procent, dan gaat er niets meer bij. Bij deze skill zit een los Python-script, want die berekening wil je niet elke keer opnieuw laten uitrekenen.<\/li>\n<li><strong>Blogs schrijven in onze eigen stijl.<\/strong> Ja, ook deze. Daarin staat waar onze teksten aan moeten voldoen en welke AI-stijlfratsen eruit moeten.<\/li>\n<li><strong>Een SEO-project opzetten.<\/strong> De vaste volgorde van zoekwoordonderzoek, concurrenten en rapportage, zodat elk project hetzelfde begint.<\/li>\n<\/ul>\n<p>Wat ze gemeen hebben: het zijn geen indrukwekkende AI-toepassingen. Het is opgeschreven werkwijze. Precies het soort kennis dat normaal in iemands hoofd zit en verdwijnt als die persoon op vakantie is.<\/p>\n                                <\/div>\n                <div class=\"block is-content\" id=\"website\">\n                            <h2>Skills op je eigen website of applicatie<\/h2>\n                                        <p>Tot hier ging het over werk dat in documenten zit. Skills worden pas echt interessant als Claude erbij kan in het systeem waar je werk in staat: je WordPress-site, je webshop of je eigen applicatie.<\/p>\n<p>De skill beschrijft dan de werkwijze en de koppeling geeft Claude handen. Zo&#8217;n koppeling heb je vaak al liggen. WordPress heeft een REST API, de meeste applicaties hebben er ook \u00e9\u00e9n, en anders zet je er een MCP-server of een klein script naast dat gewoon in de map van de skill staat.<\/p>\n<p>Het soort klussen dat daarmee weggaat:<\/p>\n<ul>\n<li>Driehonderd productteksten in een webshop bijwerken, met de schrijfstijl en de verplichte velden vastgelegd in de skill.<\/li>\n<li>Een nieuwe locatiepagina opbouwen volgens hetzelfde stramien als de veertig die er al staan, inclusief interne links en meta-omschrijving.<\/li>\n<li>Elke maandag dezelfde rapportage uit de applicatie trekken, met dezelfde kolommen en dezelfde toelichting eronder.<\/li>\n<li>Een stapel oude blogs nalopen op dode links en verlopen prijzen, en de correcties als concept klaarzetten.<\/li>\n<\/ul>\n<p>Twee dingen leg je daarbij vast in de skill zelf. Ten eerste wat er niet mag: niets publiceren zonder tussenstap, niets weggooien, bij twijfel stoppen en het vragen. Ten tweede waar &#8216;ie mag werken. Begin op staging of met alleen leesrechten, en ga pas naar live als je een paar keer hebt gezien dat de uitkomst klopt.<\/p>\n<p>De werkwijze opschrijven kan iedereen die het werk doet. De koppeling en de rechten eromheen zijn techniek, en daar loopt het meestal vast. Dat stuk bouwen wij op websites en webapplicaties, met de skill erbij, zodat het team daarna zelf verder kan.<\/p>\n                                <\/div>\n                <div class=\"block is-content\" id=\"fouten\">\n                            <h2>De fouten die iedereen maakt<\/h2>\n                                        <ul>\n<li><strong>Een vage beschrijving.<\/strong> Veruit nummer \u00e9\u00e9n. De skill is prima, maar Claude pakt &#8216;m nooit omdat er &#8220;helpt met teksten&#8221; staat. Werkt je skill niet, kijk hier dan als eerste.<\/li>\n<li><strong>Uitleggen wat Claude al weet.<\/strong> Drie alinea&#8217;s over wat een offerte is. Zonde van de ruimte en het leidt af van de regels die er w\u00e9l toe doen.<\/li>\n<li><strong>Alles in \u00e9\u00e9n bestand proppen.<\/strong> Een skill van 1.200 regels met je complete prijslijst erin. Splits die prijslijst af naar een apart bestand.<\/li>\n<li><strong>Testen op een verzonnen voorbeeld.<\/strong> Werkt altijd. Zegt niets. Test op echt werk.<\/li>\n<li><strong>Nooit meer terugkijken.<\/strong> Een skill is geen document dat je af hebt. Merk je dat Claude iets structureel anders doet dan je bedoelde, pas de skill dan aan. Dat is meestal \u00e9\u00e9n regel.<\/li>\n<\/ul>\n                                <\/div>\n                <div class=\"block is-content\" id=\"leren\">\n                            <h2>Waar je verder leert<\/h2>\n                                        <p>Anthropic heeft zijn eigen uitleg inmiddels op orde en die is gratis. Op <a href=\"https:\/\/academy.claude.com\/\" target=\"_blank\" rel=\"noopener\">Claude Academy<\/a> staan korte cursussen met video&#8217;s en een quiz aan het eind.<\/p>\n<ul>\n<li>Introduction to agent skills, zes lessen van bij elkaar ongeveer een uur. Dat is de kortste route na dit artikel.<\/li>\n<li>Introduction to Claude Cowork en Claude Code 101, als je nog moet kiezen waar je gaat werken.<\/li>\n<li>Introduction to Model Context Protocol, voor het koppelen aan je eigen systemen.<\/li>\n<\/ul>\n<p>Alles in het Engels, en je haalt er een badge mee op als je dat bijhoudt. Wie liever meteen doorpakt op de techniek: er staat ook een volledige cursus over bouwen met de Claude API van negen uur.<\/p>\n                                <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<div class=\"section section-form\">        <div class=\"container\" data-reveal-group>\n            <div class=\"holder\" data-reveal-group-nested data-ignore=\"false\">\n                        <div class=\"content-holder\">\n            <div class=\"inner\">\n                <h3>Sparren over waar jouw tijd in gaat zitten?<\/h3>\n<p>Laat je gegevens achter, dan bellen we je een keer om te kijken welke terugkerende klussen zich lenen voor een skill. Daar rekenen we niets voor.<\/p>\n                            <\/div>\n                    <\/div>\n                                <div class=\"form-holder\" data-reveal-group>\n            <div class=\"inner\">\n                                <script>\nvar gform;gform||(document.addEventListener(\"gform_main_scripts_loaded\",function(){gform.scriptsLoaded=!0}),document.addEventListener(\"gform\/theme\/scripts_loaded\",function(){gform.themeScriptsLoaded=!0}),window.addEventListener(\"DOMContentLoaded\",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>\"function\"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn(\"The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1.\"),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener(\"gform_main_scripts_loaded\",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener(\"gform\/theme\/scripts_loaded\",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener(\"DOMContentLoaded\",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook(\"action\",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook(\"filter\",o,r,e,t)},doAction:function(o){gform.doHook(\"action\",o,arguments)},applyFilters:function(o){return gform.doHook(\"filter\",o,arguments)},removeAction:function(o,r){gform.removeHook(\"action\",o,r)},removeFilter:function(o,r,e){gform.removeHook(\"filter\",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+\"_\"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){\"function\"!=typeof(t=o.callable)&&(t=window[t]),\"action\"==r?t.apply(null,e):e[0]=t.apply(null,e)})),\"filter\"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});\n<\/script>\n\n                <div class='gf_browser_gecko gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_2' ><div id='gf_2' class='gform_anchor' tabindex='-1'><\/div><form method='post' enctype='multipart\/form-data' target='gform_ajax_frame_2' id='gform_2'  action='\/en\/wp-json\/wp\/v2\/blog\/1275#gf_2' data-formid='2' novalidate>\n                        <div class='gform-body gform_body'><div id='gform_fields_2' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id=\"field_2_1\" class=\"gfield gfield--type-text gfield--width-full input-extra gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_2_1'>Naam<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_2_1' type='text' value='' class='large'     aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_2_3\" class=\"gfield gfield--type-email gfield--width-full input-extra gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_2_3'>E-mailadres<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_email'>\n                            <input name='input_3' id='input_2_3' type='email' value='' class='large'    aria-required=\"true\" aria-invalid=\"false\"  \/>\n                        <\/div><\/div><div id=\"field_2_4\" class=\"gfield gfield--type-phone gfield--width-full input-extra field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_2_4'>Telefoonnummer (optioneel)<\/label><div class='ginput_container ginput_container_phone'><input name='input_4' id='input_2_4' type='tel' value='' class='large'    aria-invalid=\"false\"   \/><\/div><\/div><\/div><\/div>\n        <div class='gform-footer gform_footer top_label'> <input type='submit' id='gform_submit_button_2' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' value='Versturen'  \/> <input type='hidden' name='gform_ajax' value='form_id=2&amp;title=&amp;description=&amp;tabindex=0&amp;theme=gravity-theme&amp;hash=b691fb5641fdffe5a188501ad6f19bcc' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_2' value='iframe' \/>\n            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_2' id='gform_theme_2' value='gravity-theme' \/>\n            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_2' id='gform_style_settings_2' value='' \/>\n            <input type='hidden' class='gform_hidden' name='is_submit_2' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='2' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='EUR' value='BI2kTFWRNyETqV\/fjQD\/T512aUUkcJssS\/xVzqa9TQrolZ7H3ZqkY9QXJJOuUCEGND\/F\/UrS781Wm9706pWMP5h4RqRs4pwhG4AtJXONXe\/iUXc=' \/>\n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_2' value='WyJbXSIsIjFmODY2YWJjOTNmYzNkYTQwZmI3MTdlMDBjYjU4M2FjIl0=' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_2' id='gform_target_page_number_2' value='0' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_2' id='gform_source_page_number_2' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <\/form>\n                        <\/div>\n\t\t                <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_2' id='gform_ajax_frame_2' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'><\/iframe>\n\t\t                <script>\ngform.initializeOnLoaded( function() {gformInitSpinner( 2, 'https:\/\/fresh-dev.nl\/app\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery('#gform_ajax_frame_2').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_2');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_2').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_2').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_2').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_2').removeClass('gform_validation_error');}setTimeout( function() { \/* delay the scroll by 50 milliseconds to fix a bug in chrome *\/ jQuery(document).scrollTop(jQuery('#gform_wrapper_2').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_2').val();gformInitSpinner( 2, 'https:\/\/fresh-dev.nl\/app\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [2, current_page]);window['gf_submitting_2'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_2').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_2').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [2]);window['gf_submitting_2'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_2').text());}else{jQuery('#gform_2').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger(\"gform_pre_post_render\", [{ formId: \"2\", currentPage: \"current_page\", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( \"gform_wrapper_2\" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( \"span\" );            visibilitySpan.id = \"gform_visibility_test_2\";            gformWrapperDiv.insertAdjacentElement( \"afterend\", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( \"gform_visibility_test_2\" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 2, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );\n<\/script>\n            <\/div>\n        <\/div>\n                    <\/div>\n        <\/div>\n        <\/div><div class=\"section section-blocks\">\n    <div class=\"container\" data-reveal-group>\n        <div class=\"acf-innerblocks-container\">        <div class=\"block is-content\" id=\"beginnen\">\n                            <h2>Waar te beginnen<\/h2>\n                                        <p>Pak iets wat je deze maand al drie keer hebt uitgelegd. Doe die taak \u00e9\u00e9n keer samen met Claude, vraag om er een skill van te maken, haal eruit wat overbodig is en test &#8216;m op echt werk. Een half uur, en je hebt &#8216;m.<\/p>\n<p>Loopt het werk dat je wilt automatiseren via je website, je webshop of je eigen applicatie, dan komt daar een koppeling bij kijken en wordt het bouwwerk. Dat doen wij. Wil je eerst even sparren over waar bij jullie de meeste tijd in gaat zitten, plan dan een adviesgesprek.<\/p>\n                                <div class=\"button-holder\">\n            <a href=\"https:\/\/fresh-dev.nl\/adviesgesprek-inplannen\/\" class=\"button\">Plan een adviesgesprek<\/a>\n        <\/div>\n                <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"featured_media":1273,"template":"","meta":{"_acf_changed":false},"blog_category":[6],"class_list":["post-1275","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-ai-innovatie"],"acf":[],"_links":{"self":[{"href":"https:\/\/fresh-dev.nl\/en\/wp-json\/wp\/v2\/blog\/1275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fresh-dev.nl\/en\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/fresh-dev.nl\/en\/wp-json\/wp\/v2\/types\/blog"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fresh-dev.nl\/en\/wp-json\/wp\/v2\/media\/1273"}],"wp:attachment":[{"href":"https:\/\/fresh-dev.nl\/en\/wp-json\/wp\/v2\/media?parent=1275"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/fresh-dev.nl\/en\/wp-json\/wp\/v2\/blog_category?post=1275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}