{"id":196558,"date":"2026-04-28T08:00:56","date_gmt":"2026-04-28T13:00:56","guid":{"rendered":"https:\/\/ahrefs.com\/blog\/?p=196558"},"modified":"2026-04-28T08:26:47","modified_gmt":"2026-04-28T13:26:47","slug":"how-i-do-content-engineering-with-claude-code","status":"publish","type":"post","link":"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/","title":{"rendered":"How I Do Content Engineering with Claude Code"},"content":{"rendered":"<div class=\"intro-txt\">Here\u2019s how I built a high-quality content automation system for the Ahrefs blog using Claude Code and 23 skill&nbsp;files.<\/div>\n<p>Back in August 2025, I shared the <a href=\"https:\/\/ahrefs.com\/blog\/my-complete-ai-content-process-for-ahrefs\/\">AI content process<\/a> I had developed for the Ahrefs blog. It used ChatGPT projects and custom GPTs to speed up certain types of content creation from several days to a couple of hours, but still required tons of manual intervention.<\/p>\n<p>Now, barely eight months later, I\u2019m sharing our new process. I use Claude Code and 23 custom skill files, chained together, to generate publish-ready article drafts in six to twelve minutes. We have published around 15 articles with this new process, and updated some 30 or so&nbsp;more.<\/p>\n<p>I\u2019ve been using AI to help create content marketing since 2020. It has been useful in effortful, piecemeal ways. But today it is good enough to automate important parts of content marketing with no loss in quality (and even a significant gain in some areas, like research). Or as I put in a recent article: <a href=\"https:\/\/ahrefs.com\/blog\/ai-content-wasnt-good-enough-now-it-is\/\">AI content wasn\u2019t good enough. Now it&nbsp;is.<\/a><\/p>\n<p>As a result, I suggested a pretty bold direction in our company Slack, back in February:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1370\" height=\"486\" class=\"wp-image-196559\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-1.png\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-1.png 1370w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-1-680x241.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-1-768x272.png 768w\" sizes=\"auto, (max-width: 1370px) 100vw, 1370px\"><\/p>\n<p>Here\u2019s our AI current content process.<\/p>\n<div class=\"recommendation\"><div class=\"recommendation-title\">Watch this process on YouTube<\/div><div class=\"recommendation-content\">\n<p>Check out this episode of the <a href=\"https:\/\/www.youtube.com\/watch?v=iVZrVeESnFQ\">Ahrefs podcast<\/a> to watch me demo our content automation system to Ahrefs\u2019 CMO, Tim&nbsp;Soulo.<\/p>\n<p>&nbsp;<\/p>\n<div data-mode=\"normal\" data-oembed=\"1\" data-provider=\"youtube\" id=\"arve-youtube-ivzrveesnfq\" style=\"max-width:900px;\" class=\"arve\">\n<div class=\"arve-inner\">\n<div style=\"aspect-ratio:500\/281\" class=\"arve-embed arve-embed--has-aspect-ratio\">\n<div class=\"arve-ar\" style=\"padding-top:56.200000%\"><\/div>\n<p>\t\t\t<iframe allow=\"accelerometer 'none';autoplay 'none';bluetooth 'none';browsing-topics 'none';camera 'none';clipboard-read 'none';clipboard-write;display-capture 'none';encrypted-media 'none';gamepad 'none';geolocation 'none';gyroscope 'none';hid 'none';identity-credentials-get 'none';idle-detection 'none';keyboard-map 'none';local-fonts;magnetometer 'none';microphone 'none';midi 'none';otp-credentials 'none';payment 'none';picture-in-picture;publickey-credentials-create 'none';publickey-credentials-get 'none';screen-wake-lock 'none';serial 'none';summarizer 'none';sync-xhr;usb 'none';web-share;window-management 'none';xr-spatial-tracking 'none';\" allowfullscreen class=\"arve-iframe fitvidsignore\" credentialless data-arve=\"arve-youtube-ivzrveesnfq\" data-lenis-prevent data-src-no-ap=\"https:\/\/www.youtube-nocookie.com\/embed\/iVZrVeESnFQ?feature=oembed&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;autohide=1&amp;playsinline=0&amp;autoplay=0\" frameborder=\"0\" height=\"505.8\" loading=\"lazy\" name referrerpolicy=\"strict-origin-when-cross-origin\" sandbox=\"allow-scripts allow-same-origin allow-presentation allow-popups allow-popups-to-escape-sandbox\" scrolling=\"no\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/iVZrVeESnFQ?feature=oembed&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;autohide=1&amp;playsinline=0&amp;autoplay=0\" title width=\"900\"><\/iframe><\/p><\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"Important caveats\" data-section=\"important-caveats\">\n<h2><a id=\"post-196558-_c9xluyadrtow\"><\/a>Important caveats<\/h2>\n<\/div><\/div>\n<p>Before we get to the good stuff, I once again want to direct your attention to some important caveats:<\/p>\n<h3><a id=\"post-196558-_ydiip7bdphoy\"><\/a>Experience matters<\/h3>\n<p>AI content is not, by default, good. This process works well because it mirrors our existing human editorial process, built from decades of collective content marketing experience. Or as someone in a <a href=\"https:\/\/www.linkedin.com\/feed\/update\/urn:li:activity:7443574113673129984?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7443574113673129984%2C7443604427044896768%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287443604427044896768%2Curn%3Ali%3Aactivity%3A7443574113673129984%29\">LinkedIn comment<\/a> put it, very articulately:<\/p>\n<blockquote><p><em>\u201cRyan\u2019s SKILL files are good because Ryan already knew what to put in them. Most people using blank-slate tools don\u2019t have 13 years of editorial experience to build from. The gap isn\u2019t just in the tool. It\u2019s in the person behind it&nbsp;too.\u201d<\/em><\/p><\/blockquote>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-196575\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/2026-04-27_14-13-22.png\" alt width=\"1648\" height=\"700\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/2026-04-27_14-13-22.png 1648w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/2026-04-27_14-13-22-680x289.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/2026-04-27_14-13-22-768x326.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/2026-04-27_14-13-22-1536x652.png 1536w\" sizes=\"auto, (max-width: 1648px) 100vw, 1648px\"><\/p>\n<h3><a id=\"post-196558-_db87916ly5pk\"><\/a>Topic selection still matters<\/h3>\n<p>This process is geared specifically towards informational SEO content. I only use this process on topics that I understand well, so that I can review each article to validate its claims, correct misinformation, and make sure I feel happy putting it out into the&nbsp;world.<\/p>\n<p>I also focus primarily on topics that Ahrefs has already covered (in some capacity), allowing us to use hundreds of existing, high-quality articles as a reference point for new content.<\/p>\n<h3><a id=\"post-196558-_sd8s1i8j9tnk\"><\/a>We have no plans to \u201cscale content\u201d with&nbsp;AI<\/h3>\n<p>I could use this process to scale the Ahrefs blog to tens of thousands of articles. I will not. It would not be in the interests of Ahrefs or our customers.<\/p>\n<p>Instead, I am using this workflow to help us maintain an evergreen library of useful content on a handful of core topics. My goal is to remove drudgery and focus human grey matter on the parts of marketing that benefit most from&nbsp;it.<\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"1. Mimic human workflows by chaining editorial skills\" data-section=\"one\">\n<h2><a id=\"post-196558-_6wmz7c4g6bf1\"><\/a>1. Mimic human workflows by chaining editorial skills<\/h2>\n<\/div><\/div>\n<p>At the heart of this process are ~23 skill files that correspond to different parts of the Ahrefs editorial process, from conducting keyword research to topic gap analysis to structural outlining:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1635\" class=\"wp-image-196560\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-2.png\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-2.png 2048w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-2-532x425.png 532w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-2-768x613.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-2-1536x1226.png 1536w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\"><\/p>\n<p>Each skill file includes a Markdown-formatted explanation of how Claude (or any LLM) should conduct each process, best-practice examples to emulate, and formatting instructions for the expected output.<\/p>\n<p>Many of these skills are adapted from our existing, human-written process documentation. Others are written from scratch, and some are generated and edited entirely by&nbsp;AI.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1668\" height=\"1846\" class=\"wp-image-196561\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-3.png\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-3.png 1668w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-3-384x425.png 384w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-3-768x850.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-3-1388x1536.png 1388w\" sizes=\"auto, (max-width: 1668px) 100vw, 1668px\"><\/p>\n<p>Every skill can be used in isolation, but I also created a main skill (<code>blog-pipeline<\/code>) that instructs the LLM to trigger each of these skills in a particular order, working sequentially through every process to take a keyword idea through to (nearly) finished article:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"834\" height=\"164\" class=\"wp-image-196562\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-4.png\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-4.png 834w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-4-680x134.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-4-768x151.png 768w\" sizes=\"auto, (max-width: 834px) 100vw, 834px\"><\/p>\n<p>Theoretically, this process can be <em>fully automated.<\/em> Using the skill files I created, Claude can trigger a daily content gap analysis using the <a href=\"https:\/\/docs.ahrefs.com\/mcp\/docs\/introduction\">Ahrefs MCP<\/a>, review and prioritize the best keywords to target, and kick off the entire <code>blog-pipeline<\/code> workflow, notifying me when new article drafts are ready for review.<\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"2. Output every step of the process for iteration and troubleshooting\" data-section=\"two\">\n<h2><a id=\"post-196558-_cp943bq0sd1n\"><\/a>2. Output every step of the process for iteration and troubleshooting<\/h2>\n<\/div><\/div>\n<p>One risk of agentic content creation: if you get an article at the end of a ten minute run, and it\u2019s bad, it\u2019s hard to diagnose precisely where and why the process went&nbsp;wrong.<\/p>\n<p>For that reason, every step of this process produces its own output file. For example, when the outline is generated, the outline is handed over to the next stage of the process, but also saved as a markdown file in the outlines folder.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1223\" class=\"wp-image-196563\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-5.png\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-5.png 2048w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-5-680x406.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-5-768x459.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-5-1536x917.png 1536w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\"><\/p>\n<p>I can review every single stage of the process, tweak that particular output (and the corresponding skill file), and restart from the last stage that meets my quality criteria.<\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"3. Create test cases for recursive self-improvement\" data-section=\"three\">\n<h2><a id=\"post-196558-_ff7aa2z5d4sa\"><\/a>3. Create test cases for recursive self-improvement<\/h2>\n<\/div><\/div>\n<p>As LLM model capabilities get better and better, I\u2019m often surprised at how good frontier models are at very specific tasks, even without any concrete direction or examples provided. Sometimes, convoluted skill files are actually inferior to giving the model a single-sentence prompt and getting out of its&nbsp;way.<\/p>\n<p>We\u2019ve been using Anthropic\u2019s skill-creator skill to test and improve our workflow. <a href=\"https:\/\/github.com\/anthropics\/skills\/tree\/main\/skills\/skill-creator\">The skill<\/a> tests each stage of the process, generating outlines, research primers and drafts both with and without the guidance provided in our custom skill&nbsp;files.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1350\" height=\"918\" class=\"wp-image-196564\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-6.jpg\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-6.jpg 1350w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-6-625x425.jpg 625w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-6-768x522.jpg 768w\" sizes=\"auto, (max-width: 1350px) 100vw, 1350px\"><\/p>\n<p>The LLM reviews the outputs and makes suggestions for how to improve the skill file for more consistent results.<\/p>\n<p>It\u2019s easy for skill files to become long and bloated, and in doing so, make it less likely that their guidance will be correctly applied by the LLM. This process allows me to continually shorten skills to their most effective essence, and remove skills that don\u2019t have any real bearing on my desired output.<\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"4. Give LLMs great data from great sources\" data-section=\"four\">\n<h2>4. <a id=\"post-196558-_9ocrnrf39s2w\"><\/a>Give LLMs great data from great sources<\/h2>\n<\/div><\/div>\n<p>This process is only possible because Claude has access to the <a href=\"https:\/\/docs.ahrefs.com\/mcp\/docs\/introduction\">Ahrefs MCP<\/a>.<\/p>\n<p>Instead of hallucinating fake SEO data, Claude can pull keyword metrics, parent topic, and long-tail keyword variations for every article, straight from Ahrefs.<\/p>\n<p>It uses the questions report to surface commonly asked questions and groups them into themes, and it retrieves the SERP overview to understand the dominant search intent and what type of content is ranking.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1509\" height=\"2048\" class=\"wp-image-196565\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-7.png\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-7.png 1509w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-7-313x425.png 313w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-7-768x1042.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-7-1132x1536.png 1132w\" sizes=\"auto, (max-width: 1509px) 100vw, 1509px\"><\/p>\n<p>As well as great SEO data, my skill files also include specific instructions to use other important data sources, like:<\/p>\n<ul>\n<li><strong>Competitor data:<\/strong> key topics, headers and content gaps are extracted from top-ranking articles on the same keyword.<\/li>\n<li><strong>Deep research:<\/strong> trusted news and research sources are reviewed for recent information on the target keyword.<\/li>\n<li><strong>Product features:<\/strong> the LLM has access to an overview of every Ahrefs product and feature, saved in a Markdown document, along with their most important use&nbsp;cases.<\/li>\n<\/ul>\n<p>By default, LLMs are very convincing bloviators: they can generate content that sounds coherent, without containing any concrete data or substance. Mandating specific data sources to use is key to getting great results.<\/p>\n<div class=\"recommendation\"><div class=\"recommendation-title\">Get Ahrefs data in your AI&nbsp;tools<\/div><div class=\"recommendation-content\">\n<p>The Ahrefs API and MCP are now available in all paid plans from Lite and above, so it\u2019s easier than ever to get world-class Ahrefs SEO and AEO data in your dashboard, application or content workflow.<\/p>\n<p>Need some inspiration to get started? Read this: <a href=\"https:\/\/ahrefs.com\/blog\/mcp-use-cases\/\">15 Ahrefs MCP Use Cases for SEOs &amp; Digital Marketers<\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"543\" class=\"wp-image-196566\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-8.png\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-8.png 800w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-8-626x425.png 626w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-8-768x521.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\"><\/p>\n<\/div><\/div>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"5. Front-load human directions\" data-section=\"five\">\n<h2>5. <a id=\"post-196558-_x7engcy4xi2v\"><\/a>Front-load human direction<\/h2>\n<\/div><\/div>\n<p>A big part of our previous AI content process was front-loading human input. My thesis is that small amounts of expert direction provided at the <em>start <\/em>of the content creation process are vastly more effective than lots of human editing at the&nbsp;end.<\/p>\n<p>I wanted to allow for this direction without requiring a full-blown content brief to be created, so I added a context parameter to the <code>blog-pipeline<\/code> skill that allows the user to provide context to guide the content creation process.<\/p>\n<p>If you want to generate an article about \u201ccontent gap analysis\u201d, you can add high-level direction like&nbsp;this:<\/p>\n<blockquote><p><em>\u201cTake a \u2018steal your competitors\u2019 best content\u2019 angle, feature Keywords Explorer\u2019s Content Gap tool heavily, and include a section on finding quick-win keywords your competitors rank for but you don\u2019t.\u201d<\/em><\/p><\/blockquote>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"880\" class=\"wp-image-196567\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-9.jpg\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-9.jpg 1200w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-9-580x425.jpg 580w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-9-768x563.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\"><\/p>\n<p>I use this to mention specific sub-topics to cover, overarching angles and sentiments to shape the article, and specific product features to mention. This context is saved to a dedicated file and used as a reference in the drafting skill.<\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"6. Build interactive previews for review and editing\" data-section=\"six\">\n<h2>6<a id=\"post-196558-_tj26kvc7sa1t\"><\/a>. Build interactive previews for review and editing<\/h2>\n<\/div><\/div>\n<p>I read every word of every article that makes its way onto the Ahrefs blog. Reading Markdown files in VS Code isn\u2019t my idea of a good time, so I use a simple skill that turns each generated article into a Ahrefs-style HTML preview that opens automatically in Chrome.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1948\" height=\"1638\" class=\"wp-image-196568\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-10.png\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-10.png 1948w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-10-505x425.png 505w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-10-768x646.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-10-1536x1292.png 1536w\" sizes=\"auto, (max-width: 1948px) 100vw, 1948px\"><\/p>\n<div class=\"sidenote\"><div class=\"sidenote-title\">Sidenote.<\/div> As you can see in the image above, blog post images are not a solved problem, yet\u2014I\u2019m currently experimenting with skills to trigger a headless browser that can navigate to specific Ahrefs reports, take screenshots, annotate them, and insert them into the article draft.<\/div>\n<p>I\u2019m also experimenting with interactive previews that allow me to accept or decline updates to existing content, and leave in-line comments for Claude to action. At this point, we\u2019re straying into fully-fledged application territory, so stay tuned for the v3 of my content process.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1185\" class=\"wp-image-196569\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-11.jpg\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-11.jpg 2048w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-11-680x393.jpg 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-11-768x444.jpg 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-11-1536x889.jpg 1536w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\"><\/p>\n<p>When I\u2019m happy with the article draft and ready to upload and add images, I trigger a final skill that formats the article with all the correct tables and shortcodes we&nbsp;need.<\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"7. Fork and personalise\" data-section=\"seven\">\n<h2>7<a id=\"post-196558-_ld857wghfvzy\"><\/a>. Fork and personalise<\/h2>\n<\/div><\/div>\n<p>This content process is built to my personal specifications. It references my favourite articles to shape each articles tone and style. It prioritises my favorite data sources. And most importantly, it\u2019s built to mirror my writing process, approaching content creation in a way that matches how my brain operates.<\/p>\n<p>But there is no \u201cbest\u201d way to create content. Even on the Ahrefs blog team, there are a wealth of different styles, preferences and workflows that shapes how content gets&nbsp;made.<\/p>\n<p>I want our AI content processes to reflect all our idiosyncrasies, so I encouraged the team to fork this repo and use Claude Code to modify it to their unique specifications, adding and removing steps of the process, changing the data sources and reports it uses, and learning from the style and voice of their own best articles.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1377\" class=\"wp-image-196570\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-12.jpg\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-12.jpg 2048w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-12-632x425.jpg 632w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-12-768x516.jpg 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-12-1536x1033.jpg 1536w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\"><\/p>\n<p>The goal is for everyone on the team to have their own personalised content copilot, able to work to their specifications and play to their strengths.<\/p>\n<h2><a id=\"post-196558-_9tv0ji8dc48j\"><\/a>The future<\/h2>\n<p>If you follow the Ahrefs blog, I\u2019d wager that you haven\u2019t noticed any major changes, despite the fact that we\u2019ve been using generative AI to help with more and more of our&nbsp;work.<\/p>\n<p>That\u2019s because we\u2019re not using AI to \u201cscale our output\u201d and publish thousands of articles, and we\u2019re not making trade-offs by substituting quality for speed. Instead, we\u2019re using it to automate the most formulaic parts of work, and only in those situations where AI can do the job as well as, or even better than, a skilled human&nbsp;could.<\/p>\n<p>AI is helping us to fill content gaps and update our evergreen library of search content. In the meantime, the Ahrefs blog team can use our energy in other ways: conducting research and writing thought leadership, hosting webinars and giving in-person talks, and building systems to further automate the most tedious parts of our&nbsp;lives.<\/p>\n<p>For all the fear-mongering around AI and content creation, this is a lot of&nbsp;fun.<\/p>\n<p><em>P.S. I\u2019m already building version three of this content system, and it\u2019s something you can use too. <a href=\"https:\/\/ahrefs.com\/agent-a\">Join this waitlist<\/a> to get early access.<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1657\" class=\"wp-image-196571\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-13.jpg\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-13.jpg 2048w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-13-525x425.jpg 525w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-13-768x621.jpg 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-13-1536x1243.jpg 1536w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\"><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Back in August 2025, I shared the AI content process I had developed for the Ahrefs blog. It used ChatGPT projects and custom GPTs to speed up certain types of content creation from several days to a couple of hours,<span class=\"ellipsis\">\u2026<\/span><\/p>\n<div class=\"read-more\">Read more \u203a<\/div>\n<p><!-- end of .read-more --><\/p>\n","protected":false},"author":194,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[469,73,335],"tags":[],"coauthors":[457],"class_list":["post-196558","post","type-post","status-publish","format-standard","hentry","category-ai-search","category-content-marketing","category-general-seo","odd"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How I Do Content Engineering with Claude Code<\/title>\n<meta name=\"description\" content=\"Here\u2019s how I built a high-quality content automation system for the Ahrefs blog using Claude Code and 23 skill files.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How I Do Content Engineering with Claude Code\" \/>\n<meta property=\"og:description\" content=\"Here\u2019s how I built a high-quality content automation system for the Ahrefs blog using Claude Code and 23 skill files.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/\" \/>\n<meta property=\"og:site_name\" content=\"SEO Blog by Ahrefs\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Ahrefs\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-28T13:00:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-28T13:26:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1370\" \/>\n\t<meta property=\"og:image:height\" content=\"486\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ryan Law\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@thinking_slow\" \/>\n<meta name=\"twitter:site\" content=\"@ahrefs\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/how-i-do-content-engineering-with-claude-code\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/how-i-do-content-engineering-with-claude-code\\\/\"},\"author\":{\"name\":\"Ryan Law\",\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/#\\\/schema\\\/person\\\/e63cf0d276886d0391667a066edafeda\"},\"headline\":\"How I Do Content Engineering with Claude Code\",\"datePublished\":\"2026-04-28T13:00:56+00:00\",\"dateModified\":\"2026-04-28T13:26:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/how-i-do-content-engineering-with-claude-code\\\/\"},\"wordCount\":2089,\"publisher\":{\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/how-i-do-content-engineering-with-claude-code\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/how-i-do-content-engineering-with-by-ryan-law-content-marketing.jpg\",\"articleSection\":[\"AI Search\",\"Content Marketing\",\"General SEO\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/how-i-do-content-engineering-with-claude-code\\\/\",\"url\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/how-i-do-content-engineering-with-claude-code\\\/\",\"name\":\"How I Do Content Engineering with Claude Code\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/how-i-do-content-engineering-with-claude-code\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/how-i-do-content-engineering-with-claude-code\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/word-image-196558-1.png\",\"datePublished\":\"2026-04-28T13:00:56+00:00\",\"dateModified\":\"2026-04-28T13:26:47+00:00\",\"description\":\"Here\u2019s how I built a high-quality content automation system for the Ahrefs blog using Claude Code and 23 skill files.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ahrefs.com\\\/blog\\\/how-i-do-content-engineering-with-claude-code\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/how-i-do-content-engineering-with-claude-code\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/word-image-196558-1.png\",\"contentUrl\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/word-image-196558-1.png\",\"width\":1370,\"height\":486},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/\",\"name\":\"SEO Blog by Ahrefs\",\"description\":\"Link Building Strategies &amp; SEO Tips\",\"publisher\":{\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/#organization\",\"name\":\"Ahrefs\",\"url\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/ahrefs-logo.png\",\"contentUrl\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/ahrefs-logo.png\",\"width\":2048,\"height\":768,\"caption\":\"Ahrefs\"},\"image\":{\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Ahrefs\\\/\",\"https:\\\/\\\/x.com\\\/ahrefs\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/ahrefs\\\/\",\"https:\\\/\\\/www.youtube.com\\\/c\\\/ahrefscom\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/#\\\/schema\\\/person\\\/e63cf0d276886d0391667a066edafeda\",\"name\":\"Ryan Law\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ryan-law-pic.jpeg14222399d3ce9bff9501104131dfb0eb\",\"url\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ryan-law-pic.jpeg\",\"contentUrl\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ryan-law-pic.jpeg\",\"caption\":\"Ryan Law\"},\"description\":\"Ryan Law is the Director of Content Marketing at Ahrefs. Ryan has 13 years experience as a writer, content strategist, team lead, marketing director, VP, CMO, and agency founder. He's helped dozens of companies improve their content marketing and SEO, including Google, Zapier, GoDaddy, Clearbit, and Algolia. He's also a novelist and the creator of two content marketing courses.\",\"sameAs\":[\"https:\\\/\\\/ryanlaw.me\\\/\",\"https:\\\/\\\/uk.linkedin.com\\\/in\\\/thinkingslow\",\"https:\\\/\\\/x.com\\\/thinking_slow\"],\"url\":\"https:\\\/\\\/ahrefs.com\\\/blog\\\/author\\\/ryan-law\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How I Do Content Engineering with Claude Code","description":"Here\u2019s how I built a high-quality content automation system for the Ahrefs blog using Claude Code and 23 skill files.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/","og_locale":"en_US","og_type":"article","og_title":"How I Do Content Engineering with Claude Code","og_description":"Here\u2019s how I built a high-quality content automation system for the Ahrefs blog using Claude Code and 23 skill files.","og_url":"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/","og_site_name":"SEO Blog by Ahrefs","article_publisher":"https:\/\/www.facebook.com\/Ahrefs\/","article_published_time":"2026-04-28T13:00:56+00:00","article_modified_time":"2026-04-28T13:26:47+00:00","og_image":[{"width":1370,"height":486,"url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-1.png","type":"image\/png"}],"author":"Ryan Law","twitter_card":"summary_large_image","twitter_creator":"@thinking_slow","twitter_site":"@ahrefs","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/#article","isPartOf":{"@id":"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/"},"author":{"name":"Ryan Law","@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/e63cf0d276886d0391667a066edafeda"},"headline":"How I Do Content Engineering with Claude Code","datePublished":"2026-04-28T13:00:56+00:00","dateModified":"2026-04-28T13:26:47+00:00","mainEntityOfPage":{"@id":"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/"},"wordCount":2089,"publisher":{"@id":"https:\/\/ahrefs.com\/blog\/#organization"},"image":{"@id":"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/#primaryimage"},"thumbnailUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/how-i-do-content-engineering-with-by-ryan-law-content-marketing.jpg","articleSection":["AI Search","Content Marketing","General SEO"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/","url":"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/","name":"How I Do Content Engineering with Claude Code","isPartOf":{"@id":"https:\/\/ahrefs.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/#primaryimage"},"image":{"@id":"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/#primaryimage"},"thumbnailUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-1.png","datePublished":"2026-04-28T13:00:56+00:00","dateModified":"2026-04-28T13:26:47+00:00","description":"Here\u2019s how I built a high-quality content automation system for the Ahrefs blog using Claude Code and 23 skill files.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahrefs.com\/blog\/how-i-do-content-engineering-with-claude-code\/#primaryimage","url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-1.png","contentUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2026\/04\/word-image-196558-1.png","width":1370,"height":486},{"@type":"WebSite","@id":"https:\/\/ahrefs.com\/blog\/#website","url":"https:\/\/ahrefs.com\/blog\/","name":"SEO Blog by Ahrefs","description":"Link Building Strategies &amp; SEO Tips","publisher":{"@id":"https:\/\/ahrefs.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ahrefs.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ahrefs.com\/blog\/#organization","name":"Ahrefs","url":"https:\/\/ahrefs.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png","contentUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png","width":2048,"height":768,"caption":"Ahrefs"},"image":{"@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Ahrefs\/","https:\/\/x.com\/ahrefs","https:\/\/www.linkedin.com\/company\/ahrefs\/","https:\/\/www.youtube.com\/c\/ahrefscom"]},{"@type":"Person","@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/e63cf0d276886d0391667a066edafeda","name":"Ryan Law","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/10\/ryan-law-pic.jpeg14222399d3ce9bff9501104131dfb0eb","url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/10\/ryan-law-pic.jpeg","contentUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/10\/ryan-law-pic.jpeg","caption":"Ryan Law"},"description":"Ryan Law is the Director of Content Marketing at Ahrefs. Ryan has 13 years experience as a writer, content strategist, team lead, marketing director, VP, CMO, and agency founder. He's helped dozens of companies improve their content marketing and SEO, including Google, Zapier, GoDaddy, Clearbit, and Algolia. He's also a novelist and the creator of two content marketing courses.","sameAs":["https:\/\/ryanlaw.me\/","https:\/\/uk.linkedin.com\/in\/thinkingslow","https:\/\/x.com\/thinking_slow"],"url":"https:\/\/ahrefs.com\/blog\/author\/ryan-law\/"}]}},"as_json":null,"json_reviewers":[],"_links":{"self":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/posts\/196558","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/users\/194"}],"replies":[{"embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/comments?post=196558"}],"version-history":[{"count":9,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/posts\/196558\/revisions"}],"predecessor-version":[{"id":196603,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/posts\/196558\/revisions\/196603"}],"wp:attachment":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/media?parent=196558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/categories?post=196558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/tags?post=196558"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/coauthors?post=196558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}