enhancementgood first issueintegrationnew-featurenew-integration
Repository metrics
- Stars
- (1,930 stars)
- PR merge metrics
- (Avg merge 3h 2m) (10 merged PRs in 30d)
Description
Description
Add Firecrawl integration to sync web scraping results, crawl data, and extracted structured content into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/github/- API-based data integrationintegrations/linear/- Project management integrationintegrations/slack/- For reference
Required Files Structure
integrations/firecrawl/
├── src/
│ ├── index.ts # Main entry, API key spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # Firecrawl API utilities
│ ├── account-create.ts # API key setup
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
Firecrawl API Integration
Authentication Setup
- Use API Key authentication (Bearer token)
- API keys are generated at firecrawl.dev dashboard
- Base URL:
https://api.firecrawl.dev/v1
Key Endpoints
POST /scrape- Scrape a single URL, returns markdown/HTML/structured dataPOST /crawl- Crawl an entire website recursively, returns all subpagesGET /crawl/{id}- Check crawl job statusPOST /map- URL discovery and sitemap generationPOST /extract- Extract structured data using LLM
Output Formats
- Markdown, HTML, rawHtml, screenshot, links, JSON, branding
Events to Track
- Scrape Jobs - Single URL scrape completions with extracted content
- Crawl Jobs - Multi-page crawl progress and completion
- Map Results - URL discovery results
- Extract Results - Structured data extraction completions
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement API key authentication flow in
account-create.ts - Create API utilities in
utils.tsfor scrape, crawl, map, and extract endpoints - Implement sync logic in
schedule.tsfor polling crawl/scrape job results - Convert scrape/crawl results to CORE activity format
- Add error handling and rate limiting (500 free credits, then paid plans)
- Create integration documentation
- Add to
integrations/README.md
Technical Notes
- Firecrawl handles JavaScript-rendered dynamic content automatically
- Crawl jobs are asynchronous - need polling via
GET /crawl/{id} - Free tier: 500 scraped pages, then Hobby/Standard/Growth plans
- SDKs available for Python and Node.js
- Consider webhook support for async job completion notifications
Resources
Labels
enhancement, integration, new-feature