DEV Community

Alexandre Lasly
Alexandre Lasly

Posted on

Bounty Watcher: An Autonomous AI Agent That Finds Paid Gigs While You Sleep

Hermes Agent Challenge Submission

This is a submission for the Hermes Agent Challenge

What I Built

Bounty Watcher is an autonomous agent pipeline running on Hermes Agent that scans freelance bounty platforms 24/7, filters out noise, deduplicates, and delivers only relevant opportunities — straight to Telegram.

It covers two platforms:

  • Superteam Earn — crypto/solana bounties with cash rewards
  • GitHub Issues — open source bounties across the ecosystem

The agent has been running in production for weeks on an Android phone via Termux. It costs nothing to operate beyond the LLM tokens used for occasional reasoning tasks — close to zero in this architecture.

Demo

The agent delivers formatted bounty digests directly to Telegram every few hours:

  • 🏆 Superteam Bounties — filters by AGENT_ALLOWED status, deadline proximity, and tech relevance
  • 🐙 GitHub Bounty Scan — scores issues by keyword relevance, extracts bounty amounts from labels

When there are no new results, the script produces empty output and Hermes Agent sends nothing. Silent by design.

Code

Full source available at: AtlasNexusOps/hermes-bounty-watcher

My Tech Stack

  • Hermes Agent — scheduling, delivery, and orchestration
  • Bash + Python — data fetching, filtering, deduplication
  • GitHub CLI — issue search and metadata extraction
  • Superteam Earn API — bounty listings
  • Telegram — delivery channel
  • Android/Termux — production runtime (ARM64, always-on)

How I Used Hermes Agent

Hermes Agent is the backbone of this project — not a wrapper, not an afterthought. Here is exactly how it powers every layer:

1. Cron Scheduling (cronjob tool)

The cronjob tool schedules both scanners on fixed cadences:

hermes cron add "every 360m" \
  --name "Superteam Bounties" \
  --script ~/.hermes/scripts/superteam_bounties.sh \
  --no-agent \
  --deliver origin

hermes cron add "every 180m" \
  --name "GitHub Bounty Scan" \
  --script ~/.hermes/scripts/github_bounties.sh \
  --no-agent \
  --deliver origin
Enter fullscreen mode Exit fullscreen mode

The --no-agent flag means scripts run directly (zero LLM tokens). Hermes handles retries, timezone management, and deterministic delivery routing.

2. Watchdog Pattern (script collects, script filters, agent delivers)

This is the architecture that makes the project cost-efficient:

Script → API fetch → Python filter → dedup cache → output
                                                        ↓
                                            Hermes Agent delivers to Telegram
                                            (silent when output is empty)
Enter fullscreen mode Exit fullscreen mode
  • Zero LLM cost for data collection — scripts run in shell/Python
  • Deterministic — same input always produces the same filtered output
  • Silent when empty — watchdog pattern: only notifies when there is something new

3. Relevance Scoring Engine

The filtering logic uses curated keyword lists to surface only matching opportunities:

RELEVANCE = [
    "solana", "agent", "defi", "crypto", "trading", "blockchain",
    "smart contract", "usdc", "usdt", "API", "web3", "rust", "python",
    "typescript", "nft", "token", "dex", "amm", "oracle", "bridge",
    "validator", "staking", "airdrop", "spl", "jupiter", "raydium",
    "sdk", "CLI", "cli tool", "automation", "bot", "scraper",
    "$", "reward", "prize", "earn", "grants",
]

all_text = title_lower + " " + " ".join(labels)
score = sum(1 for kw in RELEVANCE if kw.lower() in all_text)
Enter fullscreen mode Exit fullscreen mode

4. Why Hermes Agent and Not a Regular Cron?

A regular cron job would just dump raw API output into a chat. Hermes Agent provides:

  • Delivery routing--deliver origin ensures output goes back to the right Telegram chat
  • State management — the agent maintains the cron lifecycle (pause, resume, remove, list)
  • Memory — persistent cache for deduplication across sessions
  • Composability — cron jobs can chain (context_from), allowing future expansion (e.g., a summarization job that reads the scanner output)
  • Script-only modeno_agent: true lets us bypass the LLM entirely for mechanical data collection while still benefiting from the delivery infrastructure

5. Production Results

After weeks of continuous operation:

  • Superteam: 15-25 active bounties per scan, 3-5 with AGENT_ALLOWED status
  • GitHub: 5-10 relevant issues per scan, filtered from 30+ raw results
  • Signal-to-noise: ~30% of fetched results pass the relevance filter
  • Novelty detection: 2-4 new bounties per day flagged as new

How to Deploy It Yourself

git clone https://github.com/AtlasNexusOps/hermes-bounty-watcher.git
cp hermes-bounty-watcher/scripts/* ~/.hermes/scripts/

hermes cron add "every 360m" \
  --name "Superteam Bounties" \
  --script ~/.hermes/scripts/superteam_bounties.sh \
  --no-agent \
  --deliver origin

hermes cron add "every 180m" \
  --name "GitHub Bounty Scan" \
  --script ~/.hermes/scripts/github_bounties.sh \
  --no-agent \
  --deliver origin
Enter fullscreen mode Exit fullscreen mode

Built with Hermes Agent, running on an Android phone, delivering value every day.

Top comments (0)