# Browser-only ProspectOS This is the stripped-down replacement for the larger ProspectOS application. It searches public engines (Google, Bing, DuckDuckGo, Brave Search, and Startpage) through a headless Playwright Chromium browser, moving to the next engine when a server-side challenge, timeout, or empty/changed result page is encountered. Each discovery run builds a query from category, keywords, and location, filters results already present in the local catalogue by root domain, and stores only new prospects. The explorer supports search and human review states (`pending`, `approved`, `rejected`, `contacted`). There is deliberately no source registry, email scraper, AI provider, CRM, outreach sender, or automatic contact action. ## Run with Docker ```bash docker compose up -d --build ``` Open `http://SERVER:8000`. If another service already owns port 8000, choose the host port without changing the container: ```bash HOST_PORT=8080 docker compose up -d --build ``` If an engine presents a CAPTCHA or bot challenge, the run moves on to the next engine. The app does not bypass challenges or rotate identities. Keep runs small and spaced out. The implementation uses a fresh headless browser context for each engine and unwraps normal search redirect links before deduplication. If every public engine blocks the server IP, the run reports a clear `search_engines_unavailable` error instead of inventing prospects. ## Run locally ```bash python -m pip install -r api/requirements.txt PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium python api/server.py ``` The browser executable path can be changed for the host operating system.