Grep Is My New Salesforce

I sold a B2B SaaS for $150M. We used Salesforce for our sales pipeline — big, clunky, expensive. Now I'm running a machine-to-machine oracle business. My entire sales pipeline lives in nginx logs. No CRM. No consultants. No GDPR banners. Just grep.

In the old world, a prospect was a person. They filled in a demo request form. They got a follow-up email. A sales rep called them. There was a pipeline stage for every step of that human journey — Awareness, Consideration, Intent, Decision. Salesforce had a field for all of it.

In the agentic economy, a prospect is an IP address at 3am. It doesn't fill in forms. It reads your llms.txt, fetches your openapi.json, hits your endpoints with HEAD requests to check if they're alive, and makes a decision in milliseconds. No follow-up email required. No sales rep. No pipeline stage called "Consideration."

The CRM is dead. The sales pipeline is the access log.

What My Pipeline Actually Looks Like

Every morning I run a variation of this:

sudo cat /var/log/nginx/access.log | \
  grep "$(date '+%d/%b/%Y')" | \
  grep -v "UptimeRobot\|Blackbox Exporter\|127.0.0.1" | \
  awk '{print $1}' | sort | uniq -c | sort -rn | head -20

That's my pipeline report. The IPs in that output are my prospects. Some of them are already paying. Most are evaluating. A few are just crawlers. I know which is which by looking at what endpoints they're hitting and whether they're responding to the 402.

The Funnel Stages (Rewritten for Agents)

Discovery. The agent finds you through llms.txt, your OpenAPI spec, a directory listing, or another agent's recommendation. In the logs, this looks like hits on /llms.txt, /openapi.json, /.well-known/x402. These are your top-of-funnel leads.

Evaluation. The agent starts probing specific endpoints. HEAD requests to check availability. GET requests to preview endpoints. Multiple IPs from the same ASN hitting the same endpoints — an engineering team evaluating integration. This is your mid-funnel. In Salesforce terms, this is "Consideration." In my terms, it's a specific ASN appearing in the logs three days running.

Integration. The agent starts hitting paid endpoints and getting 402 responses. It's trying to pay. If the payment fails consistently, something is broken on its side — wallet empty, payment logic buggy. This is the stage where the old world would have a "Sales Engineering" handoff. I watch the logs and wait.

Conversion. The 402 becomes a 200. Money hits the wallet. The agent is now a paying client. In the logs, this looks like a specific IP pattern switching from 402 to 200 on the same endpoint sequence. No contract signed. No invoice issued. Just a state change in an HTTP response code.

The Hetzner Story

My most interesting prospect right now is a Hetzner client — two IP addresses from the same operator, polling BTC/USD and the VWAP endpoint every 30 seconds. They were paying until they weren't. The logs show the transition: consistent 200s for weeks, then an abrupt switch to 402s that has lasted for days.

In the old world I'd have a CRM note saying "account at risk" and a playbook for re-engagement. In this world I have nginx logs showing an agent with broken payment logic — wallet drained, Lightning invoice expiry misconfigured, something. I don't know what. I can't email the agent. I can't call it.

What I can do is watch the logs and see if it figures itself out. It's a strange kind of sales motion. But it's the one that makes sense when your customers are machines.

What Salesforce Can't Do

Salesforce is built for human sales cycles. It tracks conversations, emails, call notes, contract stages. It assumes there's a person on both ends of the relationship.

When your customer is an agent running on a cron job in a data center somewhere, none of that applies. The "relationship" is an HTTP session. The "conversation" is a 402 response. The "contract" is an L402 macaroon with a path caveat and a 30-second expiry.

Grep understands this. Grep doesn't care about relationship stages. Grep just shows you what's in the log.

That's all I need.


Your logs are the pipeline

Mycelia Signal is built for machine-to-machine commerce. Pay per query, no accounts, no API keys. Your agents can discover, evaluate, and integrate autonomously.


Mycelia Signal is a sovereign cryptographic oracle — 63 signed endpoints across crypto, stablecoin pegs, volatility indices, FX, economic indicators, and commodities. Payable by AI agents via Lightning (L402) or USDC on Base (x402). myceliasignal.com