<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Wilco Rakhorst</title>
    <description>The latest articles on DEV Community by Wilco Rakhorst (@wilcorakhorst).</description>
    <link>https://dev.to/wilcorakhorst</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3909999%2F1af32257-632d-43e5-b0d0-51c43c8884c0.jpg</url>
      <title>DEV Community: Wilco Rakhorst</title>
      <link>https://dev.to/wilcorakhorst</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wilcorakhorst"/>
    <language>en</language>
    <item>
      <title>I Built Reusable Marketing Skills for GitHub Copilot — Here's How (and Why)</title>
      <dc:creator>Wilco Rakhorst</dc:creator>
      <pubDate>Sun, 03 May 2026 08:22:49 +0000</pubDate>
      <link>https://dev.to/wilcorakhorst/i-built-reusable-marketing-skills-for-github-copilot-heres-how-and-why-4l97</link>
      <guid>https://dev.to/wilcorakhorst/i-built-reusable-marketing-skills-for-github-copilot-heres-how-and-why-4l97</guid>
      <description>&lt;p&gt;What if your code editor could do keyword research, audit your SEO, and optimize your content for AI search engines — without leaving VS Code?&lt;/p&gt;

&lt;p&gt;I built a set of open-source agent skills that turn GitHub Copilot into a hands-on marketing strategist. Here's what I learned, how they work, and how you can use (or build) your own.&lt;/p&gt;

&lt;p&gt;The problem&lt;br&gt;
I run a small website. Every time I wanted to write a blog post, the workflow looked like this:&lt;/p&gt;

&lt;p&gt;Open Ahrefs/Semrush → research keywords&lt;br&gt;
Open Google Docs → write the article&lt;br&gt;
Open WordPress → publish and fill in SEO fields&lt;br&gt;
Open ChatGPT → rewrite for social media&lt;br&gt;
Repeat&lt;br&gt;
Five tools. Five context switches. And every time, I found myself giving the same SEO instructions to AI assistants: "Use the keyword in the first paragraph", "Write a meta description under 155 characters", "Structure with H2/H3 headings"...&lt;/p&gt;

&lt;p&gt;What if I could encode all that knowledge once, and have my AI assistant apply it automatically?&lt;/p&gt;

&lt;p&gt;The solution: Copilot Skills&lt;br&gt;
GitHub Copilot (in agent mode) can read SKILL.md files from your workspace. These files act as knowledge modules — they tell Copilot how to approach a domain, what rules to follow, and what frameworks to apply.&lt;/p&gt;

&lt;p&gt;I created four skills that cover the full marketing workflow:&lt;/p&gt;

&lt;p&gt;seo-keyword-research  →  Find what your audience searches for&lt;br&gt;
        ↓&lt;br&gt;
seo-strategy          →  Structure your site to rank&lt;br&gt;
        ↓&lt;br&gt;
geo-optimization      →  Get cited by AI search engines&lt;br&gt;
        ↓&lt;br&gt;
content-creator       →  Write content that ranks AND gets cited&lt;br&gt;
What's inside a skill?&lt;br&gt;
A skill is just a Markdown file with structured knowledge. Here's a simplified look at the GEO (Generative Engine Optimization) skill:&lt;/p&gt;




&lt;p&gt;name: geo-optimization&lt;br&gt;
description: "\"Optimize content for AI search engines like ChatGPT, "&lt;br&gt;
Gemini, and Perplexity. Use when the user mentions 'AI visibility', &lt;/p&gt;

&lt;h2&gt;
  
  
  'GEO', 'AI search', or 'cited by AI'."
&lt;/h2&gt;

&lt;h1&gt;
  
  
  GEO — Generative Engine Optimization
&lt;/h1&gt;

&lt;h2&gt;
  
  
  What is GEO?
&lt;/h2&gt;

&lt;p&gt;GEO = optimizing content so AI-powered search engines cite your &lt;br&gt;
brand in generated answers.&lt;/p&gt;

&lt;h2&gt;
  
  
  GEO Scorecard (16 criteria)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;Target&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Authoritative tone&lt;/td&gt;
&lt;td&gt;Expert language, no hedging&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Structured data&lt;/td&gt;
&lt;td&gt;Schema markup present&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Anti-patterns
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Don't do this&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Keyword stuffing&lt;/td&gt;
&lt;td&gt;AI recognizes and skips it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The description field is key — Copilot uses it to decide when to invoke the skill. The body contains the actual knowledge the AI applies.&lt;/p&gt;

&lt;p&gt;How it works in practice&lt;br&gt;
Here's what a real session looks like:&lt;/p&gt;

&lt;p&gt;Me: "Do keyword research for a blog about home espresso machines"&lt;/p&gt;

&lt;p&gt;Copilot (automatically invokes seo-keyword-research):&lt;/p&gt;

&lt;p&gt;Searches the web for related keywords&lt;br&gt;
Classifies intent (informational, commercial, transactional)&lt;br&gt;
Analyzes SERP features&lt;br&gt;
Outputs a structured keyword map with primary/secondary keywords, difficulty estimates, and content type recommendations&lt;br&gt;
Me: "Now write the article and optimize it for AI search"&lt;/p&gt;

&lt;p&gt;Copilot (invokes content-creator + geo-optimization):&lt;/p&gt;

&lt;p&gt;Writes with proper H2/H3 structure&lt;br&gt;
Includes the keyword in the first paragraph&lt;br&gt;
Adds statistics with citations (GEO requirement)&lt;br&gt;
Uses authoritative tone&lt;br&gt;
Ends with a clear conclusion (AI search engines need this)&lt;br&gt;
Generates meta title and description within character limits&lt;br&gt;
Me: "Publish as draft to WordPress"&lt;/p&gt;

&lt;p&gt;Copilot (uses REST API knowledge from seo-strategy):&lt;/p&gt;

&lt;p&gt;Creates the post via wp-json/wp/v2/posts&lt;br&gt;
Sets Yoast SEO meta fields&lt;br&gt;
Outputs the draft URL&lt;br&gt;
Total time: ~15 minutes. From zero to published draft with SEO metadata.&lt;/p&gt;

&lt;p&gt;The GEO angle: why AI search changes everything&lt;br&gt;
Here's something most developers don't think about: when someone asks ChatGPT "what's the best espresso machine for beginners?", the answer comes from somewhere. That somewhere could be your website — but only if your content is structured in a way AI models can parse and trust.&lt;/p&gt;

&lt;p&gt;This is called Generative Engine Optimization (GEO). It's like SEO, but for AI search engines. The research (Aggarwal et al., 2024) shows that GEO techniques can boost visibility in AI-generated answers by up to 40%.&lt;/p&gt;

&lt;p&gt;My geo-optimization skill includes:&lt;/p&gt;

&lt;p&gt;A 16-criterion scorecard for AI-readiness&lt;br&gt;
Writing guidelines that balance human readability and AI parseability&lt;br&gt;
Anti-patterns (things that make AI skip your content)&lt;br&gt;
E-E-A-T implementation (Experience, Expertise, Authoritativeness, Trust)&lt;br&gt;
What I learned building these skills&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Skills need evidence, not opinions
AI assistants hallucinate. If your skill says "meta descriptions should be 155 characters" without a source, Copilot might second-guess it or contradict itself later.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I added a sources file with links to Moz, Ahrefs, Google Search Central, and peer-reviewed papers. This makes the skill more reliable and more trustworthy for users.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The description field is your trigger
Copilot decides which skill to invoke based on the description in the YAML frontmatter. Be specific about trigger words:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;description: "Use when the user mentions 'SEO', 'search engine &lt;br&gt;
optimization', 'Google rankings', 'rank higher', 'meta tags'..."&lt;br&gt;
The more trigger phrases you include, the more reliably it activates.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Structure &amp;gt; prose&lt;br&gt;
Tables, bullet lists, and clear headings work better than long paragraphs. The AI parses structured content faster and applies it more consistently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Skills should reference each other&lt;br&gt;
My skills cross-link: the SEO strategy skill says "for keyword research, see seo-keyword-research". This helps Copilot chain skills together in multi-step workflows.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Installation (30 seconds)&lt;br&gt;
git clone &lt;a href="https://github.com/helder-ai/marketing-skills.git" rel="noopener noreferrer"&gt;https://github.com/helder-ai/marketing-skills.git&lt;/a&gt; \&lt;br&gt;
  .github/skills/marketing&lt;br&gt;
That's it. Open VS Code with Copilot agent mode, and start asking marketing questions. Copilot auto-discovers the skills.&lt;/p&gt;

&lt;p&gt;Or as a Git submodule (stays updatable):&lt;/p&gt;

&lt;p&gt;git submodule add &lt;a href="https://github.com/helder-ai/marketing-skills.git" rel="noopener noreferrer"&gt;https://github.com/helder-ai/marketing-skills.git&lt;/a&gt; \&lt;br&gt;
  .github/skills/marketing&lt;br&gt;
Build your own skills&lt;br&gt;
The pattern works for any domain knowledge:&lt;/p&gt;

&lt;p&gt;Create a SKILL.md in .github/skills/your-skill/&lt;br&gt;
Add YAML frontmatter with name and description (include trigger words)&lt;br&gt;
Write structured knowledge — tables, checklists, decision trees&lt;br&gt;
Add references for any factual claims&lt;br&gt;
Test it — ask Copilot questions in the skill's domain and see if it gets invoked&lt;br&gt;
Domains that would benefit from this approach:&lt;/p&gt;

&lt;p&gt;Accessibility (WCAG guidelines as a skill)&lt;br&gt;
Security (OWASP Top 10 as actionable checklists)&lt;br&gt;
API design (REST/GraphQL conventions)&lt;br&gt;
Legal/compliance (GDPR, cookie consent rules)&lt;br&gt;
Brand guidelines (tone of voice, terminology)&lt;br&gt;
The repo&lt;br&gt;
GitHub: helder-ai/marketing-skills&lt;/p&gt;

&lt;p&gt;Licensed CC BY-NC 4.0 — free to use, adapt, and learn from.&lt;/p&gt;

&lt;p&gt;If you find it useful: ⭐ the repo, or open a PR if you have improvements. I'd especially love contributions from SEO practitioners who want to encode their expertise.&lt;/p&gt;

&lt;p&gt;What domain knowledge would you encode as a Copilot skill? Let me know in the comments!&lt;/p&gt;

</description>
      <category>githubcopilot</category>
      <category>ai</category>
      <category>seo</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
