trycompai/crm: The CRM Where the Agent Does the Work

A deep dive into a durable, evidence-first customer system that flips the usual CRM model. Humans define intent. Agents gather proof. The database just records what survived scrutiny.

9 min read View on GitHub More from trycompai

A human executive stands beside an almost blank form while a mechanical research agent sorts labeled evidence into a thick ledger book. The image shows the core inversion in this CRM: the human sets intent, the agent gathers proof, and the record only changes when evidence survives review.
In this CRM, the empty form is the point. The agent does the work, and the ledger keeps only what can be defended.
Key Takeaways

The CRM Reversal

Traditional CRMs make humans do the typing and software do the storing. trycompai/crm reverses that contract: the agent researches, enriches, and updates, while the database acts like a ledger of verified facts. That is why this repo is interesting before you even look at the stack.

The project’s basic claim is blunt. A CRM should not reward whoever can fill forms fastest. It should reward the system that can accumulate evidence, keep provenance, and leave a clean trail for review.

The agent is not a feature of the CRM; the CRM is where the agent keeps its notes.

Lewis Carhart, Co-founder & CEO, Comp AI · trycompai/crm README

Why Confidence Is the Wrong Primitive

The repo rejects the familiar AI habit of returning a confidence score and calling it rigor. Instead, the agent reports observations such as identity matches, signature blocks, and public records. The system then decides whether that evidence is strong enough to write back.

That choice changes the product’s epistemology. The goal is not to make the model sound sure. The goal is to prevent plausible lies from becoming customer data.

A close-up proof desk shows index cards of different evidence types moving toward a narrow gate, with a red stamp for insufficient evidence and a green stamp for write to record. Some cards stop at the threshold while others pass into a ledger channel.
The system prices evidence, not confidence. Weak signals remain visible, but they do not mutate the record.

This diagram shows the product’s real loop: observe, store provenance, test the threshold, then write only when the evidence clears.

How the Durable Queue Keeps the Agent Alive

The technical proof lives in the task system. The repo’s queue pattern uses PostgreSQL leasing with FOR UPDATE SKIP LOCKED, which lets multiple workers claim due work without stepping on each other. If an agent crashes, the task is not lost. It is simply eligible again.

// lib/tasks.ts style queue claim pattern
const rows = await db.$queryRaw`
  SELECT id
  FROM tasks
  WHERE due_at <= now()
    AND leased_at IS NULL
  ORDER BY due_at ASC
  FOR UPDATE SKIP LOCKED
  LIMIT 1
`;

// lease task, process, then write evidence back when complete

That is a small detail with big consequences. It turns the agent into durable infrastructure instead of a fragile cron job with an LLM attached.

PatternWhat happensFailure mode
Cron jobRuns on a timer and hopes work is still validMissed work or duplicate work
Leased queueClaims one due task at a timeWork resumes safely after interruption
Request-response AIAnswers once and exitsState disappears with the request
Durable agentKeeps state and returns to the queueSlow work survives restarts

What Eve Changes About Agent Design

The other unusual move is filesystem-first agent design. Under .agents/, the repo stores SKILL.md files and AI elements as readable artifacts, which means behavior is versioned like code but read like prose. That is a much more legible contract than hidden prompt strings buried in application logic.

This matters because agent behavior is not just a model choice. It is a repository of instructions, tools, and conventions that teammates can inspect, review, and modify.

.agents/skills/nestjs-best-practices/SKILL.md is the kind of file that tells you the project wants agents to be teachable, not magical.

Why This Architecture Feels Safer Than a Typical AI CRM

The sandbox posture helps. The agent operates with deny-all egress, so the default is containment rather than open-ended network freedom. Add the no-guessing rule and human intent at the top of the workflow, and the whole system reads as controlled automation instead of autonomous improvisation.

Nothing about a person is guessed. No tool accepts a confidence score, because a model asked to grade its own certainty will, and it will be wrong in the direction that makes it look useful.

Lewis Carhart, Co-founder & CEO, Comp AI · trycompai/crm README

That is a strong governance stance for a CRM. It does not promise omniscience. It promises fewer silent mistakes.

How It Compares to Twenty, HubSpot, and Attio

This project is not trying to win the CRM market by being the most complete dashboard. It is trying to change who does the work. Most CRMs still optimize for human data entry. trycompai/crm optimizes for machine verification.

SystemPrimary workerData modelWorkflow styleSelf-hosted?Evidence policyBest fit
trycompai/crmAgentEvidence ledgerDurable research and reviewYesNo guessing, write only on proofTeams that want autonomous enrichment
HubSpotHumanCustomer databaseManual plus automationNoConfidence lives in features, not the core modelBroad sales and marketing ops
TwentyHumanFlexible CRM schemaTraditional CRM workflowYesUser-driven data managementOpen-source CRM teams
AttioHumanUnified data modelAI-assisted workflowNoStrong automation, still SaaS-firstModern teams wanting polished UX

The contrast is not really about features. It is about labor economics and trust. Self-hosting, evidence thresholds, and agentic durability make this project feel closer to a controlled internal system than a generic SaaS product.

What the Project Suggests About the Next CRM Category

The larger implication is simple. CRM may stop being a place where people type account truth into forms. It may become a system that continuously assembles, verifies, and audits customer intelligence in the background.

A hedcut-style portrait of Lewis Carhart, rendered from his verified GitHub avatar. The portrait provides attribution for the README quotes and grounds the article in the project's public voice.

The pitch is literal, not marketing fluff: a durable research agent is the product; the database is where it writes things down.

Yash Thakker, Tech Analyst · Comp AI Open-Sourced an Agentic CRM

That is the cleanest way to describe the repo. The database is not the product. The verified record is the product, and the agent is the worker that earns it.