cd /news/artificial-intelligence/i-replaced-2-5-hours-of-daily-busywo… · home topics artificial-intelligence article
[ARTICLE · art-38989] src=dev.to ↗ pub= topic=artificial-intelligence verified=true sentiment=↑ positive

I Replaced 2.5 Hours of Daily Busywork with a $0 AI Agent Setup

A developer replaced 2.5 hours of daily busywork with a $0 AI agent setup running on a Mac Mini M4. The system uses local LLMs (Ollama with Qwen models), Python scripts, and cron jobs to automate email triage, calendar checks, weather updates, and market data refreshes, reducing daily attention time to about 10 minutes. The setup costs nothing beyond existing hardware and avoids cloud subscriptions.

read6 min views1 publishedJun 25, 2026

Three months ago I was spending almost three hours a day on tasks a script could do. Email triage, inbox checks, calendar reminders, weather lookups, market data refreshes. Nothing creative. Nothing that needed my brain. Just... mechanical.

I didn't want another SaaS subscription. I didn't want to glue together Zapier and Notion and hope it worked. I wanted something I owned, running on hardware I already had, costing me nothing after setup.

So I built it. And it actually works.

Here's what I automated, how I built it, and what broke along the way.

Task Before After
Check 3 email accounts for urgent stuff ~25 min Agent alerts me only when something matters
Fiverr inbox — new inquiries + scams ~20 min Hourly scan, instant Telegram notification
Calendar — what's happening today? ~10 min Morning summary at 9 AM, prep alerts 30 min before
Weather check before leaving ~5 min Agent tells me if I need an umbrella
Market data for my watch face ~15 min Live data every 15 min, zero interaction
Code review on my own repos ~45 min Automated PR summaries in 12 seconds

Total: ~2 hours 40 minutes → ~10 minutes of actual attention

The 10 minutes is me reading alerts and deciding what to do. The agent doesn't make decisions. It surfaces information.

Everything runs on a Mac Mini M4 I already owned. No cloud VMs, no rented GPUs for this part.

Mac Mini M4 (always on, ~8W idle)
├── Ollama (local LLM)
│   ├── qwen3.5:9b — general reasoning
│   └── qwen3-coder:30b — code analysis (via network GPU)
├── Python scripts + cron jobs
├── Telegram Bot API — notifications
└── Background services (Garmin updater, health checks)

Monthly cost for the AI layer: $0. The Mac Mini was already running 24/7 for other projects.

Let's be honest: "AI agent" is an overused term. What I built is a collection of Python scripts that use a local LLM for the parts that need understanding, and plain old regex/cron for everything else.

The agent isn't one thing. It's a system:

That's it. No autonomous web browsing. No decision-making without my input. Just: see → understand → tell me.

I sell automation services on Fiverr. Checking the inbox was eating 20 minutes a day. Worse: half the messages were scams ("contact me on WhatsApp for big project").

My agent now:

   Is this a legitimate business inquiry or a scam?
   Scam indicators: external contact requests, generic greeting + immediate project offer,
   poor grammar with urgent tone, requests to communicate off-platform.

   Message: {message_text}

   Respond: LEGITIMATE or SCAM with one-sentence reasoning.

Results after 3 months:

The LLM handles the nuance. Regex would miss edge cases. A human would get bored and slip up.

I have API keys for OpenAI, Anthropic, and Google. I use them for complex reasoning tasks. But for automation?

Cost math:

That's not nothing for a side project. But more importantly: latency. Local inference is faster for simple tasks, doesn't need internet, and doesn't send my emails/Fiverr messages to a third party.

The cloud is my fallback for tasks the 9B model can't handle. Maybe 5% of queries.

Week 1: The Fiverr login session expired after 48 hours. I was running headless Chrome with saved cookies. Fiverr's session management is aggressive.

Fix: Switched to Safari with AppleScript automation. No session issues since — Apple's keychain handles authentication transparently.

Week 2: Alert fatigue. I set the agent to notify on every email. Bad idea.

Fix: Two-tier system. "Urgent" alerts (from known contacts, specific keywords) → instant notification. "Everything else" → digest at 9 AM and 6 PM. Unsubscribe-style filtering.

Week 3: The weather API I was using (free tier) rate-limited me.

Fix: Added a fallback chain. Primary → wttr.in → OpenWeatherMap (rarely hit). The agent doesn't care which source works.

Month 2: LLM started hallucinating calendar events that didn't exist.

Fix: Added validation layer. LLM extracts event details → script queries the actual calendar API → confirms before alerting. LLM suggests, system verifies.

#!/usr/bin/env python3
"""Main agent loop — runs every hour via cron"""

import schedule
import time
from agents import email_agent, fiverr_agent, calendar_agent, weather_agent
from notifier import telegram_alert

def run_all_checks():
    """Run all agents and collect alerts"""
    alerts = []

    alerts.append(email_agent.check())
    alerts.append(fiverr_agent.check())
    alerts.append(calendar_agent.check())
    alerts.append(weather_agent.check())

    urgent = [a for a in alerts if a and a[1] == "urgent"]
    batch = [a for a in alerts if a and a[1] == "normal"]

    for alert in urgent:
        telegram_alert(alert[0], priority="high")

    if batch:
        digest = "📊 Agent Digest\n\n" + "\n\n".join([a[0] for a in batch])
        telegram_alert(digest, priority="normal")

if __name__ == "__main__":
    run_all_checks()
php
import ollama

def should_alert(email_data: dict) -> tuple[bool, str]:
    """Use local LLM to decide if an email warrants immediate notification"""

    prompt = f"""You are an email triage assistant. Analyze this email:

    From: {email_data['sender']}
    Subject: {email_data['subject']}
    Preview: {email_data['preview'][:200]}

    Rules:
    - ALERT if: from known contact, contains "urgent/meeting/action required",
      payment-related, or from a service I actively use
    - SILENT if: newsletter, promotional, automated notification,
      no action needed

    Respond ONLY with: ALERT: [reason] or SILENT: [reason]"""

    response = ollama.chat(
        model="qwen3.5:9b",
        messages=[{"role": "user", "content": prompt}]
    )

    result = response['message']['content'].strip()
    is_alert = result.startswith("ALERT")
    reason = result.split(": ", 1)[1] if ": " in result else "No reason given"

    return is_alert, reason
bash
#!/bin/bash

BOT_TOKEN="..."
CHAT_ID="..."
MESSAGE="$1"
PRIORITY="${2:-normal}"

curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
  -d chat_id="${CHAT_ID}" \
  -d text="${MESSAGE}" \
  -d parse_mode="HTML" > /dev/null

The agent is informational, not autonomous.

I don't let it:

The rule: The agent tells me what I need to know. I decide what to do. This isn't laziness — it's risk management. AI is excellent at detection, mediocre at judgment.

Time saved: ~2.5 hours/day = ~75 hours/month. That's almost two full work weeks.

What I did with the time:

Unexpected benefit: I make better decisions because I'm not decision-fatigued. When you've already spent mental energy on inbox triage, your judgment on actual work suffers.

Cost: $0 for AI, ~12 hours initial setup, ~30 minutes/week maintenance.

If you're spending >1 hour/day on mechanical tasks: probably yes.

If you're expecting a magic "AI agent" that runs your life: no. This is scripting with a smart layer on top. The LLM handles ambiguity. Everything else is just... code.

Start with one task. Get it reliable. Add the next. I began with just email triage. Two weeks later I added Fiverr. Then calendar. Then weather. Each one took an evening.

The compound effect is what matters.

I write about building automation systems that actually work — local AI, self-hosted tools, and side projects that make money while you sleep.

Check out my automation work on Fiverr

Follow CelebiBots on Telegram

── more in #artificial-intelligence 4 stories · sorted by recency
── more on @mac mini m4 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/i-replaced-2-5-hours…] indexed:0 read:6min 2026-06-25 ·