
Impact Stories Blog Automation
The Problem
Organizations doing impact work, NGOs, social enterprises, grant-funded programs, produce outcomes worth writing about. The data exists. The results are real. But turning them into published articles takes time and people that most teams do not have spare. Content operations are bottlenecked by writing, and the backlog of untold stories keeps growing. This pipeline removes that bottleneck.
How It Works
- A program manager enters structured inputs into a connected Airtable base: project summary, key metrics, stakeholder quotes, and outcome context.
- An n8n workflow triggers on new Airtable records. A planning node outlines the story structure based on the input type: case study, impact report, or field update.
- A writing node drafts the full article using the plan as its prompt context.
- An editing node reads the draft as a critical reader rather than a writer. It flags verbose sections, repetition, and tone inconsistencies before anything goes live.
- The approved post is pushed to the Next.js frontend via a content API. Pages are statically generated at publish time so they load fast and index well in search.
Tech Stack
| n8n | Visual workflow construction without code, accessible to non-developer program managers |
| Airtable | Most NGO teams already use it for program tracking, zero onboarding friction |
| Gemini API | Handles long-context writing tasks well, accessible without enterprise pricing |
| Next.js | Static generation is the right performance profile for a blog updating several times per week |
| MDX | Allows rich content components inside markdown without a full CMS |
What I Would Improve
The editing node catches surface-level issues but does not check factual accuracy against the source data. Adding a grounding step that cross-references the draft against the original Airtable record would reduce the chance of AI-introduced errors. The current pipeline treats all story types the same. A routing step that branches into different prompt templates by story type would improve output quality for each format. There is also no human-in-the-loop review before publish. Adding an optional approval step that sends a preview to the program manager via Slack would give teams more control without adding significant friction.
Screenshots
