Semagram - Semantic search for Telegram

I made a semantic search engine for Telegram.

Telegram has about a billion users, but discovery there still feels like old Web: simple keyword search, manually curated catalogs, categories, and a lot of luck. I wanted something closer to “Google for Telegram”, where you can describe what you need in natural language and get relevant results.

So I built Semagram.

It currently indexes 1,183,781 channels, 173,033 groups and 144,956 bots. Search is hybrid: semantic vector search is combined with BM25 ranking, so it can work both with vague natural-language queries and with exact keywords. For channels, I also include recent messages into the indexed profile, so search is not limited to title and description only.

I also added extra signals into the index. For example, Telegram avatars are converted into short text descriptions with image-to-text and those descriptions are included into the document used for embeddings. This makes visual themes searchable too.

A few things that Semagram can do:

Examples:

There is also a Telegram bot: @SemagramBot which can respond to search queries both in dialog and inline ways. Bot has AI mode to ask questions in natural language and do complex research.

Tech stack is mostly Rust on the backend. Search is powered by embeddings plus ParadeDB for keyword ranking. Data was collected from public Telegram pages, message previews and bot metadata, with several enrichment passes over discovered usernames and mentions.

LINK: semagram.io

Home