67 lines
2.6 KiB
Markdown
67 lines
2.6 KiB
Markdown
# Phase 1 — Business Intelligence Extraction
|
|
|
|
Extract structured brand data from any business website using Firecrawl.
|
|
|
|
## Step-by-Step Protocol
|
|
|
|
### 1. Check Firecrawl status
|
|
```bash
|
|
firecrawl --status
|
|
```
|
|
If not authenticated, instruct user to set `FIRECRAWL_API_KEY` in their environment.
|
|
|
|
### 2. Scrape homepage
|
|
```bash
|
|
firecrawl scrape "<url>" -o .firecrawl/homepage.md
|
|
```
|
|
|
|
### 3. Map site structure
|
|
```bash
|
|
firecrawl map "<url>" --search "about services team contact" -o .firecrawl/sitemap.json
|
|
```
|
|
|
|
### 4. Crawl key pages (parallel)
|
|
```bash
|
|
firecrawl scrape "<url>/about" -o .firecrawl/about.md &
|
|
firecrawl scrape "<url>/services" -o .firecrawl/services.md &
|
|
wait
|
|
```
|
|
|
|
### 5. AI agent extraction
|
|
Run the agent to extract structured brand data:
|
|
```bash
|
|
firecrawl agent "<url>" \
|
|
"Analyze this business website thoroughly. Extract and return JSON with these exact fields:
|
|
- name: business name
|
|
- tagline: main tagline or value proposition (1 sentence)
|
|
- services: array of service names (max 8)
|
|
- colors: { primary: hex, secondary: hex, accent: hex, bg: hex } — infer from screenshots/CSS if mentioned
|
|
- tone: one of formal | casual | bold | playful — based on copy style
|
|
- heroHeadline: the most compelling headline for their hero section
|
|
- ctaText: primary call-to-action button text
|
|
- audience: target customer description (1 sentence)
|
|
- industry: e.g. healthcare, tech, legal, hospitality
|
|
Return only valid JSON, no markdown wrapping." \
|
|
-o .firecrawl/brand.json
|
|
```
|
|
|
|
### 6. Validate extraction
|
|
Read `.firecrawl/brand.json` and verify all fields are populated. If any are missing:
|
|
- `colors`: default to a neutral palette based on `industry` field
|
|
- tech: `{ primary: "#3B82F6", secondary: "#1E293B", accent: "#10B981", bg: "#F9FAFB" }`
|
|
- healthcare: `{ primary: "#0EA5E9", secondary: "#164E63", accent: "#22D3EE", bg: "#F0F9FF" }`
|
|
- legal: `{ primary: "#1C1917", secondary: "#57534E", accent: "#D97706", bg: "#FAFAF9" }`
|
|
- hospitality: `{ primary: "#B45309", secondary: "#292524", accent: "#F59E0B", bg: "#FFFBEB" }`
|
|
- default: `{ primary: "#18181B", secondary: "#3F3F46", accent: "#6366F1", bg: "#FAFAFA" }`
|
|
- `heroHeadline`: use the business name + tagline combined
|
|
- `ctaText`: default to "Get Started"
|
|
|
|
### 7. Generate brand.ts tokens file
|
|
Write `brand.ts` using [../templates/brand.ts](../templates/brand.ts) as the base, injecting the extracted values.
|
|
|
|
## Output Checklist
|
|
- [ ] `.firecrawl/homepage.md` exists and has content
|
|
- [ ] `.firecrawl/brand.json` has all required fields
|
|
- [ ] No empty string values remain
|
|
- [ ] Colors are valid hex codes (6 digits with #)
|