signals

Retrieve deduplicated signals via embedding-based HogQL queries against document_embeddings.

58|5|Updated Jan 19, 2026
One-click install
npx skills add https://github.com/PostHog/skills --skill signals-posthog
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: signals
Source: https://github.com/PostHog/skills/tree/main/skills/omnibus/signals
Command: npx skills add https://github.com/PostHog/skills --skill signals-posthog

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Signals are automated observations that PostHog generates by monitoring a customer's product data across multiple sources — error tracking, web analytics, experiments, session replay, and more. Each signal is a short natural-language description of something noteworthy (for example, "Error rate spiked 3× on /checkout").

Signals are grouped into Signal Reports. When a report accumulates enough weight it gets summarized and assessed for actionability. A signal report represents a cluster of related observations that together describe a meaningful issue or trend.

Signals and their embeddings are stored in the document_embeddings table, queryable via HogQL through the posthog:execute-sql MCP tool. They provide a useful way to semantically query for recent things that happened in the user's product.

The skill enables semantic and full-text querying, deduplication of signals, and targeted fetches by report or product.

The Skill's primary purpose is to help teams monitor product health by exploring signals with natural-language queries and guided SQL-like examples.

Quick Start

Find the top 10 signals most similar to the description 'checkout error' using semantic search.

Core Features & Use Cases

  • Semantic search: locate signals by natural language queries using embedText() and cosineDistance() to rank results.
  • Fetch by report: retrieve all signals associated with a specific report_id for deeper inspection.
  • List signal types: summarize available signal types by unique (source_product, source_type) pairs from the last month.
  • Recent signals by source: pull the latest signals for a particular source_product (e.g., error_tracking).
  • Full-text search: perform keyword-based lookups on signal content using ILIKE for fast filtering.
  • Deduplication: apply argMax(...) with grouping by document_id to avoid duplicates and stale results.

Frequently Asked Questions about signals

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I query PostHog signals using semantic search?

To query PostHog signals using semantic search, you use HogQL with the embedText() and cosineDistance() functions against the document_embeddings table to rank and retrieve relevant observations.

What are signals in PostHog and how are they grouped?

Signals in PostHog are automated natural-language observations generated by monitoring product data. They are grouped into Signal Reports, which summarize clusters of related observations when enough weight accumulates.

How do I retrieve all signals associated with a specific report?

To retrieve signals for a specific report, you fetch records from the document_embeddings table filtered by the target report_id, allowing deeper inspection of clustered observations.

How do I prevent duplicate signals when querying the document_embeddings table?

To prevent duplicate signals, apply the argMax() function grouped by document_id. This ensures deterministic results by keeping the most recent entry based on the inserted_at timestamp.

What is the time window limitation for querying recent signals?

Querying recent signals is limited to a 30-day time window. This constraint is enforced on the document_embeddings table to avoid returning stale results.

Can I perform full-text keyword searches on PostHog signal content?

Yes, you can perform full-text keyword searches on signal content using the ILIKE operator in HogQL for fast filtering across the document_embeddings table.