OpenGTM mark

OpenGTM

An open-source, self-hosted workspace for GTM teams and their agents.

Docs · Install · Co-maintainer wanted · Releases · AGPL-3.0

Strategic sponsor
Spicrawl
Recommended by OpenGTM
Live web data for your AI agents.
Scrape pages, automate browsers, and batch URLs into clean Markdown or JSON.
API   CLI   MCP
Get 1,000 free credits →  ·  Pricing
Every month · Free during beta · No credit card

OpenGTM dashboard workbench with a compact company table, qualification scores and data completeness

Dashboard workbench · available in source builds from main · fictional demo data

Give OpenGTM a market, a list, or a workbook. It finds companies and people, enriches rows through cost-ordered provider waterfalls, researches hard questions with cited agents, watches for buying intent, and sends qualified records to the tools your team already uses. Your data stays on your infrastructure; third-party calls use keys you choose. A zero-key demo is included. [Configure Firecrawl search and Spicrawl research](docs/web-providers.md). ## See the workbench The dashboard workbench runs on the native Go backend, with separate Companies and People, shared record history, Clay/CSV import mapping, and compact workspace navigation. Switch Light, Dark, System, and UI scale directly in the account menu. These recordings use fictional demo data. Build from `main` for this dashboard; published release tags may contain an earlier UI.
Companies, People and connected employment · 11-second demo Inspect shared company facts, see its people, and follow a person's employment history without leaving the workbench. ![Demo of the company inspector, connected people and employment history](docs/assets/opengtm-records-preview.gif) [Open the static dashboard screenshot](docs/assets/opengtm-workbench-preview.png).
Import a Clay table · 11-second demo Map source columns, check the row preview, and import into the record library. The preview keeps import and enrichment as separate actions. ![Demo of CSV upload, column mapping, row review and a confirmed import](docs/assets/opengtm-import-preview.gif) [Open the static dashboard screenshot](docs/assets/opengtm-workbench-preview.png).
## Co-maintainer wanted We're looking for a co-maintainer to help shape OpenGTM, review pull requests, ship releases, and build a faster enrichment backend. Experience with **Go, PostgreSQL, browser automation, or provider integrations** is especially welcome. Interested? [Join contributor and design-partner onboarding](https://github.com/debpalash/OpenGTM/issues/122) with a short introduction and the areas you'd like to own. Focused contributions are welcome too; start with [CONTRIBUTING.md](CONTRIBUTING.md). ## Run it You need **Git, Docker with Compose v2, and roughly 4 GB of available RAM**. No provider key is required to try the demo. ### On your laptop macOS or Linux: ```bash git clone https://github.com/debpalash/OpenGTM.git cd OpenGTM ./scripts/install.sh ``` Windows PowerShell with Docker Desktop: ```powershell git clone https://github.com/debpalash/OpenGTM.git Set-Location OpenGTM .\scripts\install.ps1 ``` Open **http://localhost:3000**. The first visit redirects to `/setup`: create the admin account there. The setup form asks for a one-time setup token, which the API prints once at startup (`docker compose logs api-go | grep -i 'setup token'`), or set `SETUP_TOKEN` in `.env` before the first start. No default admin account exists, and setup closes for good once an admin is created. The installer generates database, runtime-role, signing and service-token secrets, then starts the stack. It leaves an existing `.env` untouched. ### On a server Use a reviewed Go tag or commit. The example starts from `main`; replace `OPENGTM_REF` with your tested revision and record the resolved commit. Point a domain at the host and provide a TLS reverse proxy such as Caddy. On Linux with Git and Docker Compose: ```bash OPENGTM_REF=main # replace with a tested Go tag or commit git clone https://github.com/debpalash/OpenGTM.git cd OpenGTM git checkout "$OPENGTM_REF" git rev-parse HEAD # record this revision for rollback ./scripts/install.sh --no-start DOMAIN=gtm.example.com # replace with your domain cat >> .env <