# Web Research & Scraping Stack Configured Jul 7, 2026. Three-tier search/scraping capability for Hermes and Anita's profile. ## Current Stack ### Firecrawl (native web tools) - **API Key:** fc-4f9...63c1 (in ~/.hermes/.env) - **Plan:** Starter (1,000 credits/mo free) - **Endpoint:** api.firecrawl.dev - **Purpose:** Native `web_search` and `web_extract` tools in Hermes. Quick content extraction from URLs. - **Auth:** Bearer token in Authorization header - **Credits used per call:** 1 (cache hit) to 1+ (fresh scrape) - **Credit tracking:** ~/.hermes/scripts/firecrawl-usage.json - **Upgrade option:** ~$50-100/mo for 5,000 credits (not cost-effective vs ScrapingAnt — 20x less volume at higher cost) ### ScrapingAnt (JS-heavy sites) - **API Key:** 8ab7...4af6 (in ~/.hermes/.env) - **Plan:** Free tier (10,000 credits) → $19/mo for 100K+ - **Purpose:** JS-rendered pages, government sites (Texas Legislature), LinkedIn, Indeed, CBDriver - **Endpoint:** api.scrapingant.com/v2/general?url=...&x-api-key=... (with optional &browser=true for JS render) - **Features:** Headless Chrome, `browser=true` param for JS rendering - **Cost per request:** varies by JS render usage ### SearXNG (self-hosted, unlimited) - **URL:** http://127.0.0.1:8888 - **Purpose:** Private web search, unlimited queries, multi-engine aggregation - **Format:** JSON API: `http://127.0.0.1:8888/search?q=&format=json` - **Deployment:** Docker container on Core (port 8888, localhost only) - **Limits:** 120 req/min ## Anita's Profile Access Anita's profile at ~/.hermes/profiles/anita/ was configured with: - `.env` file with FIRECRAWL_API_KEY, SCRAPINGANT_API_KEY, SEARXNG_BASE_URL - `web.backend: firecrawl` in config.yaml - `web` toolset enabled - Gateway restart required to pick up new config ## Use Cases | Site | Tool | Method | |------|------|--------| | Government (TX Leg., court records) | ScrapingAnt | `browser=true` for JS rendering | | CBDriver, Indeed | ScrapingAnt | Headless Chrome handles JS | | LinkedIn (public profiles) | ScrapingAnt | Can pull public pages | | LinkedIn (deep search) | Apify LinkedIn actor (~$30-50/mo) | Handles auth, rate limits, structured data | | General web search | SearXNG (self-hosted) | Unlimited, private | | Quick URL extract | Firecrawl (native tool) | Free credits | | Debtor skip tracing | Sherlock + theHarvester | Username search / domain recon | ## OSINT Tools (installed on Core) - **Sherlock** (`/opt/sherlock/`) — search 400+ sites by username. `cd /opt/sherlock && ./venv/bin/python sherlock ` - **theHarvester** (`/opt/theharvester/`) — email/domain recon. `cd /opt/theharvester && ./venv/bin/python theHarvester -d -b google` ## Usage Tracking `~/.hermes/scripts/track-firecrawl.py` tracks monthly usage across both services. Cron: `firecrawl-usage-check` at 9 AM daily (no_agent). ## Cost Recommendation Keep Firecrawl free tier for quick lookups (1K/mo free). Add ScrapingAnt $19/mo for JS-heavy sites (100K credits). Skip Firecrawl upgrade entirely. Add Apify LinkedIn actor (~$30-50/mo) only when deep LinkedIn people search is needed for DRE skip tracing.