Office hours: Build your self-driving GTM engine·Oct 29, 9:00am PT, onlineRegister→
Cargo
  • PrimitivesData ModelsYour companies, contacts and deals, merged from every sourceContextWhat your team knows, as files every agent readsTerritoriesWho sells where, defined onceMailboxesMailboxes in your reps' names, warmed up and kept under limitsToolsThe actions your agents, plays and reps callAgentsAI that researches, decides and writes, reading your contextPlaysWorkflows that run on a trigger or a schedule, with retriesAppsInternal apps for your reps, hosted on Cargo
    Add-onsChrome ExtensionSell faster, right in your browserButtonTrigger AI agents inside your CRMFormTurn any tool into an embeddable formSlackTag Cargo in Slack. It does the GTM workGitHubPlan on every pull request, deploy on merge
    MoreProjectsDefine your entire GTM in codeCLIUse Cargo from your terminalMCPUse Cargo from Claude and ChatGPTDeveloper resourcesCargo API docs, OpenAPI spec, auth docs, webhooks, MCP serverAPI ReferenceExplore the Cargo APIDocumentationLearn how to use CargoIntegrationsConnected to your entire GTM stack
  • VeriffHow Veriff replaced MuleSoft with Cargo under NetSuite, Stripe and SalesforceAugmentHow Augment Code routes developer sign-ups to reps in under an hourWeights & BiasesHow Weights & Biases ships a new purchase signal in 2 days on CargoSee all
  • Pricing
  • Cookbooks
  • Blog
Sign in
Blog

Do Early-Stage Startups Still Need a CRM?

30 Sept6min read
AurelienAurelien

No, not on day one. A growing number of early-stage companies run go-to-market out of a git repository of plain files, add a database when files stop scaling, and bring in a CRM once they have a sales team whose work needs one. That order is cheaper and faster, and it leaves less to migrate later. The exception is a company that already knows it will need a CRM at scale and would rather never switch.

An audience member put it to the panel at GTM Belongs in Git: if you are a startup with no legacy data, are you better off skipping the CRM entirely? The answers disagreed in a useful way.

What we see early-stage teams doing #

From where Cargo sits, the pattern is consistent. More companies put a CRM in place later than they used to. At the start, go-to-market is a repository: a context layer of files describing the ICP, the personas, the accounts being worked, and the plays being run. Agents read it and write to it. At some point the team needs a real database, and the question becomes whether that should be a raw database like Postgres or a CRM.

John Kutay, who runs GTM engineering at Rippling, described the same progression from the other end: keep your GTM brain in git as long as you can, because files are versioned, readable and consumable by agents, and move to a database when concurrent writers make pull requests the bottleneck. Even at Rippling’s scale, that is where he starts.

The case for buying one anyway #

Noah Adelstein, who runs growth at Netic, did the opposite on purpose. When he joined, the goal was to build a very large business, and he did not want to spend any time on CRM questions later, so he bought Salesforce knowing it would scale with them.

That is a real reason, and it is a specific one. It holds when you are confident the company will need an enterprise CRM, you will hire a sales team soon, and the cost of migrating later outweighs the cost of carrying one now. His own caveat: at a company not in that situation, he would be far more pragmatic about what it actually needs to accomplish. Do you have salespeople yet? What are they doing? He does not think you absolutely need one, and plenty of teams prove it.

What a CRM gives you that a repo does not #

The decision is easier if you are specific about what you would be buying. A CRM is several things bundled together:

CapabilityNeeded whenWithout a CRM
Many people editing records at onceSeveral reps update the same accounts dailyFiles and PRs get slow; use a database
Pipeline stages and forecastingSomeone reviews a forecast every weekA table and a dashboard, if it is simple
A rep-facing interfaceReps who do not work in a repo need to act on dataA small internal app on your data
Integrations that expect a CRMA tool you rely on only syncs with a CRMOften the deciding factor
Permissions and audit for salesTerritories, managers, complianceGit history covers changes, not access

Before you have salespeople, almost none of these apply. The founder is the sales team, the records fit in files, and git already gives you what a CRM’s audit log would: who changed what, and when.

The signs it is time #

Buy a CRM when two or more of these are true:

  1. You have hired dedicated sales reps, and they need to update records every day without learning a repository.
  2. Someone reviews a forecast weekly and wants stages, amounts and close dates in a standard shape.
  3. Concurrent edits are causing conflicts, and a plain database is not enough because reps need an interface on top.
  4. A tool you depend on only integrates with a CRM.
  5. Your investors or board expect pipeline reporting you cannot produce from what you have.

Until then, the repository plus a database is not a compromise. It is a better fit for a team where agents do much of the work, because agents operate on files and tables far more reliably than on a CRM’s interface.

If you start without one, keep the door open #

The teams that switch painlessly later do three things from the start:

  • Use stable keys. A normalized domain for companies and a normalized profile URL for people, so records map cleanly into any system you adopt.
  • Keep state and history apart. Current values in one place, events with timestamps in another, so nothing is lost when you import.
  • Write down what each field means. A CRM migration is mostly a mapping exercise, and a file that says what every field is makes it a short one.

When the CRM does arrive, it becomes the process layer: opportunities, stages, forecasts. The logic that decides which accounts matter can stay where it started, in the repository, as code. That is what GTM as Code describes, and it is the part you never have to migrate.

FAQ #

Usually not before it hires dedicated sales reps. Many early teams run go-to-market from a git repository of files and a database, then adopt a CRM once reps need to update shared records daily or someone reviews a forecast every week.

A version-controlled repository for the ICP, personas, accounts and plays, plus a database such as Postgres once many writers update the same records. A small internal app can serve as the interface. This covers most needs until there is a sales team.

When two or more of these are true: dedicated reps need to edit records every day, a weekly forecast review needs standard pipeline stages, concurrent edits are causing conflicts, a critical tool only integrates with a CRM, or the board expects pipeline reporting.

Sometimes. If you are confident you will need an enterprise CRM and a sales team soon, buying early avoids a migration. Otherwise, starting with stable keys and documented fields keeps a later migration short.

~/run-it-on-cargo/

Build this workflow instead of reading about it.

Cargo is the GTM infrastructure your coding agent builds on: enrichment, scoring, routing and outreach, defined in code and run in production.

Start building
AurelienAurelienSept 30, 2026
On this page
  • What we see early-stage teams doing
  • The case for buying one anyway
  • What a CRM gives you that a repo does not
  • The signs it is time
  • If you start without one, keep the door open
  • FAQ

Stay Informed with our
weekly Newsletter

Related articlesSee all articles
GTM Strategy
Your Agents Can Build Your GTM. Should You Run the Infrastructure Too?

AI made GTM workflows cheap to build, so teams build more of them, and every one becomes something to run. The four hidden costs of owning GTM infrastructure, when building it yourself is the right call, and what to own instead.

MaxMax·Oct 21, 2026
GTM Strategy
How to Version-Control Your Go-to-Market Stack in Git (GTM as Code)

To version-control your go-to-market stack in git, declare it in TypeScript as a Cargo project: cargo-ai project init scaffolds the repo, cargo-ai project plan prints the change as a diff your team reviews in a pull request, and cargo-ai project deploy ships it. GTM as Code, defined, with the primitives and how to start.

MaxMax·Oct 16, 2026
GTM Strategy
Building GTM Is Starting to Look a Lot Like Building Software

Revenue logic is leaving tool settings and becoming code that agents write and humans review. The four shifts behind it: code over configuration, versioned governance, new build-vs-buy economics, and a GTM system that improves instead of being rebuilt.

MaxMax·Oct 9, 2026

Build the self-driving GTM engine

Your coding agents build it on Cargo.Or our team builds, operates and improves it with you.

Start building
Cargo
Backed byY CombinatorSOC 2 Type IICertified
LinkedinX

Product

Data ModelsContextTerritoriesMailboxesToolsAI AgentsPlaysAppsIntegrationsPricing

Add-ons

Chrome extensionButtonFormSlackGitHub

Build

DocsDeveloper resourcesCargo API docsCargo OpenAPI specCargo auth docsCargo webhooksCargo MCP serverProjectsClaude CodeCodexCursorAll coding agents

Resources

ReportsBlogCustomer storiesCookbooksEnrichmentRoutingSignalsScoringCRM hygieneAd audiencesGTM skillsGTM EngineeringGlossaryCompareCargo x ClayCargo x WorkatoCargo x n8nCargo x DeeplineCargo x DefaultCargo x LeanDataCargo x UnifyCargo x ValleyCargo x GojiberryCargo x PhantomBusterCargo x ZapierCargo x ApolloCargo x Chili PiperCargo x Common RoomCargo x MakeCargo x Tray.io

Company

ManifestoCommunityEventsJobsPartners DirectoryPartner Program

Legal

SecurityTerms of servicePrivacy PolicyRefundsDPASupport
© 2026 Cargo
 ////////    ///////    ////////     ////////    ///////
///         ///   ///   ///   ///   ///         ///   ///
///         ///   ///   ///   ///   ///         ///   ///
///         /////////   ////////    ///  ////   ///   ///
///         ///   ///   /// ///     ///   ///   ///   ///
///         ///   ///   ///  ///    ///   ///   ///   ///
 ////////   ///   ///   ///   ///    ///////     ///////

$ npm install -g @cargo-ai/cli