# gtm-prospecting environment configuration # Copy to `.env` and fill in the keys for the lanes you intend to run. # Every key is optional: a stage simply skips (or errors clearly) if its key is absent. # LLM: ICP scoring, brand extraction, drip authoring # OpenRouter gives one key for many models. Used by `signal icp_score`, # `client scrape`, and the CRM LLM rescore. OPENROUTER_API_KEY= ICP_MODEL=anthropic/claude-sonnet-4-6 # model for the ICP scorer SCRAPE_LLM_MODEL=anthropic/claude-sonnet-4-6 # model for brand-profile extraction # Search, discovery, and enrichment SERPER_API_KEY= # serper.dev: SERP discovery, off-site email sweep, founder finders EXA_API_KEY= # exa.ai Websets: contact and social enrichment PDL_API_KEY= # People Data Labs: founder LinkedIn and email enrichment HUNTER_API_KEY= # hunter.io: email finder fallback LEAD411_API_KEY= # Lead411 v3 REST: supplementary contact lane FIRECRAWL_API_KEY= # optional: legacy scrape path. `client scrape` needs no key BROWSERBASE_API_KEY= # optional: headless render for hard pages and Loom recording # CRM: Twenty, self-hosted or cloud # The `crm` commands read/write here. Either TWENTY_CRM_* or TWENTY_* is accepted. TWENTY_CRM_BASE_URL= # e.g. https://crm.example.com (the REST base is /rest) TWENTY_CRM_API_KEY= # a workspace API key (Bearer) # Welcome-flow signal (optional) # The welcome-flow signals subscribe an inbox you control to a prospect's list, # then harvest the emails they send. Use a dedicated mailbox. GMAIL_USER= GMAIL_APP_PASSWORD= HARVEST_LOOKBACK_DAYS=14 # Branding and identity # BRAND prefixes records this repo creates in your CRM (e.g. "Acme Audit - "). PROSPECTING_BRAND=Prospecting # Your own domain. Welcome-flow signals use this as the referer/identity. PROSPECTING_IDENTITY_DOMAIN=example.com # Override where runtime data lives (defaults to the repo root). # PROSPECTING_HOME=/path/to/data/home