Skip to content

Market intelligence agent

A service that watches public social posts around the clock, picks out businesses asking for help we offer, and sends a short daily list for a person to follow up.

Status

Built for our own sales work

What it is

Always-on automation service

Built with

  • Python
  • SQLite
  • Docker
  • Prometheus metrics
  • Telegram Bot API
  • Activepieces

Related services

The problem

Finding businesses that are publicly asking for a website, a system or automation meant scrolling social feeds by hand. Most posts were noise or spam, good ones were found days late, and nothing was recorded, so the same post could be looked at twice or missed entirely.

What we built

  • A 24/7 listener on the public Bluesky feed, with a cheap pre-filter in front of the expensive steps
  • A persistent work queue, so nothing is lost on a restart and every post is processed once
  • Classification for spam, self-promotion, duplicates, buying intent, region, industry, technology and which of our services fits
  • A dead-letter queue: posts that keep failing are kept for inspection, never silently dropped
  • Telegram alerts for the strongest matches, capped per day so they stay worth reading
  • A daily report of the top five, draft replies for a person to review, and a spreadsheet export
  • Health, metrics and stats endpoints, so an outside monitor can raise an alert if the service stops
  • Packaged with Docker, with a scheduled daily job and automatic restarts
How it works
  1. 01

    Listen

    Public posts arrive from the feed connector.

  2. 02

    Pre-filter

    Obvious noise is dropped before any heavier processing.

  3. 03

    Queue

    Accepted posts are stored before work starts, so a crash loses nothing.

  4. 04

    Classify

    Spam, duplicates, intent, region, industry and service fit.

  5. 05

    Report

    Capped alerts during the day; a top-five list each morning.

Decisions worth explaining

A person stays in the loop

The agent drafts replies but never posts them. Someone reads the shortlist and decides who to contact and how.

Built to be left running

Structured logs, a health check, graceful shutdown and versioned database migrations: the dull parts that let a service run for months without anyone watching it.

One connector interface

The feed sits behind a small connector interface, so other public sources can be added without touching the classification pipeline.

Start Here

Tell us what you want to build or fix.

Three things are enough: your name, how to reach you, and the problem in your own words. You don’t need to know which service you need.

We use these details only to reply to you and, if we work together, to manage that work. Privacy notice