Skip to main content

Proofread markdown blog posts with Gemini, Groq fallback and GitHub auto-commit

Workflow preview

Workflow preview
100%
Proofread markdown blog posts with Gemini, Groq fallback and GitHub auto-commit preview
Open on n8n.io

1. Workflow Overview

Your personal editor that finds tone, grammar, and clarity issues in markdown, then fixes them and commits back to GitHub automatically. Stop manually proofreading markdown files. This workflow use...

Best for

  • Document Extraction automation workflows
  • AI Summarization automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.manualtrigger, n8n-nodes-base.if, n8n-nodes-base.github, n8n-nodes-base.code, @n8n/n8n-nodes-langchain.agent, @n8n/n8n-nodes-langchain.lmchatgooglegemini, @n8n/n8n-nodes-langchain.lmchatgroq, n8n-nodes-base.set

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Mychel Garzon.

Original n8n.io source

1.1 Workflow description

Title
Proofread markdown blog posts with Gemini, Groq fallback and GitHub auto-commit
Workflow name
Proofread markdown blog posts with Gemini, Groq fallback and GitHub auto-commit

Your personal editor that finds tone, grammar, and clarity issues in markdown, then fixes them and commits back to GitHub automatically.

Stop manually proofreading markdown files. This workflow uses two AI agents to review your blog posts, generate precise line-by-line fixes, and commit the edits back to GitHub automatically. You write, it checks.

This is not another "generate a blog post with AI" template. It does the opposite. You write the content, and the workflow checks it for you. Your writing style stays the same because the Editor Agent can only replace, insert, or delete specific lines. No full rewrites.

How the workflow works

The workflow runs in five stages:

  1. Fetch and prepare: The workflow pulls your markdown file from GitHub using the API. A code node decodes the base64 response and adds line numbers to every line. This gives the AI agents a coordinate system so they can point to exact locations instead of saying "somewhere in the introduction."
  2. QA review: The QA Agent reads the numbered content and looks for issues with tone, clarity, grammar, and structure. It returns a JSON array where each item has the line number, what is wrong, how severe it is, and a suggested fix.
  3. Severity filter: A filter node checks the results. Only high and medium severity issues move forward. Low severity issues show up in the report but do not trigger any edits.
  4. Edit generation: The Editor Agent takes the filtered issues and converts them into edit operations. Each operation is one of three types: replace, insert_after, or delete. A code node then sorts all operations from bottom to top. This is important because if you delete line 5, every line after it shifts up by one. Sorting from the bottom prevents that problem.
  5. Commit and report: If more than half the edits succeed, the workflow commits the updated file to GitHub. It also saves a QA report in a reports folder. If edits fail, the commit is skipped and a failure report is saved instead with next steps.

Benefits

Finds real issues, not nitpicks: The severity filter means your file only gets changed when something actually matters. • Keeps your writing style: Three allowed operations. Replace, insert, delete. That is it. No creative rewrites. • Line numbers solve the guessing problem: I added this after noticing the AI kept misidentifying where problems were in longer posts. • Edits do not break each other: The bottom-to-top sorting was the trick that took me a while to figure out. Without it, line numbers shift after every edit and the rest of the operations point to the wrong lines. • Fallback model included: If Gemini is down or rate-limited, the workflow falls back to Groq automatically. Both agent nodes also retry up to 3 times with a 5-second interval. • Reports for every run: Three report types committed to your repo: fixes applied, no issues found, or edits failed.

Target Audience

• Technical writers who keep documentation in GitHub • Content managers reviewing blog posts before publication • SEO specialists checking content quality across multiple markdown files • Dev teams that want automated content review similar to a PR review • Freelancers and bloggers who do not have an editor to proofread their work

Required APIs

Google Gemini API for the AI analysis (primary model) • Groq API as a fallback model if Gemini is unavailable (optional but recommended) • GitHub OAuth2 with repo scope so the workflow can read files and commit changes

Easy Customization

Swap the AI model: Replace the chat model sub-node with OpenAI, Anthropic, or any provider that handles JSON output. The prompts are model-agnostic. • Change the severity filter: Open the filter node and include low severity if you want more aggressive editing. • Point it at any file: The Config node at the start has your repo owner, repo name, and file path. Change those three values and it works on any markdown file in any repository. • Make it automatic: Replace the Manual Trigger with a GitHub Trigger node listening for push or pull_request events. Now it runs every time someone updates content. • Add notifications: Drop a Slack, Teams, or email node after the report step to get notified when the workflow finishes a review.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - When clicking ‘Execute workflow’

Type / Role
n8n-nodes-base.manualTrigger - manualTrigger
Config choices
Version 1

Block 2 - Has Issues?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 3 - Edits Applied?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 4 - Fetch Blog Post from GitHub

Type / Role
n8n-nodes-base.github - github
Config choices
Version 1.1

Block 5 - Decode Base64 & Add Line Numbers

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 6 - QA Agent - Analyze Content

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 3.1

Block 7 - QA Agent LLM

Type / Role
@n8n/n8n-nodes-langchain.lmChatGoogleGemini - lmChatGoogleGemini
Config choices
Version 1

Block 8 - Parse QA Issues JSON

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 9 - Editor Agent - Generate Edit Ops

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 3.1

Block 10 - Editor Agent LLM

Type / Role
@n8n/n8n-nodes-langchain.lmChatGoogleGemini - lmChatGoogleGemini
Config choices
Version 1

Block 11 - Parse Edit Operations JSON

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 12 - Apply Line-by-Line Edits

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 13 - Commit Updated File to GitHub

Type / Role
n8n-nodes-base.github - github
Config choices
Version 1

Block 14 - Format QA Report

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 15 - Save QA Report to GitHub

Type / Role
n8n-nodes-base.github - github
Config choices
Version 1.1

Block 16 - Save QA Report to GitHub Without Issues

Type / Role
n8n-nodes-base.github - github
Config choices
Version 1.1

Block 17 - Format Clean Report

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 18 - Format Failure Report

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 19 - Create a file

Type / Role
n8n-nodes-base.github - github
Config choices
Version 1.1

Block 20 - Fallback Chat Model

Type / Role
@n8n/n8n-nodes-langchain.lmChatGroq - lmChatGroq
Config choices
Version 1

Block 21 - Fallback Model

Type / Role
@n8n/n8n-nodes-langchain.lmChatGroq - lmChatGroq
Config choices
Version 1

Block 22 - Github Config

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 23 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 24 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Showing the first 24 of 28 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Proofread markdown blog posts with Gemini, Groq fallback and GitHub auto-commit
Complexity advanced
Nodes 28
Categories Document Extraction, AI Summarization
Author Mychel Garzon
Published 20 Mar 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/14207/14207.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Proofread markdown blog posts with Gemini, Groq fallback and GitHub auto-commit do?

Your personal editor that finds tone, grammar, and clarity issues in markdown, then fixes them and commits back to GitHub automatically. Stop manually proofreading markdown files. This workflow use...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Document Extraction, AI Summarization use case.