Back to Templates

Automated Blog Generation with Gemini AI, GitHub & Jekyll Publishing

Last update

Last update 2 days ago

Share


📝 Use Case

This n8n workflow automates the creation and publication of technical blog posts based on a list of topics stored in Google Sheets. It fetches context using Tavily and Wikipedia, generates Markdown-formatted content with Gemini AI, commits it to a GitHub repository, and updates a Jekyll-powered blog — all without manual intervention.

Ideal for developers, bloggers, or content teams who want to streamline technical content creation and publishing.


⚙️ Setup Instructions

🔑 Prerequisites

  • n8n (cloud or self-hosted)
  • Tavily API key
  • Google Sheets with blog topics
  • Gemini (Google Palm) API key
  • GitHub repository (Jekyll enabled)
  • GitHub OAuth2 credentials
  • Google OAuth2 credentials

🧩 Setup Steps

  1. Import the workflow JSON into your n8n instance.
  2. Set up the following credentials in n8n:
    • Tavily API
    • Google Sheets OAuth2
    • Google Palm/Gemini AI
    • GitHub OAuth2
  3. Prepare your Google Sheet:
    • Columns: Title, status, row_number
    • Set status to blank for topics to be picked up.
  4. Configure:
    • GitHub repo and _posts/ path
    • Jekyll setup (front matter, _config.yml, GitHub Pages)
  5. Adjust prompt/custom parameters if needed.
  6. Enable and deploy the workflow. Schedule it daily or trigger manually.

🔄 Workflow Details

Node Function
Schedule Trigger Triggers the flow at a set interval
Google Sheets (Get Topic) Fetches the next incomplete blog topic
Extract Topic Parses topic text from the sheet
Tavily Search Gathers up-to-date content related to the topic
Wikipedia Tool Optionally adds more context or images
Summarize Results Formats the context for the AI
Gemini AI Agent (LangChain) Generates a Markdown blog post with YAML front matter
Set File Parameters Prepares the filename, content, and commit message
GitHub Commit Uploads the .md file to the _posts/ directory
Update Google Sheet Marks topic as done after successful commit

🛠️ Customization Options

  • Change LLM prompt (e.g. tone, depth, format).
  • Use OpenAI instead of Gemini by switching nodes.
  • Modify filename pattern or GitHub repo path.
  • Add Slack/Discord notifications after publish.
  • Extend flow to upload images or embed YouTube links.

⚠️ Community Nodes Used

This workflow uses the following community nodes:

  • @tavily/n8n-nodes-tavily.tavily – for deep search

⚠️ Ensure these are installed and enabled in your n8n instance.


💡 Pro Tips

  • Use GitHub Actions to trigger an automatic Jekyll build post-commit.
  • Structure blog posts with front matter, headings, and table of contents for SEO.
  • Set Schedule Trigger to daily at a fixed time to keep content flowing.
  • Enhance formatting in AI output using code blocks, images, and lists.

✅ Example Output

---
title: "How LLMs Are Changing Web Development"
date: "2025-07-25"
categories: [webdev, AI]
tags: [LLM, Gemini, n8n, automation]
excerpt: "Learn how LLMs like Gemini are transforming how we generate and deploy developer content."
author: "Saswat Saubhagya"
---

## Table of Contents
- [Introduction](#introduction)
- [Understanding LLMs](#understanding-llms)
- [Use Cases in Web Development](#use-cases-in-web-development)
- [Challenges](#challenges)
- [Conclusion](#conclusion)

...