The Problem

Keyword research is where most niche sites quietly stall.

Not because it’s hard.
Because it’s just slow enough to avoid - and vague enough to do poorly.

You open a tool, type something like “backyard fire pit,” and suddenly you have:

  • hundreds of keywords

  • no clear direction

  • no idea what’s actually worth writing

So you either:

  • overthink it

  • or pick randomly

Neither works.

What I Built

This week I built an AI agent to handle the first step of the system: finding usable keywords automatically.

At a high level, it:

  • pulls seed keywords from a Google Sheet

  • expands them using DataForSEO

  • sends them to Claude for idea generation

  • cleans the output

  • appends everything back into a structured sheet

  • sends me a Slack message when it’s done

The goal wasn’t perfection.

It was:

remove the friction of getting started

The Workflow

Here’s the actual workflow running in n8n:

How it runs (simple version)

  1. Trigger runs on a schedule

  2. Pulls seed keywords from a Google Sheet

  3. Sends them to DataForSEO for expansion

  4. Extracts keyword data

  5. Sends to Claude to generate additional ideas and angles

  6. Parses and cleans the response

  7. Appends results back into the sheet

  8. Sends a Slack notification when complete

Nothing fancy. Just connected steps.

What Actually Happened

I ran this on a small set of backyard-related seed keywords.

It generated:

  • ~100 keyword ideas per run

  • a mix of obvious and unexpected angles

  • Ranked them according to monthly volume, difficulty, content type, content quality, reason for being chosen and a few other metrics

About 85–90% were usable without changes.

What surprised me

It didn’t just expand keywords.

It started generating:

  • specific use cases

  • constraint-based queries

  • angles I wouldn’t have typed manually

Example:

Instead of:

“fire pit ideas”

It generated:

“fire pit ideas for small patios under $300”

That’s where it became useful.

What didn’t work

Some outputs were:

  • too generic

  • repetitive

  • slightly off-topic

Left alone, it creates noise.

What I Changed

After the first run, I made a few adjustments:

  • tightened the Claude prompt to force specificity

  • filtered out repeated patterns

  • added basic cleanup in the parsing step

That improved signal pretty quickly.

Still not perfect—but much better.

Where This Fits

This is now step one of the system:

Research → Brief → Write → Publish → Link → Grow

If the input is weak, everything downstream is weaker.

The Output

Here’s what the output actually looks like:

You end up with:

  • structured keyword ideas

  • usable angles

  • enough volume to start writing immediately

The Template

If you want to replicate this:

Inputs

  • Google Sheet (seed keywords)

  • DataForSEO API

  • Claude API

  • n8n

Core Logic

  1. Expand keywords

  2. Generate angles

  3. Clean output

  4. Store results

  5. Notify completion

Bottom Line

This isn’t perfect.

It still needs filtering.
It still produces some noise.

But it removes the hardest part:

starting

And that’s enough for now.

Next Week

Next, I’m turning these keywords into structured content briefs.

That’s where this starts becoming a real system.

I’m building this nights and weekends—between a full-time job and two kids under 3—to see how far AI agents can actually go in the real world.

Keep Reading