MarketBase What it is Ask it One or many Quickstart GitHub
Free · Cross-agent · Your database

For everything your
CRM won't hold.

Every enrichment, every list, every tag, every score and classification, every signal. Your CRM shouldn't hold these. Neither should your local disk or a folder in Drive.

Store everything in one flexibly-opinionated database, used by all your team members and agents.

  • Never pay or run the same thing twice. Every enrichment and scrape result is kept, keyed on the call that produced it.
  • Know when data has gone stale. Re-run it when it has, and keep the previous results so you can diff the two.
  • Re-run anything, on purpose. Imports, score calculations, view creations and exports are all tracked and repeatable.

Your database

PostgresNeonSupabaseRDS

Your keys & secrets

IInfisical1PasswordDDoppler..env

Data sources

AApolloCClayEExaCCrustdataHHunterLLeadMagicLinkedInCCSV

CRM & campaigns

HubSpotSalesforceAAttioSSmartleadIInstantlyOOutreachLLemlist
MarketBase
Free · Cross-agent · Your database

Your team & their AI

ClaudeCursorVS Code

Automation frameworks

OOpenClawn8nZapierMakeLangChainCrewAIPython

No more

What MarketBase is, and isn't

It is a schema and a toolkit, not a service. There is nothing to host and nothing to run.

What it is

  • A schema you point at a database you already have (any Postgres: local, Neon, Supabase, RDS)
  • A toolkit that runs with your own API keys, billed to you
  • Shared state: every agent and teammate reads and writes the same rows, so work done in one tool is context in the next
  • Versioned: ICP rules, prompts and scores are kept alongside the results they produced, so you can diff two versions or roll one back
  • Free, and source available under BUSL, converting to Apache 2.0

What it isn't

  • Not a data vendor. It ships no contact data and resells you nothing
  • Not a CRM, and not trying to replace one
  • Not a sequencer. It sends nothing on your behalf
  • Not a routing layer. Nothing passes through us, because there is no us to pass through

Ask it the questions nobody can currently answer

Your agent has the whole database. These are real questions, and the answers exist because every row remembers where it came from.

Where did this list actually come from?
1,240 leads, pulled from Apollo on 12 Aug 2026. Filters were headcount 50-500, US only, titles matching "head of support". 318 came from a second pull on 28 Aug with the headcount floor dropped to 20.
Have we already enriched any of these people?
612 of 900 are already enriched, most recently 3 Sep. Enriching the remaining 288 will cost 288 credits. The other 612 are served from cache and cost nothing.
Which message went to which version of this audience?
Audience v1 got messages v1 and v2. Audience v1.1, which added the Series B filter, got v3 only. The 47 leads that appear in both got v2 and v3, and 12 of them replied after v3.
What changed when I tightened the ICP last week?
Qualifier icp_v4 dropped 214 leads that icp_v3 had passed, mostly on the new headcount floor. 31 of those had already been messaged. Both verdicts are still stored, so you can diff or roll back.
Is any of this stale?
1,847 rows were enriched more than 90 days ago. Job titles drift fastest. Re-running keeps the old values, so you can measure how much actually changed before trusting the next run.
Which prompt filled in this column?
Column persona was written by classifier persona_v2 on 19 Aug, using gpt-4o-mini. The prompt is stored with the run, along with the full result for each row, so you can re-run it or fix it and compare.

Use it for one company, or twenty

MarketBase was built by people running go-to-market for a single company and by people running it for a dozen clients at once. Both are first-class, and it is the same schema and the same tools either way.

If you run one

Point it at a database, apply the schema, and you are done. There is no instance concept to learn and nothing extra to configure. Everything on this page works exactly as described.

python3 tools/apply_schema.py

If you run many

Each client gets its own named instance and its own database, with credentials scoped per instance so a run can never be billed to the wrong client. One secrets project holds them all without collision.

--instance acme · --instance northwind

Work compounds across clients

Competitor research, battle cards, classifiers, scoring rules and export formats are built once and reused. A new client starts with everything you have already figured out, instead of a blank Clay table.

Data does not

Instances are separate databases. One client's leads, enrichments and conversations never touch another's. What travels between them is the logic you wrote, never the records.

Quickstart

Any Postgres works: local, Neon, Supabase, RDS.

# point it at a database you already have
git clone https://github.com/marketbase-dev/marketbase.git && cd marketbase
export MARKETBASE_URL="postgresql://localhost:5432/marketbase"

# apply the schema (tracked, so re-running is a no-op)
python3 tools/apply_schema.py

Running it for several clients? Each gets its own instance and its own credential, on the same schema and the same tools. Already on gtmdb? It is the same schema, so there is nothing to migrate: ./scripts/migrate_from_gtmdb.sh just registers it.

Drive it from your agent

The repo is a Claude Code plugin, so the questions above are things you actually type.

/plugin marketplace add marketbase-dev/marketbase
/plugin install marketbase@marketbase

It is a Postgres database, so anything that speaks SQL already works: Cursor, VS Code, n8n, OpenClaw, a Python script, or a teammate in psql.