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.
/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.
Build one experimentation data lake that knows everything
Every enrichment and data upload is cached before it is parsed.
Every record knows where it came from.
Every qualification and routing decision remembers its source parameters.
You own the data, controlling costs and growing at your own pace.
final_v3_USE_THIS.xlsxMarketBase is four layers on one Postgres database. Data comes in at the top, decisions go out at the bottom, and every layer between them keeps a record of what it did.
Every vendor response is cached before it is parsed, keyed on the API, endpoint and params that produced it. A crashed job resumes from cache. A re-run costs nothing.
People and companies, one row each, however they arrived. A person who shows up as a phone number and later as a LinkedIn profile stays one lead.
What you observed, what you decided, and why. Observations and judgments live in separate tables, so refreshing data never rewrites a decision.
Decisions delivered where the work happens: campaigns, exports and saved reports, with outcomes and CRM deal state written back so the next run knows.
Everything in MarketBase is one of these. Learn them and you can read any row in the database.
One row per person and per company, with every handle a person is known by: LinkedIn, email, phone.
leads · companies · lead_identitiesWhich pull, which filters, which day. A lead found three ways has three sources and still one row.
lead_sources · source_typesThe raw response, its cost and when it was fetched. This is what makes "never pay twice" true.
enrichment_callsWhat a source said about a lead or company on a given day. Append-only and safe to refresh.
signalsWho decided what about whom, under which version of the rules. Qualified, disqualified, a customer, a competitor.
assertions · lead_qualificationsCustomer of, partner of, competes with. Any company, any counterparty, never deleted, only withdrawn.
company_edgesNamed, versioned classifiers, fetchers and enrichers. Versions are immutable, so old decisions stay explainable.
processorsHow long each source stays fresh, and where you sell. Each one carries the evidence it came from.
enrichment_source_policy · territory_policyCampaigns, conversations, meetings and open deals. A lead at an account with a live deal is held back automatically.
campaign_members · lead_conversations · company_dealsMarketBase makes go-to-market data sourced, cached, versioned, explainable and replayable.
Your agent has the whole database. These are real questions, and the answers exist because every row remembers where it came from.
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.