Implement Firecrawl webhook event handling for async crawl and batch scrape jobs. Use when setting up webhook endpoints, handling crawl.page/crawl.completed events, or processing async job results in real-time. Trigger with phrases like "firecrawl webhook", "firecrawl events", "firecrawl webhook signature", "handle firecrawl events", "firecrawl notifications".
89
88%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
Quality
Discovery
100%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a well-crafted skill description that clearly defines its scope (Firecrawl webhook event handling), provides explicit trigger guidance with both a 'Use when' clause and a 'Trigger with phrases' section, and lists specific concrete actions. The description is concise, uses third-person voice correctly, and occupies a distinct niche that minimizes conflict risk with other skills.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: 'webhook event handling', 'async crawl and batch scrape jobs', 'setting up webhook endpoints', 'handling crawl.page/crawl.completed events', 'processing async job results in real-time'. These are concrete, well-defined capabilities. | 3 / 3 |
Completeness | Clearly answers both 'what' (implement Firecrawl webhook event handling for async crawl and batch scrape jobs) and 'when' (explicit 'Use when' clause covering setting up webhook endpoints, handling specific events, processing async results, plus a 'Trigger with phrases' section). | 3 / 3 |
Trigger Term Quality | Includes a dedicated trigger phrase list with natural terms users would say: 'firecrawl webhook', 'firecrawl events', 'firecrawl webhook signature', 'handle firecrawl events', 'firecrawl notifications'. Also includes domain-specific terms like 'crawl.page/crawl.completed events' and 'async job results'. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive with a clear niche: Firecrawl-specific webhook handling. The combination of 'Firecrawl' + 'webhook' + specific event names like 'crawl.page/crawl.completed' makes it very unlikely to conflict with other skills. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
77%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a well-structured, highly actionable skill with executable code examples covering the full webhook lifecycle. Its main weakness is length — the inline code is extensive and some application-specific logic (search indexing, alerting) could be trimmed or moved to separate files. The workflow is clear with good error handling coverage and a sensible polling fallback pattern.
Suggestions
Move the polling fallback and completion handler with search indexing into a separate reference file to reduce the main skill's token footprint.
Trim application-specific logic (search indexing, alerting) from examples — focus on the webhook-specific patterns and let Claude fill in domain logic.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is mostly efficient but includes some unnecessary verbosity — the completion handler with search indexing and alerting is more opinionated application logic than webhook-specific guidance. The polling fallback section, while useful, adds significant length. Some comments are redundant (e.g., '// Index page immediately — don't wait for full crawl'). | 2 / 3 |
Actionability | Fully executable TypeScript code throughout — from starting a crawl with webhook config, to signature verification, to event handling. Code is copy-paste ready with real imports, proper types, and concrete patterns like timingSafeEqual and express.raw(). | 3 / 3 |
Workflow Clarity | Clear 5-step sequence from initiating a crawl with webhook to handling events to polling fallback. Includes validation (signature verification), error recovery (polling fallback for lost events), and the error handling table explicitly addresses common failure modes with solutions. The 'respond immediately, process async' pattern is a critical checkpoint that's clearly called out. | 3 / 3 |
Progressive Disclosure | The event types table and error handling table provide good structure, and external resources are linked. However, the inline code is quite lengthy (~150 lines of code) and some sections like the polling fallback or the completion handler with search indexing could be split into separate reference files. The 'Next Steps' reference to firecrawl-deploy-integration is good but the main content is borderline monolithic. | 2 / 3 |
Total | 10 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
allowed_tools_field | 'allowed-tools' contains unusual tool name(s) | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
c8a915c
Table of Contents
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.