In simple English
This tool finds people on social media who are talking about problems your product fixes. It searches sites like Reddit, X, and YouTube for matching phrases. An artificial intelligence reads each post and scores it for buyer intent and problem fit. You get an inbox of potential leads instead of complex charts. You run it on your own server with Docker, and you pay for the data providers and AI models you use.
What it is
SignalScout is a self-hosted TypeScript application that monitors social platforms for buyer intent and scores incoming posts with an AI model. It filters out irrelevant chatter before sending posts to expensive language models to keep your API costs low.
What it is good for
Solo founders and indie developers who want to find early customers by replying to public discussions where people ask for recommendations or describe problems their product solves.
- Puts potential leads into a simple inbox instead of overwhelming you with charts.
- Filters posts cheaply before sending them to an AI model to keep costs low.
- Can be run locally with Ollama or connected to commercial AI providers.
- Requires Docker and Docker Compose knowledge to install and manage.
- Needs paid accounts with data provider services and AI model providers to work.
- Uses a fair source licence that restricts selling the software as a hosted service.
Manual social media searches and expensive commercial intent-monitoring tools
Docker (a way to run a program inside its own sealed box, so it cannot break anything else on your server)
- apache/airflow47k stars
Runs chains of scheduled jobs written in Python, and keeps a record of every run.
- cybertec-postgresql/pg_timetable1.4k stars
A job scheduler for PostgreSQL whose jobs and schedules live in the database itself.
curl -O https://raw.githubusercontent.com/rszhd/signalscout/main/docker-compose.yml curl -o .env https://raw.githubusercontent.com/rszhd/signalscout/main/.env.example.self-hosted echo "AUTH_SECRET=$(openssl rand -base64 32)" >> .env echo "ENCRYPTION_KEY=$(openssl rand -base64 32)" >> .env docker compose up -d