I Run an AI Agent That Updates My Blog Every Day. Here's How It Actually Works
Most AI agent demos are screenshots. This is not that.
This is a walkthrough of how Sol AI actually runs — a Python pipeline that fetches Hacker News every morning, picks the most relevant AI stories, generates three regional analysis posts, and pushes them to a Jekyll blog. All automatically. All on a budget.
The whole thing costs about $8 a month.
What it does
Every morning at 7am UK time, a script runs. It:
- Pulls the top 30 stories from Hacker News
- Filters for AI-related content using keyword matching
- Picks the best story and generates a regional analysis post (UK, EU, US angles)
- Adds a bloopers section
- Commits and pushes to GitHub Pages
That's it. No human in the loop. No "AI first drafts, human reviews." It just runs.
The data pipeline
The core script lives in a content-pipeline/ directory. Here's the structure:
content-pipeline/
run-daily.py ← the main runner
_data/ ← prompts, templates, region configs
logs/ ← run logs
run-daily.py does three things: fetch news, generate posts, publish.
# Fetch top HN stories
def fetch_hn_stories(limit=30):
req = urllib.request.Request(
"https://hacker-news.firebaseio.com/v0/topstories.json",
headers={"User-Agent": "SolAI/1.0"}
)
with urllib.request.urlopen(req, timeout=10) as r:
ids = json.loads(r.read())
# ... fetch each story, filter by AI keywords
The AI keyword filter is deliberately broad. "AI" catches 40% of HN. "LLM", "agent", "copilot", "ollama" narrow it down. The filter isn't clever — it's just a keyword list. Clever would be slower and more expensive.
The generation layer
After picking a story, the script generates a post. The prompt is region-specific:
PROMPTS = {
"uk": """Write a concise, engaging blog post analysing one significant AI development from the UK today.
Title format: "UK AI Weekly: [compelling headline]"
Requirements:
- 400-600 words
- Conversational tone (Sol AI voice — direct, honest, slightly wry)
- Start with a hook: what happened, why it matters
- Include a "What this means" section
- End with a one-sentence takeaway
- Do NOT use bullet points""",
# ... EU and US prompts follow the same structure
}
The prompt is the product. Everything else is plumbing.
The generation itself goes through MiniMax — a cheaper alternative to GPT-4 class models for this kind of content generation. The prompt, the story context, and a temperature of 0.7 gives enough randomness to not sound like a template while staying on voice.
The Jekyll integration
Posts are generated as Markdown files with frontmatter:
---
layout: post
title: "UK AI Weekly: Kimi K2.7 Takes the Wheel in GitHub Copilot"
date: 2026-07-02
description: "Kimi's K2.7 model is now available in GitHub Copilot — what that actually means for developers."
image: /images/sol-avatar.png
tags: [ai, uk, analysis, policy]
author: Sol AI
---
The script writes the file, commits it, and pushes. GitHub Pages picks it up automatically. No FTP, no build step, no manually updating an index.
What actually makes this work
The template is the secret. Not the LLM. The prompt and the fallback structure are what keep quality consistent. When MiniMax is down or the API key is missing, the script falls back to a region-specific template that still sounds like Sol. The LLM is an enhancement — the template is the product.
GitHub Pages is the deployment layer. CI/CD without the CI. Every commit is a deployment.
HN is the news source. Free, no auth, no rate limits worth mentioning, and the community is good enough at upvoting AI stories that the signal-to-noise ratio is reasonable.
What I got wrong initially
I burned tokens on OpenRouter. The first version of the pipeline fell back to OpenRouter if MiniMax failed — which it did every time Ollama wasn't running locally. Each run cost real money. Fixed: MiniMax only, template fallback.
I automated Dev.to posting. Posted too frequently, got flagged. Now: one post per day, manual, with a skill that enforces spacing rules.
I built launch agents for everything. Quick hits, Sol's Take, Tool Spotlight, Weekend Deep Dive — seven agents all firing on different schedules. Most never ran. Now: two agents, run-daily and midweek-news. Quality over quantity.
The actual cost
| Service | Monthly cost |
|---|---|
| MiniMax API | ~$3-5 for ~200 post generations |
| GitHub Pages | Free |
| Domain | £10/year |
That's it. The whole thing runs on a Mac Mini in a cupboard.
What to take from this
You don't need a sophisticated architecture to run an AI agent in production. You need:
- A clear pipeline (fetch → generate → publish)
- A prompt that encodes your voice
- A fallback that doesn't embarrass you
- A deployment mechanism that doesn't require attention
The sophistication is in the prompt, not the code. The code is 300 lines. The prompt is the product.
Originally published on Sol AI.
Top comments (0)