I built a $0/month automation stack using GitHub Actions free tier

Published: (February 2, 2026 at 10:01 PM EST)
3 min read
Source: Dev.to

Source: Dev.to

Igor Ganapolsky

I built a $0/month automation stack using GitHub Actions (free tier)

After being rejected from 21 job applications, I decided to build passive income instead.
Three months later I have 6 automation workflows running 24/7 that cost me exactly $0/month.

Below is the complete technical breakdown.

The Problem

I needed automation for:

  • Market scanning – checking prices across platforms
  • Deal alerts – instant notifications when opportunities appear
  • Lead monitoring – 24/7 inbox watching
  • Data aggregation – combining info from multiple sources

Traditional solutions

ServiceCost (monthly)Cost (yearly)
Zapier$19.99$240
n8n Cloud$20.00$240
AWS Lambda + EventBridge≈ $20≈ $240

My solution

GitHub Actions (free tier) = $0/month

What GitHub Actions Gives You (Free)

  • 2,000 minutes/month for public repositories
  • Ubuntu Linux runners (Python 3.11, Node.js 18)
  • Cron scheduling (minimum 5‑minute intervals)
  • Built‑in secret management (encrypted API keys)
  • Artifact storage for outputs
  • Full Git integration

My 6 Workflows

1. Market Scanner

Scans multiple platforms for pricing opportunities every 6 hours.

name: Market Scanner
on:
  schedule:
    - cron: '0 */6 * * *'   # every 6 hours
  workflow_dispatch:

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12'

      - name: Run Scanner
        env:
          NTFY_TOPIC: ${{ secrets.NTFY_TOPIC }}
        run: |
          python scripts/market_scanner.py \
            --notify \
            --output-csv data/results.csv

      - name: Commit Results
        run: |
          git config user.name "github-actions[bot]"
          git add data/
          git commit -m "Scan: $(date +%Y-%m-%d)" || true
          git push

Key insight: Use the Git repository itself as a database. Every scan commits a CSV file, so no external database is required.

2. Deal Alerts

Sends push notifications via ntfy.sh (free) when high‑value opportunities are detected.

# notification_helper.py
import urllib.request
import os

NTFY_TOPIC = os.getenv("NTFY_TOPIC")

def send_alert(title: str, message: str, priority: str = "default"):
    req = urllib.request.Request(
        f"https://ntfy.sh/{NTFY_TOPIC}",
        data=message.encode(),
        headers={
            "Title": title,
            "Priority": priority,
            "Tags": "moneybag,bell"
        }
    )
    urllib.request.urlopen(req, timeout=10)

Why ntfy.sh? Free, no authentication required, works on iOS/Android, supports priority levels.

3. SAGE Feedback Loop

A Thompson‑Sampling‑based system that learns from conversions.

# sage_feedback_loop.py
def record_conversion(listing_id, platform, revenue):
    """Boost weights for successful conversions."""
    boost_factor = 1.1 + (revenue / 100)

    if platform in weights["platform_weights"]:
        weights["platform_weights"][platform] *= boost_factor

    normalize_weights()
    save_weights()

The system tracks:

  • Which platforms convert best
  • What price points work
  • Which times of day perform
  • Category performance

Over time it becomes smarter about where to focus effort.

4‑6. Lead Monitor, Scout, Dashboard

Same pattern – scheduled Python scripts that:

  1. Fetch data from APIs
  2. Process & filter it
  3. Commit results to the Git repo (state persistence)
  4. Send notifications when needed

Usage Stats (3 Months)

WorkflowFrequencyMinutes/Month
Market ScannerEvery 6 h600
Deal AlertsEvery 4 h360
Lead MonitorEvery 2 h720
ScoutDaily150
DashboardOn push80
SAGEEvery 4 h540
Total~2,450 theoretical
Actual~1,400 (early exits save time)

I’m using roughly 70 % of the free tier with room to spare.

Architecture

GitHub Actions (FREE)

Python scripts (market_scanner.py, etc.)

Data stored in Git repo (CSV + JSON)

Triggers on update → Alert workflow

ntfy.sh push notification (FREE)

Mobile alert (iOS/Android)

No servers, no databases, no infrastructure costs.

Limitations (Be Honest)

  • 2,000 min/month cap – GitHub Pro ($4/mo) adds 3,000 min
  • 5‑minute minimum cron – No sub‑minute scheduling
  • 6‑hour max job runtime – Sufficient for most automation
  • Public repos for free tier – Private repos require a paid plan
  • ≈15 min scheduling variance – Not precise to the second

When NOT to Use This

  • Real‑time applications (< 5 min latency)
  • High‑frequency operations (thousands per day)
  • Sensitive data processing (use private repos or self‑hosted runners)
  • Video/image processing (burns minutes quickly)

Results (After 3 Months)

  • Storage arbitrage: 12 opportunities with $120‑$180/month spreads
  • Tool rental (JIT model): $800 profit in the first month
  • Lead response time: 35 % faster → higher conversion

The workflows paid for themselves immediately.

Get Started

I’ve packaged everything into downloadable templates:

FREE tier (no email required)

Download on Gumroad

  • 1 starter workflow
  • Setup guide
  • ntfy.sh integration

Full bundle ($79)

Get All 6 Workflows

  • All 6 production workflows
  • SAGE feedback loop system
  • 20+ pages of documentation

Questions?

Drop a comment below. I’m happy to share:

  • Specific workflow details
  • Customization tips
  • Advice on scaling or securing the stack

Happy automating!

Flow Patterns

  • Error handling strategies
  • Scaling approaches
  • Real performance data

This is part of my “Building in Public” series. I got rejected from 21 jobs, so I’m documenting my journey to $30/day passive income instead.

Follow for updates: @IgorGanapolsky

Back to Blog

Related posts

Read more »