Back to Alchemy
Alchemy RecipeIntermediateworkflow

SEO blog content pipeline with keyword research and optimisation

24 March 2026

Introduction

Building a consistent content pipeline for SEO is tedious work. You research keywords, write blog posts, then manually feed them into SEO optimisation tools to check readability, keyword density, and meta tags. Each step requires copying text between tabs, waiting for analysis to finish, and wrestling with different interfaces. By the time you've optimised your post, you've spent two hours on tasks that could run overnight.

The real bottleneck isn't writing quality content; it's the repetitive optimisation work that happens after. Most people either skip it entirely, rushing posts live without proper SEO checks, or they spend enormous amounts of time on tasks that don't require creativity. Neither option is sustainable if you're publishing regularly.

This workflow chains together three focused tools: Quick Creator for content generation, Squirrly SEO AI for keyword research and analysis, and TrollyAI for automated optimisation checks. Wire them together properly, and your blog pipeline becomes a production line. Write your outline, trigger the workflow, and wake up to fully optimised content ready for publication.

The Automated Workflow

Orchestration tool selection

For this workflow, I'd recommend n8n if you want something you can self-host and fully control, or Zapier if you prefer not to manage infrastructure. Make is a solid middle ground. I'll use n8n examples here because it handles conditional logic cleanly and the free tier is generous enough for this use case.

The workflow runs in five stages: keyword research, content generation, SEO analysis, readability optimisation, and storage. Each stage feeds into the next without manual intervention.

Stage 1: Keyword Research with Squirrly SEO AI

Start by triggering a webhook in n8n. This is where you send a simple JSON payload containing your blog topic and target audience. Squirrly's API returns keyword suggestions with volume, difficulty, and intent data.


POST /api/keywords/research HTTP/1.1
Host: api.squirrly.co
Authorization: Bearer YOUR_SQUIRRLY_API_KEY
Content-Type: application/json

{
  "topic": "sustainable packaging for ecommerce",
  "language": "en",
  "country": "GB",
  "limit": 10
}

The response gives you structured keyword data:


{
  "keywords": [
    {
      "keyword": "sustainable packaging materials",
      "volume": 2900,
      "difficulty": 45,
      "intent": "informational",
      "cpc": 1.23
    },
    {
      "keyword": "eco friendly shipping packaging",
      "volume": 1800,
      "difficulty": 38,
      "intent": "informational",
      "cpc": 0.87
    }
  ],
  "primary_keyword": "sustainable packaging materials",
  "related_topics": ["biodegradable packaging", "kraft paper packaging"]
}

Store these results in your n8n workflow as variables. You'll feed the primary keyword and related topics into the next stage.

Stage 2: Content Generation with Quick Creator

Quick Creator's API accepts a structured content brief and returns a drafted blog post. Pass it the primary keyword, related topics, and a tone specification.


POST /api/generate/blog-post HTTP/1.1
Host: api.quickcreator.io
Authorization: Bearer YOUR_QUICKCREATOR_API_KEY
Content-Type: application/json

{
  "title": "Sustainable Packaging Materials for Ecommerce Businesses",
  "primary_keyword": "sustainable packaging materials",
  "related_keywords": ["biodegradable packaging", "kraft paper packaging"],
  "word_count": 2000,
  "tone": "informative",
  "structure": "blog_post",
  "cta": "Contact us for a custom packaging quote"
}

Quick Creator returns a complete blog post with headings, sections, and internal link recommendations:


{
  "content": {
    "title": "Sustainable Packaging Materials for Ecommerce Businesses",
    "meta_description": "Learn about sustainable packaging options for ecommerce...",
    "body": "Sustainable packaging has become essential for modern ecommerce businesses...",
    "sections": [
      {
        "heading": "Why Sustainable Packaging Matters",
        "content": "..."
      }
    ],
    "internal_links": ["packaging-cost-calculator", "shipping-guide"],
    "word_count": 1987
  }
}

At this point in your n8n workflow, you have keyword research and a first draft. The next stages refine this content for actual SEO performance.

Stage 3: Analyse with Squirrly SEO AI

Feed the generated content back into Squirrly to check keyword placement, readability, and on-page SEO factors:


POST /api/analyse/content HTTP/1.1
Host: api.squirrly.co
Authorization: Bearer YOUR_SQUIRRLY_API_KEY
Content-Type: application/json

{
  "content": "Sustainable packaging has become essential for modern ecommerce businesses...",
  "title": "Sustainable Packaging Materials for Ecommerce Businesses",
  "meta_description": "Learn about sustainable packaging options for ecommerce...",
  "primary_keyword": "sustainable packaging materials",
  "target_url": "https://yourdomain.com/sustainable-packaging"
}

Squirrly returns an SEO score and specific recommendations:


{
  "seo_score": 72,
  "readability_score": 68,
  "keyword_density": {
    "primary_keyword": 1.2,
    "recommended": "1.5-2%"
  },
  "issues": [
    {
      "type": "keyword_placement",
      "severity": "medium",
      "message": "Primary keyword not in first 100 words",
      "suggestion": "Move keyword to opening paragraph"
    },
    {
      "type": "meta_description",
      "severity": "low",
      "message": "Meta description is 142 characters (target: 150-160)",
      "suggestion": "Add 8-18 characters to meta description"
    }
  ]
}

Stage 4: Optimise with TrollyAI

TrollyAI handles readability and tone optimisation. Pass the content and the issues from Squirrly:


POST /api/optimise/content HTTP/1.1
Host: api.trollyai.com
Authorization: Bearer YOUR_TROLLYAI_API_KEY
Content-Type: application/json

{
  "content": "Sustainable packaging has become essential for modern ecommerce businesses...",
  "optimisation_focus": ["readability", "keyword_integration", "engagement"],
  "target_audience": "ecommerce business owners",
  "min_sentence_length": 5,
  "max_sentence_length": 20,
  "passive_voice_limit": 15
}

TrollyAI returns the revised content with specific changes marked:


{
  "optimised_content": "Sustainable packaging matters for ecommerce. Modern businesses need it. Here's why...",
  "changes": [
    {
      "original": "Sustainable packaging has become essential for modern ecommerce businesses",
      "revised": "Sustainable packaging matters for ecommerce",
      "reason": "Shorter, punchier opening"
    }
  ],
  "readability_metrics": {
    "flesch_kincaid_grade": 7.2,
    "average_sentence_length": 12,
    "passive_voice_percentage": 8
  }
}

Stage 5: Store and Notify

In your n8n workflow, use the final HTTP node to send the optimised content to your content management system, Google Sheets for review, or a Slack notification. Here's a Slack example:


POST /api/chat.postMessage HTTP/1.1
Host: slack.com
Authorization: Bearer YOUR_SLACK_BOT_TOKEN
Content-Type: application/json

{
  "channel": "#content-pipeline",
  "text": "Blog post ready for review",
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*Sustainable Packaging Materials for Ecommerce Businesses*\nSEO Score: 72 | Readability: 8.2 Grade\nReady to publish"
      }
    }
  ]
}

Putting it together in n8n

Your n8n workflow should look like this:

  1. Webhook trigger (receives your blog topic)
  2. HTTP Request node calling Squirrly keyword research
  3. HTTP Request node calling Quick Creator with keyword data
  4. HTTP Request node feeding content back to Squirrly for analysis
  5. Conditional logic node checking if SEO score is above your threshold (e.g., 70)
  6. If above threshold: HTTP Request to TrollyAI for optimisation
  7. If below threshold: HTTP Request to Slack asking for manual review
  8. Final HTTP Request to send finished content to Google Docs or your CMS

Between each node, use n8n's "Set" nodes to map data from one API response to the next API request. For example, extract the primary keyword from Squirrly's response, then pass it to Quick Creator.

The Manual Alternative

If automation feels risky for content you're publishing under your name, there's a sensible middle ground. Run the workflow, but stop at stage 4. Have a human writer review TrollyAI's suggestions before publishing. This takes 15 minutes instead of two hours and still catches genuinely important issues.

Alternatively, treat the workflow as a quality checklist rather than a production tool. Generate your content manually, then run it through the automated analysis steps. This gives you the SEO data without surrendering control of the writing process.

Pro Tips

Rate limits and batching

Squirrly and Quick Creator both enforce rate limits. If you're publishing multiple posts daily, batch your requests. Run keyword research for three topics in the morning, let Quick Creator finish all three drafts, then run optimisation sequentially in the afternoon. n8n's scheduling features make this straightforward.

Error handling for API failures

APIs fail sometimes. Squirrly might timeout; Quick Creator might hit its concurrent request limit. Add a "retry" node in n8n after any external API call. Set it to retry once after 30 seconds. For critical failures, add an error handler that sends the request to a queue for manual processing later.

Cost optimisation

Quick Creator charges per generation, not per API call. Running 20 drafts to find the best one gets expensive quickly. Instead, write your own outline in 10 minutes, then let Quick Creator expand it. You'll use fewer generations and get more consistent results.

Testing before publication

Before you publish optimised content, spot-check it manually. Automated tools sometimes create awkward phrasings or miss context. Run the workflow on one article, review the output, then refine your instructions to the APIs. After three successful publishes, you'll have tuned the workflow enough to trust it.

Keyword clustering for series

If you're writing a series of related posts, adjust the workflow. Use one Squirrly keyword research call to pull 30 related keywords, then manually group them into clusters of 3-5 keywords per article. Feed each cluster to Quick Creator separately. This ensures your articles cover different angles without cannibalising each other's search rankings.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
Quick CreatorGrowth Plan£9950 generations per month; each blog post is one generation
Squirrly SEO AIBusiness Plan£79Unlimited keyword research and content analysis
TrollyAIPremium Plan£491,000 content optimisations per month
n8nSelf-hosted Free£0Run on your own server; alternative is Zapier at £29/month
Total£227Self-hosted; includes 50 blog posts per month

If you use Zapier instead of n8n, add £29 per month. If you need more Quick Creator generations (say, 100 per month), upgrade to their Pro Plan at £249 per month.

This workflow pays for itself if you publish more than 10 blog posts monthly that would otherwise require 2-3 hours of manual optimisation work each. At that volume, you're saving roughly 30 hours per month in repetitive work.