Home· Features· AI Search Coach
AI Search Coach

A daily analyst that tunes your search for you.

Two cron passes, four insight types, single-click apply. Coach reads your real search traffic, proposes concrete changes (synonyms, ranking rules, redirects), and lets you accept or dismiss with one tap.

Growth Scale Enterprise
🔍
Missing synonym: "trainers" → "sneakers"
24 searches · 0 hits · clicks confirm gap
high
💡
Boost brand:Anker · weight 3
"usb c charger" · top result has 4% CTR
medium
🎯
Catalog gap: 11 searches for "smartwatch bands"
Closest match: "smart accessories"
low
Last run: today 04:00 · 23 / 30 monthly credits used
What it actually does

Five concrete things. Run on a schedule.

Coach is not a vague "AI for search" promise. It's a scheduled service that reads your search_events table, builds a prompt with your catalog and traffic, asks Skryx AI for actionable recommendations, deduplicates them against what's already configured, and writes them to a recommendations queue you triage in the dashboard.

2 ×
Scheduled runs per day: 04:00 UTC pulse (1d) + Mon 05:00 UTC deep pass (7d)
5
Insight types: missing_synonym, catalog_gap, ranking_opportunity, top_performer, morphology
1 click
To turn any recommendation into a live synonym or ranking rule
The five insight types

Each one ships with a single-click apply.

🔍 missing_synonym

A word your customers use that isn't in your catalog.

Coach reads zero-result queries plus low-CTR queries, cross-references the catalog sample (200 product titles, brands, categories), and proposes a synonym pair. Each comes with confidence (high / medium / low) and the search count that triggered it. Single-click apply creates a multi_way Synonym row and pushes it to the engine in under a second.

  • Catalog-as-ground-truth: a pair is only proposed if the target term has real products. No hallucinated suggestions.
  • Diacritic-normalised dedup: Coach checks normalised forms so "căști ⇄ casti" never gets proposed twice.
  • Post-filter against enabled synonyms: won't re-propose pairs you already accepted.
{
  "type": "missing_synonym",
  "confidence": "high",
  "search_count": 24,
  "payload": {
    "root": "trainers",
    "synonyms": ["sneakers", "runners"],
    "reason": "0-hit query · catalog has 142 sneaker SKUs"
  }
}
🎯 catalog_gap

A query with real volume and no good answer.

Different from missing_synonym — here Coach thinks there is actually no nearby product. It surfaces the query so you can either add stock or set up a redirect synonym to the closest existing category.

  • Triggered on queries with ≥ 5 searches AND < 3 hits in the lookback window
  • Suggested closest existing category for a redirect, if any
  • Visible separately from synonym suggestions so merchandising can triage it
{
  "type": "catalog_gap",
  "confidence": "medium",
  "search_count": 11,
  "payload": {
    "query": "smartwatch bands",
    "closest_match": "smart accessories",
    "suggested_action": "add_redirect_or_stock"
  }
}
💡 ranking_opportunity

A query whose top result is underperforming.

Coach checks click position vs result position. When position-1 results have weak CTR while position-3+ results cluster around a category or brand, that's a ranking opportunity. The payload includes a filter expression and a weight ready to drop into a RankingRule.

  • Suggested filter is safety-validated before save (no Typesense-breaking patterns)
  • Weight defaults to 3; you adjust in the modal before applying
  • Rule is scoped to the exact query that triggered the insight
{
  "type": "ranking_opportunity",
  "payload": {
    "query": "usb c charger",
    "effect": {
      "filter_by": "brand:Anker",
      "weight": 3
    },
    "reason": "clicks cluster at position 3+ (brand:Anker)"
  }
}
🔁 morphology

Singular ⇄ plural pairs from your actual catalog.

A separate flow from the LLM-driven Coach. GenerateCatalogSynonymsJob walks your index, extracts title tokens that appear ≥ 2 times and are ≥ 4 chars, runs them through the Romanian morphology service, and proposes up to 100 singular/plural pairs at once — but only if both forms appear in the top 2,000 frequent words. No theoretical pairs.

  • Romanian today; English and other languages on the roadmap
  • Confidence threshold ≥ 0.85 (irregular plurals are hand-curated; 171 pairs)
  • Sorted by frequency × confidence, capped at 100
  • Bulk-apply: tick the pairs you want, dismiss the rest, all in one card
// One CoachRecommendation, many pairs
{
  "type": "morphology",
  "payload": [
    { "singular":"cască",    "plural":"căști",    "freq":412 },
    { "singular":"adaptor",  "plural":"adaptoare","freq":208 },
    { "singular":"baterie",  "plural":"baterii",  "freq":183 },
    // … up to 100
  ]
}
🏆 top_performer

Your best-converting queries, surfaced.

Not actionable — informational. Coach highlights the queries that drive the most clicks so you know what's already working and what's safe to leave alone. Useful when prioritising A/B tests and merchandising effort.

  • Sorted by click-weighted volume in the lookback window
  • Linked through to the analytics drill-down so you can inspect the result set
// Top performers · last 7 days
sneakers 1,420 · CTR 42%
wireless headphones 982 · CTR 38%
desk lamp 302 · CTR 44%
How it runs

The pipeline, step by step.

1

Schedule fires

Daily pulse at 04:00 UTC (last 1 day of searches). Weekly deep pass on Mondays 05:00 UTC (last 7 days). Both run withoutOverlapping(60) so a slow run never doubles up. On-demand "Refresh analysis" button consumes one monthly credit.

2

Build the prompt

Per index: 200 product titles + brand + category + price (catalog sample), top 20 queries with click counts, top 20 zero-result queries, existing enabled synonyms, terms dismissed in the last 30 days (cooldown).

3

Ask Skryx AI

Fast, low-temperature (0.2) model call, max 4 000 tokens, instructed to be conservative ("only suggest a synonym if the catalog clearly has a corresponding term"). Strict JSON schema enforced on the response.

4

Deduplicate

Output is normalised (diacritics folded, pairs sorted) and filtered against the current Synonym table so already-applied pairs don't reappear. Then written to coach_recommendations with status = pending.

5

Surface in UI

Pending count and top suggestion show on the main dashboard widget. Full list lives at /coach: per-type sections, confidence badges, search counts, Apply / Dismiss buttons.

6

Apply or dismiss

Apply: one-line handler creates a Synonym / RankingRule and syncs to the engine in ~100 ms. Dismiss: 30-day cooldown — Coach won't re-propose that term until the cooldown lifts.

Early start for new tenants

Don't wait a week for the first useful insight.

If you finish your Auto-Pilot first-batch configuration and your index has already accumulated 50 or more searches, Coach fires once synchronously after Auto-Pilot completes. New tenants typically see their first batch of recommendations within hours of going live — without waiting for Monday's deep pass.

50
Search events required before the early Coach trigger fires
30 d
Dismissed-term cooldown · prevents recommendation fatigue
~100 ms
From "Apply" click to a live synonym in the engine
Plan & quota

Growth plan and above. Monthly credits.

Each analysis run consumes one credit from your monthly Coach allowance (set per plan in plans.features.ai_coach.monthly_limit). Quota is tracked in ai_usage_current_month and reset on ai_usage_reset_at. Failed runs refund the credit. AI Coach itself is gated to Growth plan and above — the dashboard surfaces a clear upgrade message on lower tiers.

Keep exploring

Other things Skryx does

Try it on your own catalog.

Free tier, no credit card. EU-hosted from day one.