Skip to content

How to Use Claude AI for SEO and Content Automation

Problem

I needed to create SEO content for my business, but the process was eating up my time.

Here’s what a single blog post required:

  • Keyword research: 30-60 minutes
  • Writing 2000 words optimized for SEO: 2-3 hours
  • Local SEO targeting for multiple cities: Multiply everything

I run a service business targeting three cities. That means I need content for each location. A single topic becomes three articles, each needing local keywords and context. I was spending more time writing than actually running my business.

I tried hiring content writers. The results were mixed. Some wrote good content but missed SEO requirements. Others stuffed keywords so awkwardly that the content read like spam. None of them understood my industry well enough to write authoritatively.

I had zero coding experience. Building automation seemed impossible.

Discovery

Then I found a Reddit thread where someone described exactly what I needed. A user named DrSamballer shared their experience:

“I set up a whole SEO auditing system for targeted keywords in my industry for the specific cities I service, an automatic SEO enriched blog creator for my website.”

When asked for details about the blog creator:

“It makes actually really informative SEO enriched in key terms (which means it’s using optimized keywords that I want to be seen when people google them) blogs on my site. It researches a topic regarding the keywords and creates a 1900-2200 word blog about that.”

The key detail that caught my attention: “I have no idea how to code.”

If they could build this without coding experience, I could too.

DrSamballer also mentioned using “command - plan - ship pipelines” as their workflow pattern. This became the foundation for my approach.

Building the Pipeline

I started by understanding what I actually needed:

  1. Keyword research: Find keywords my customers search for
  2. SEO auditing: Check how my site ranks for those keywords
  3. Content generation: Write optimized blog posts automatically

Step 1: Defining the Keywords

First, I listed my target keywords and cities:

keywords.py
# My service keywords
KEYWORDS = [
"plumbing services",
"emergency plumber",
"water heater repair",
"drain cleaning",
"leak detection"
]
# Cities I service
CITIES = [
"Austin, TX",
"Houston, TX",
"Dallas, TX"
]
# Generate local keywords
local_keywords = []
for keyword in KEYWORDS:
for city in CITIES:
local_keywords.append(f"{keyword} in {city}")
print(f"Total keywords: {len(local_keywords)}")
# Output: Total keywords: 15

This gave me 15 target keyword combinations. Each needs content.

Step 2: The Command-Plan-Ship Structure

I learned the command-plan-ship pattern from the Reddit thread. Here’s how I adapted it:

Command: Tell Claude what I want (a blog post about “plumbing services in Austin, TX”)

Plan: Claude researches the topic, finds related keywords, creates an outline

Ship: Claude generates the full 1900-2200 word article with SEO optimization

I broke this down into prompts:

command-phase.txt
I need a blog post targeting the keyword: "plumbing services in Austin, TX"
Requirements:
- Word count: 1900-2200 words
- Include local context for Austin
- Target search intent: someone looking for a plumber
- Primary keyword density: 2-3%

Claude then enters the Plan phase:

plan-phase.txt
[CLAUDE'S PLANNING OUTPUT]
Topic: Plumbing Services in Austin, TX
Target Audience: Austin homeowners with plumbing issues
Related keywords to include:
- Austin plumber
- emergency plumbing Austin
- licensed plumber Texas
- plumbing repair near me
- Austin plumbing company
Outline:
1. Introduction - Common plumbing issues in Austin homes
2. Why You Need Professional Plumbing Services
3. Types of Plumbing Services Available in Austin
4. How to Choose the Right Plumber in Austin
5. Emergency Plumbing: What to Do Before Help Arrives
6. Cost Considerations for Austin Plumbing Services
7. Conclusion - Finding Reliable Plumbing Help
Search Intent Analysis:
The user is likely experiencing a plumbing problem and needs immediate help or is researching for future reference.

Then the Ship phase generates the full article.

Step 3: Automating with Claude

I created a reusable prompt template:

seo-blog-prompt.md
You are an SEO content specialist. Create a 1900-2200 word blog post about:
{topic}
Requirements:
- Primary keyword: {primary_keyword} (use naturally 15-20 times)
- Related keywords to include: {related_keywords}
- Target location: {location} (include in title and H1)
- Structure: Introduction, 4-5 H2 sections, Conclusion
- Include practical examples and actionable tips
- Write for search intent: {search_intent}
Formatting rules:
- Use the primary keyword in the first paragraph
- Include primary keyword in at least 2 H2 headings
- Add related keywords naturally throughout
- Include local references and context
- End with a clear call to action

For each keyword, I fill in the template:

generate.py
def generate_blog_prompt(keyword, location):
related = get_related_keywords(keyword) # Claude helps here
intent = analyze_search_intent(keyword) # Claude helps here too
return f"""
You are an SEO content specialist. Create a 1900-2200 word blog post about:
{keyword}
Requirements:
- Primary keyword: {keyword} (use naturally 15-20 times)
- Related keywords to include: {', '.join(related)}
- Target location: {location} (include in title and H1)
- Structure: Introduction, 4-5 H2 sections, Conclusion
- Include practical examples and actionable tips
- Write for search intent: {intent}
Formatting rules:
- Use the primary keyword in the first paragraph
- Include primary keyword in at least 2 H2 headings
- Add related keywords naturally throughout
- Include local references and context
- End with a clear call to action
"""
# Example usage
prompt = generate_blog_prompt(
keyword="plumbing services",
location="Austin, TX"
)

Step 4: The SEO Auditing System

Beyond content creation, I wanted to track how my keywords performed. I built an auditing workflow:

audit-workflow.py
def audit_local_seo(keywords, cities):
"""
Automated SEO audit for local keyword targeting
"""
audit_results = []
for city in cities:
for keyword in keywords:
local_keyword = f"{keyword} in {city}"
audit = {
"keyword": local_keyword,
"current_ranking": check_ranking(local_keyword),
"search_volume": get_search_volume(local_keyword),
"competition": analyze_competition(local_keyword),
"content_gaps": identify_content_gaps(local_keyword),
"recommendations": generate_seo_recommendations(
local_keyword,
city
)
}
audit_results.append(audit)
return generate_audit_report(audit_results)

Claude helped me understand what each function should do. I couldn’t write the code myself, but I could describe what I wanted:

audit-prompt.txt
I want to check my SEO rankings for local keywords.
For each keyword + city combination:
1. Check my current Google ranking position
2. Check monthly search volume
3. Analyze top 3 competitors
4. Identify what content I'm missing
5. Generate recommendations
Output a report showing:
- Keywords where I rank on page 1
- Keywords where I need improvement
- Content I should create next

What I Learned

I made several mistakes along the way.

Mistake 1: Skipping the research phase

At first, I tried to generate articles without letting Claude research first. The results were generic. When I added a planning phase where Claude could research and create an outline, the quality improved significantly.

Mistake 2: Over-optimizing keywords

I initially asked for 5% keyword density. The articles read like spam. I reduced to 2% (about 20 mentions in a 2000-word article) and the content became readable while still optimized.

Mistake 3: Not reviewing generated content

I published articles directly without review. Some had factual errors about plumbing. Now I spend 10 minutes reviewing each article for accuracy before publishing.

Mistake 4: Ignoring local context

Generic content doesn’t rank well for local searches. Adding Austin-specific references (local building codes, climate considerations, common issues in older Austin homes) improved my local rankings.

Results

After three months of using this system:

  • Created 45 location-specific blog posts
  • Each post took about 15 minutes of my time (prompt + review)
  • Organic traffic increased 127%
  • Local keyword rankings improved significantly

The system works because Claude handles the heavy lifting. I provide the keywords and locations. Claude researches, plans, and writes. I review and publish.

Getting Started

If you want to build something similar, start simple:

  1. List your target keywords - What do your customers search for?

  2. Define your locations - What cities or regions do you serve?

  3. Create your first prompt - Use the template I shared above

  4. Iterate on the output - Review the first article, refine your prompt, try again

  5. Scale gradually - Once you’re happy with the quality, generate more content

You don’t need coding experience. Claude can help you build the prompts and workflows. Just describe what you want in plain language.

Final Words + More Resources

My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!

Comments