Boolean query builder for social listening

discatch uses one query syntax across every source. Type a query here and see how the planner translates it for Hacker News, Discourse, GitHub, Mastodon, YouTube, and the web index. The prescore inputs are shown beside the parse.

Query
Parse
Phrases"your product", "yourdomain.com"
Excludedcompetitor
OperatorsOR
Per-source translation
SourceTranslated query
Web (via the web index)q="your product" "yourdomain.com" -competitor
Hacker Newsquery=%22your%20product%22%20%22yourdomain.com%22&tags=(story,comment) (excluded terms re-filtered locally)
Discourse/search.json?q=%22your%20product%22%20%22yourdomain.com%22
GitHubq=%22your%20product%22%20%22yourdomain.com%22+in:title,body
Mastodonq=%22your%20product%22%20%22yourdomain.com%22 (per-instance; hashtags only unless full text enabled)
YouTubeq=%22your%20product%22%20%22yourdomain.com%22 (Data API on videos; comments matched locally)
BlueskyLocal match on Jetstream: "your product" "yourdomain.com" (boolean evaluated in normalizer)

Every source’s results are re-filtered locally against the full boolean query.

Prescore inputs
SignalWeightFrom this query
Exact phrase hit0.35Yes: "your product", "yourdomain.com"
Term coverage0.252 terms to match
Title hit0.15Depends on the result
Recency0.10Decays over 30 days
Engagement0.10Log of replies plus score
Source weight0.05Per account, learnable

The API call for this query

curl -X POST https://api.discatch.com/v1/search \
  -H "Authorization: Bearer $DISCATCH_KEY" \
  -d '{ "query": "\"your product\" OR \"yourdomain.com\" -competitor", "sources": ["hackernews", "discourse", "web"], "since": "7d" }'

The syntax

PatternMeaningExample
termA word to matchsupabase
"phrase"An exact phrase"supabase auth"
A OR BEither termsupabase OR firebase
A AND BBoth terms (AND is implied)supabase AND pricing
-term or NOT termExclude a termsupabase -firebase
site:domainRestrict to a domain or pathsite:reddit.com/r/webdev
author:@handleRestrict to an authorauthor:@pg
lang:codeLanguage filterlang:en
(A OR B) CGrouping(supabase OR firebase) pricing
Syntax from docs/query-language.md.

Per-source translation

Each source has a native search language. The planner maps the discatch query into it. Every source’s results are re-filtered locally against the full boolean query, so a source with a weaker native language still returns correct results from a larger candidate set.

SourceHow the planner maps it
Web (via the web index)Native operators pass through; site: and quotes map directly
Hacker Newsquery plus tags and numericFilters for since
DiscoursePer-forum /search.json?q= with after: and category:
GitHubSearch API qualifiers: in:title,body, repo:, is:issue
MastodonPer-instance search; hashtags only unless full text is enabled
YouTubeData API q on videos, local match on comments
BlueskyLocal term match on the Jetstream stream; boolean evaluated in the normalizer
Translation rules from docs/query-language.md.

Prescore

Prescore is a free, non-LLM relevance estimate in [0, 1]. It ranks and filters but does not decide relevance. That is the caller’s model, or the classify flag.

SignalWeight
Exact phrase hit0.35
Term coverage0.25
Title hit0.15
Recency (decays over 30 days)0.10
Engagement (log of replies plus score)0.10
Source weight (per account, learnable)0.05
Prescore weights from docs/query-language.md.

Questions

Does discatch support regex?

No. Regex is not part of v1. The syntax supports quoted phrases, boolean operators, site:, author:, and lang: filters.

Are queries case-sensitive?

No. Terms are case-insensitive. Plurals and simple stems match.

What happens if a source does not support an operator?

The planner translates the query into the source’s native language as closely as it can. Results are then re-filtered locally against the full boolean query, so correctness is preserved.

What is the difference between NOT and a minus sign?

They mean the same thing. supabase -firebase and supabase NOT firebase both exclude results matching firebase.

Can I search Reddit with this syntax?

Reddit is planned. When it ships, the same syntax applies. Today, indexed Reddit posts arrive as web results when you search across the web source.

What are Reddit search operators?

Reddit’s native search has site:, subreddit:, and flair: operators. discatch wraps these in one syntax so you do not need to learn per-source operators. site:reddit.com/r/webdev works.

Does this tool make API calls?

No. The query builder runs entirely in your browser. No data is sent anywhere.

What does prescore mean?

A free relevance estimate between 0 and 1. It is not an LLM call. It weights exact phrase hits, term coverage, title hits, recency, and engagement. The agent can filter on it to skip low-quality results.

Last reviewed by , founder, dcouple. Copy from docs/query-language.md.