CtrlK
BlogDocsLog inGet started
Tessl Logo

filtering-bot-traffic

Identify, measure, and exclude bot / crawler / AI-agent traffic in PostHog web and product analytics using the traffic classification surface (the isLikelyBot / getTrafficType HogQL functions and the $virt_* virtual properties). Use when the user asks to "exclude bots", "filter out crawlers", "remove bot traffic from my numbers", "how much of my traffic is bots / AI crawlers", "is GPTBot / ChatGPT / Claude hitting my site", "break down traffic by human vs bot", or wants clean human-only counts in an insight or dashboard. For the real-time Live tab bot tiles, use exploring-live-traffic instead.

74

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A practical, actionable reference with executable JSON and SQL recipes and strong guardrails in the Gotchas section. It is mostly concise and well-structured, though the orientation prose could be tighter and the long inline tables suggest a possible split for a future reference file.

Suggestions

Tighten the intro paragraph — drop 'This skill teaches you (the agent) how to use that classification to:' and lead directly with the capability list to save tokens.

Consider moving the full $virt_* property table and HogQL function table into a references/ file, leaving SKILL.md as a concise overview with the key examples inline.

Add a short 'verify the result' note to one recipe (e.g. confirm human pageviews drop noticeably after applying the $virt_is_bot filter) to add an explicit checkpoint.

DimensionReasoningScore

Conciseness

Mostly lean and free of padding about concepts Claude already knows, but the orientation paragraph ('This skill teaches you (the agent) how to use that classification to:') and a few explanatory asides could be trimmed.

4 / 5

Actionability

Provides copy-paste-ready JSON property filters and TrendsQuery examples plus complete SQL with the coalesce(nullIf(...)) user-agent expression, covering the common cases (exclude, measure share, list bots, AI-agent slice, raw SQL).

5 / 5

Workflow Clarity

Recipes are clear single actions with a useful Gotchas section acting as guardrails (e.g. 'Don't silently drop the host filter'), but there are no explicit validate-then-retry checkpoints; none are strictly required since the queries are read-only.

4 / 5

Progressive Disclosure

Well-organized into clear sections (When to use, classification surface, traffic types, recipes, gotchas) with no bundle files to delegate to; the full property/function tables are reasonable inline but the body is longer than a minimal overview.

4 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, specific description that names concrete actions, surfaces the exact HogQL functions and virtual properties, and provides abundant natural trigger phrases. The explicit hand-off to exploring-live-traffic keeps it distinct from neighboring skills.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'Identify, measure, and exclude bot / crawler / AI-agent traffic' — and names the exact surfaces (isLikelyBot, getTrafficType, $virt_* virtual properties), giving comprehensive coverage in third-person imperative voice.

5 / 5

Completeness

Explicitly states both what it does (identify/measure/exclude bot traffic via the classification surface) and when to use it, with a concrete 'Use when the user asks...' clause listing trigger phrases.

5 / 5

Trigger Term Quality

Packs in natural user phrases such as 'exclude bots', 'filter out crawlers', 'remove bot traffic from my numbers', 'how much of my traffic is bots / AI crawlers', and 'is GPTBot / ChatGPT / Claude hitting my site' — exactly what a user would say.

5 / 5

Distinctiveness Conflict Risk

Occupies a clear niche (PostHog bot/AI-agent traffic classification) and actively disambiguates by redirecting real-time Live-tab queries to the exploring-live-traffic skill, minimizing conflict risk.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
PostHog/posthog
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.