Skip to content

How I built an AI marketing bot that creates a week of social media posts in 5 minutes

Why I automated social media posts

For one client (Luigi's, an Italian restaurant at Helsinki Airport), weekly social media posting took roughly 2 hours:

  • Browse the image library and pick photos (15 min)
  • Write English posts (30 min)
  • Resize images for Instagram (15 min)
  • Log into Buffer and create drafts (20 min)
  • Double-check hashtags, times, both locations (10 min)

This repeated every single week. I decided to automate the entire chain.

The architecture

Here's the pipeline I built:

Nextcloud (images) → Ollama/qwen3-vl (GPU vision) → DeepSeek V4 Pro (text) → Buffer (publishing)

1. Images in Nextcloud

Customer photos sync automatically to Nextcloud. The Hermes agent reads the folder contents via WebDAV.

2. Local GPU vision

A Qwen3-VL model (8.8B parameters, Q8_0 quantization) analyzes images locally on an RTX 4070 Ti SUPER GPU. Each image takes ~15 seconds. The model correctly identifies food, mood, colors, and details, even from Finnish-language advertising images.

3. Text generation

DeepSeek V4 Pro writes a complete social media post from the vision output. The text follows the brand's style (in Luigi's case: casual, energetic, English). Posts are 100-130 words, include both restaurant locations, opening hours, and hashtags.

4. Buffer drafts

Hermes creates a Nextcloud public share link for the image and sends it with the text to Buffer's GraphQL API. Both a Facebook draft (text only) and an Instagram draft (text + image) are created automatically. Posts are scheduled Monday through Friday at different times.

5. Reporting

Once complete, Hermes sends a report to Discord: how many posts created, for which days, and a link to Buffer. If anything fails, you get an immediate notification.

The entire pipeline runs as a cron job every Monday at 9:00 AM.

Cost comparison

The actual cost of creating one social media post with different methods:

MethodVisionTextPer PostWeekly (5 posts)
Local AIFree (own GPU)DeepSeek API ~$0.001~$0.001~$0.005
Gemini API~$0.002 (Flash 2.5)DeepSeek API ~$0.001~$0.003~$0.015
Fully Manual$0$0~24 min work~2 h work

Local image analysis has no API charge. Gemini Flash is a fallback if you don't have a GPU. At the table's estimated rate, it costs $0.015/week, or $0.78/year.

DeepSeek V4 Pro's API is so affordable ($0.14/million tokens) that I estimate the text cost for five posts at about $0.005.

Build your own

You'll need:

  • Hermes agent installed on a server (Linux, running 24/7)
  • Ollama + a quantized vision model (qwen3-vl:8b)
  • GPU with at least 10 GB VRAM, or a Gemini API key
  • Buffer account (free tier works for 3 channels)
  • Nextcloud or another image library

Option 1: With a local GPU

## 1. Install Ollama
curl -fsSL https://ollama.com/install.sh | sh

## 2. Pull the vision model (9.8 GB)
ollama pull qwen3-vl:8b-instruct-q8_0

## 3. Expose Ollama to the network (if Hermes is on a different machine)
## /etc/systemd/system/ollama.service:
Environment="OLLAMA_HOST=0.0.0.0:11434"

Option 2: With Gemini API (no GPU required)

## Hermes config.yaml
auxiliary:
  vision:
    provider: google
    model: google/gemini-2.5-flash

Gemini 2.5 Flash costs $0.02/image (1500px). At that rate, five images per week cost $0.10.

Creating the Cron Job in Hermes:

Hermes's cron system triggers the automation every Monday at 9 AM. The prompt defines the entire workflow: where to fetch images, how vision analysis works, what style to use for posts, and where to send them. The result is five social media drafts for Facebook and Instagram. A person still needs to review them.

What I learned

Building the pipeline took about an hour. The cost and quality of local AI surprised me. In my tests, Qwen3-VL's 8.8B parameter model analysed food photos about as well as the commercial APIs. Image analysis has no separate API charge.

Many small business owners pay $20-50/month for social media tools, when the same work can be done with open-source tools and a single API key. I estimate API costs for this system at under $1/year and time savings at 100 hours. This estimate is not a calculation of total running costs.

Qwen3-VL read Finnish-language offer texts from advertising images without issues.

Next, video and multilingual posts

Automating image screening, text formatting, and scheduling leaves more time for marketing planning, client relationships, and reviewing content.

This same architecture scales to multiple clients. Each brand gets its own Nextcloud folder, its own cron job, and different Buffer channel IDs. The rest of the pipeline stays the same.

Next up: testing automated video content production and multilingual posts.

← Blog