# Visual Intelligence Capture

**Trigger:** When a URL needs a visual capture for the taste board or any creative reference work

**Pipeline:**
1. Call Microlink API to get page metadata + image + screenshot
2. If Microlink image looks like a logo/icon (SVG, contains "logo", "icon", "favicon", <10KB), fall back to screenshot
3. Pass screenshot to Gemini Vision for analysis
4. Store analysis as note, best image as cover

**Usage:**
```
python3 skills/visual-capture/capture.py "https://url" [--notion-page-id ID] [--analyze] [--output-dir DIR]
python3 skills/visual-capture/capture.py --batch /path/to/urls.txt --output-dir ./captures
python3 skills/visual-capture/batch-notion.py [--limit 50] [--analyze] [--dry-run]
```

**For JS-rendered / SPA pages:** Use Pinchtab instead of Microlink:
```
pinchtab nav "https://url"
sleep 3
pinchtab text          # readable text (800 tokens, 13x cheaper than screenshot)
pinchtab ss -o out.png # screenshot if visual capture needed
```
Start server first: `nohup pinchtab --headless > /tmp/pinchtab.log 2>&1 &`

**For bulk scraping / anti-bot sites:** Use Scrapling:
```python
from scrapling import Fetcher, StealthFetcher
f = StealthFetcher()  # Cloudflare bypass
page = f.get("https://url")
text = page.get_all_text()
links = page.css("a")
```
Or CLI: `python3 scripts/scrape.py "URL" --stealth`

**Dependencies:** Microlink API (free tier, no key), Pinchtab (local binary, no key), Scrapling (pip, no key), Gemini API (env GEMINI_API_KEY), Notion API (key from /home/clawd/secrets/notion/api_key)
