All work06 / 09
case study

Hermes Promo Search · discovering local deals

A Dart CLI that discovers Indonesian food, drink, snack, and lifestyle promotions, then filters, deduplicates, and summarizes results with source links and social buzz signals delivered through Telegram.

Hermes Promo Search workflow for discovering and delivering Indonesian promotions through Telegram
All work06 / 09
Hermes Promo Search workflow for discovering and delivering Indonesian promotions through Telegram
case study

Hermes Promo Search · discovering local deals

A Dart CLI that discovers Indonesian food, drink, snack, and lifestyle promotions, then filters, deduplicates, and summarizes results with source links and social buzz signals delivered through Telegram.

Open project
06 · AI-assisted discovery

From search to useful deals

Role
Developer
Timeline
Personal project
Platform
CLI / Telegram
Type
Open source
ToolkitDartGitGitHubGenkitGeminiOpenRouter

Hermes Promo Search turns scattered online promotions into structured, validated summaries that are easier to discover through Telegram.

Built as a personal project in Dart, the tool searches for food, drinks, snacks, and lifestyle deals across Indonesia. It combines AI-assisted extraction with search-provider integrations and automated checks to make the results more useful than a raw list of search links.


Making search results structured

Instead of relying on fixed search results alone, the application exposes search capabilities as a Genkit tool that Gemini can call while gathering information. The extracted promotions are validated against a defined schema, giving each result a more consistent structure.

Keeping results relevant

The pipeline removes expired promotions, filters unreachable source links, and deduplicates offers collected from multiple sources. It also prioritizes well-known merchants and groups multiple promotions from the same merchant to keep the weekly summary organized.

A hybrid deduplication approach combines normalized merchant-name matching with optional AI-assisted checks for less obvious duplicates. Caching helps avoid repeating work across runs and reduces unnecessary search and enrichment calls.

Adding a social signal

Beyond the promotion itself, the application checks social platforms including Instagram, TikTok, Facebook, YouTube, X, and Threads to provide a signal of how much a merchant is being discussed. Results are cached per merchant to avoid repeating these checks too frequently.

Designed for lightweight automation

The project supports two workflows: a scheduled weekly summary and an on-demand Telegram bot that can search by location or category. These run as separate processes, allowing manual requests without interfering with the scheduled job.

To accommodate a low-resource environment, the application can be compiled into native Dart executables for an ARM64-based Armbian device. The result is a practical exploration of combining search, structured AI extraction, validation, caching, and messaging in a lightweight automation workflow.

04 · up next

Keep looking around

Explore more projects, discover new ideas, and see what else I've been working on.

next project

Affiliate Threads Generator · AI content workflow

An AI-assisted affiliate content engine built as a Hermes Agent plugin. It transforms product candidates into research-backed Threads content, with automated validation and human approval before publishing.

Affiliate Threads Generator workflow connecting product research, AI content creation, human approval, and Threads publishing
Affiliate Threads Generator workflow connecting product research, AI content creation, human approval, and Threads publishingnext projectAffiliate Threads Generator · AI content workflowAn AI-assisted affiliate content engine built as a Hermes Agent plugin. It transforms product candidates into research-backed Threads content, with automated validation and human approval before publishing.Read the case study