Skip to content

feat(algolia-crawler): add crawler skill for RAG-optimized indexing#27

Merged
leonardocuco merged 3 commits into
mainfrom
feat/algolia-crawler-skill
Jul 2, 2026
Merged

feat(algolia-crawler): add crawler skill for RAG-optimized indexing#27
leonardocuco merged 3 commits into
mainfrom
feat/algolia-crawler-skill

Conversation

@leonardocuco

Copy link
Copy Markdown
Contributor

What does this skill do?

Guides Algolia customers to crawl one or more web pages into a RAG-optimized Algolia index using the Algolia CLI — inspect the page (including JS-rendered), write a RAG-shaped recordExtractor, validate with algolia crawler test before indexing, apply index settings explicitly, then reindex.

Why

None of the existing skills cover the Crawler (ingestion). algolia-crawler fills the gap between algolia-cli (index ops) and algobot-cli (the RAG/agent layer): it gets web content into Algolia in a shape that retrieves well for RAG, then hands off to algobot-cli for the agent.

What's inside

  • SKILL.md — the RAG record mental model + the end-to-end workflow + the two gotchas that bite (JS-rendered data, values hidden in attributes).
  • references/workflow, record-extractor (RAG record patterns, reading values from attributes, chunking), rag-index-settings (incl. NeuralSearch), javascript-rendering, cli.
  • evals/ — 3 realistic scenarios with expectations + EVAL_RESULTS.md.

CLI-only by design — every step is an algolia crawler … / algolia settings / algolia search command. It bakes in CLI-specific realities verified in practice: the CLI accepts only boolean renderJavaScript (the object form breaks get/list/create -F), crawler create prints nothing (recover the id via list), and initialIndexSettings frequently doesn't apply so settings must be applied explicitly with settings import.

Evaluation

With-skill vs baseline across the 3 scenarios: 100% vs ~71% assertion pass rate. The skill's value concentrates on CLI correctness + non-obvious gotchas — a capable model already handles generic RAG record shaping. See skills/algolia-crawler/evals/EVAL_RESULTS.md.

Checklist

  • python3 scripts/validate_skills.py . passes (0 errors)
  • Skill description is under 1024 chars and includes WHEN and WHEN NOT to trigger
  • evals/evals.json exists with at least 1 realistic prompt
  • Skill is self-contained — no ../other-skill/ references
  • Registered in .claude-plugin/marketplace.json (new skills only)
  • Goes in skills/ here (useful to customers)

🤖 Generated with Claude Code

leonardocuco and others added 3 commits July 2, 2026 11:53
Adds a CLI-only skill that guides customers to crawl web page(s) into a
RAG-optimized Algolia index: inspect the page (incl. JS-rendered),
write a RAG-shaped recordExtractor, validate with `algolia crawler test`
before indexing, apply index settings explicitly, then reindex.

Includes references (workflow, record-extractor, rag-index-settings,
javascript-rendering, cli) and evals (with-skill vs baseline: 100% vs ~71%).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Point at one URL, index all sub-pages, and shape the config from ALL page
templates (not just the start page): new references/site-crawls.md
(discover -> group templates -> sample & `crawler test` each ->
branching extractor or multiple actions -> unified settings +
cross-template verify), plus `sitemaps` in the config example, reframed
scoping (cover the section, not one page), and a 4th eval for the
whole-site case.

Eval 4 (with-skill 6/6 vs baseline 5/6): the baseline configures sub-page
discovery but skips validating the extractor per page template — the gap
this adds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…not a name)

Dogfooding the skill on the Agent Studio docs surfaced that `algolia crawler
get` accepts a UUID only — passing a crawler name returns `malformed_id`, so
the documented `get <name>` recovery path doesn't work. And `crawler list`
(the other suggested path) breaks account-wide when any crawler uses a
non-boolean renderJavaScript.

Corrected SKILL.md / cli.md / workflow.md: recover the id from `crawler list`,
with a REST `GET /1/crawlers?name=` fallback when `list` is broken; `get`
takes a UUID only. Added a real-world validation note to EVAL_RESULTS.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@leonardocuco leonardocuco marked this pull request as ready for review July 2, 2026 13:11
@leonardocuco leonardocuco requested a review from gbelain July 2, 2026 13:14
@leonardocuco leonardocuco merged commit e85bad2 into main Jul 2, 2026
1 check passed
@leonardocuco leonardocuco deleted the feat/algolia-crawler-skill branch July 2, 2026 13:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants