All posts
AGENTS.md for GTM: How to Write the Instruction File for Your Revenue Stack
gtm engineeringai sdr toolsagents mdlead enrichmentdata provenance
9 min read

AGENTS.md for GTM: How to Write the Instruction File for Your Revenue Stack

A
Akash MunshiSeptember 19, 2026

AGENTS.md for GTM: Instructions for Your Revenue Stack

Unstructured prompt chains fail rapidly when applied to autonomous revenue workflows. At Drevon, we built our free Mac application for outbound research to run browser-native prospecting workflows without opaque cloud markups. An analysis by the RAND Corporation found that over 80% of enterprise AI projects fail to reach meaningful production deployment, primarily due to workflow mismatch and specification ambiguity. Software engineering standardized autonomous coding by introducing repository-level instruction files like AGENTS.md. Go-to-market (GTM) engineering requires the exact same structured architectural contract to stop hallucinated Ideal Customer Profile (ICP) matches, enforce strict data provenance, and govern how autonomous agents interact with CRM APIs.

TL;DR

  • Unstructured prompt chains amplify errors 17.2×: Passing raw natural language across multi-step SDR agent workflows causes rapid grounding drift without rigid instruction bounds.
  • The AGENTS.md specification standardizes execution: Governed by the Agentic AI Foundation under the Linux Foundation, AGENTS.md provides a version-controlled, repository-level contract defining agent personas, validation rules, and negative constraints.
  • Affirmative negative constraints prevent qualification leaks: Directing agents with positive operational targets rather than isolated "don't" directives improves decision accuracy by up to 57.7%.
  • Deterministic API boundaries protect CRM allocations: Specifying Salesforce Composite limits (25 subrequests) and HubSpot batch sizes (100 records) directly in markdown instructions prevents 429 rate-limit exhaustion.

Why Revenue AI Agents Fail Without Standardized Instructions

Autonomous sales agents operating on ad-hoc system prompts routinely hallucinate qualifications, conflate corporate entities, and pollute downstream CRMs. In multi-step sales workflows, an ungrounded agent that misidentifies an account's technical stack passes false assumptions into qualification scoring, which then generates misleading outreach copy and corrupted database records. When designing these systems, teams benefit from onboarding an AI agent like a new teammate with explicit role boundaries rather than relying on monolithic system prompts.

Controlled research by Google DeepMind and MIT demonstrated that uncoordinated multi-agent topologies amplify errors by up to 17.2× relative to single-agent baselines when collaborating over unstructured natural language. In contrast, centralized orchestration and explicit coordination boundaries contain error compounding to 4.4×.

┌──────────────────────────────────────────────────────────┐
│              Unstructured SDR Prompt Chain               │
│                                                          │
│  "Find fast-growing B2B SaaS companies hiring engineers"  │
└────────────────────────────┬─────────────────────────────┘
                             │
                             ▼
┌──────────────────────────────────────────────────────────┐
│              Grounding Drift (Turn 2 to 4)               │
│  - Conflates agency consultancies with SaaS products     │
│  - Assumes hiring intent from outdated job aggregators   │
└────────────────────────────┬─────────────────────────────┘
                             │
                             ▼ (17.2× Error Amplification)
┌──────────────────────────────────────────────────────────┐
│                 Direct CRM Pollution                     │
│  - Writes false revenue metrics to Salesforce / HubSpot  │
│  - Dispatches generic, ungrounded cold outreach          │
└────────────────────────────┬─────────────────────────────┘

The operational cost of ungrounded agents compounds across multi-step execution loops. The Stanford HAI 2026 AI Index Report documented 362 real-world AI incidents in 2025—a 55.4% increase over 2024—while evaluating frontier models that exhibited hallucination rates between 22% and 94% when tested against false premises. In outbound prospecting, tracking execution failure requires comprehensive AI agent observability and step-level tracing to intercept context drift before corrupted records hit your primary database.

Workflow Architecture Observed Error Multiplier Primary Failure Mode Data Provenance Guarantee
Unstructured Prompt Chains 17.2× amplification Context drift and entity hallucination None (unverifiable text)
Centralized Structured Orchestration 4.4× amplification Edge-case boundary breaches Partial (prompt-level citations)
AGENTS.md + Constrained Decoding 1.0× (contained baseline) Explicit tool execution timeouts Complete (source URL required)

Moving agent configuration out of opaque web UI prompt boxes into a version-controlled, root-level instruction file provides a single source of truth for RevOps, growth engineers, and autonomous scraping agents alike.


Minimal line art showing guided parallel rails versus chaotic splintering pathways representing agent drift.

The Core Anatomy of a GTM AGENTS.md File

A production-grade GTM AGENTS.md file acts as an operational contract that establishes deterministic behavior across every account research cycle. Adopted across more than 60,000 open-source repositories and stewarded by the Agentic AI Foundation under the Linux Foundation, the open AGENTS.md specification translates directly into revenue stack governance by isolating operational scopes into modular, machine-readable sections.

repository-root/
├── AGENTS.md                   # Global GTM agent instruction contract
├── skills/                     # Deterministic execution workflows
│   ├── extract-hiring-signals.sh
│   └── verify-sec-filing.py
└── schemas/                    # JSON schemas for CRM writes
    └── account-payload.json

An effective GTM instruction file contains five core components:

  1. Role & Operating Context: A bounded statement defining the agent's objective, target territory, and permission layer (e.g., "Read-only web scraping and draft-stage CRM staging").
  2. Deterministic ICP Parameters: Concrete numeric thresholds, firmographic bounds, and disqualification codes aligned with an established ideal customer profile skill.
  3. Evidence & Provenance Protocols: Explicit data validation standards requiring live HTTP URLs and exact textual snippets for every enriched attribute.
  4. CRM Write Boundaries & Rate Limits: Structural batching instructions configured for vendor API governor limits.
  5. Execution Style Patterns: Positive and negative sample JSON payloads illustrating exact acceptable outputs.

The instruction budget principle dictates that constraints enforceable via code (such as type checks or schema validation) should remain in programmatic linters, leaving AGENTS.md focused on behavioral rules and routing logic. When managing token overhead, teams running Claude Code for GTM workflows can leverage prompt caching to reduce recurring context costs by up to 90%.


Minimal line-art diagram of a structured modular blueprint connecting to discrete data components.

Defining Strict ICP Rules and Signal Triggers

Negative constraints in an AGENTS.md file prevent agents from wasting API calls on low-margin verticals, existing customers, or direct competitors. However, empirical prompt research by Bsharat et al. demonstrated that affirmative phrasing ("do X when Y occurs") yields an average 57.7% improvement in model response accuracy compared to purely negative directives ("don't do X").

In autoregressive language models, negative phrasing focuses attention tokens on the prohibited topic. Rather than instructing an agent "Do not prospect agencies," structure the directive around affirmative disqualification pathways:

### Target Account Qualification Rules

1. **Primary Entity Type:**
   - QUALIFY: B2B software companies selling proprietary SaaS subscriptions.
   - ROUTE TO DISQUALIFIED: Entities offering custom software development, digital marketing services, or staff augmentation. Record reason: `business_model_mismatch`.

2. **Headcount Boundaries:**
   - Target range: 50 to 500 total full-time employees.
   - Verify headcount via current LinkedIn company profile employee counts.
   - If headcount < 50, output `{"status": "disqualified", "reason": "sub_scale"}`.
   - If headcount > 500, output `{"status": "disqualified", "reason": "enterprise_out_of_scope"}`.

3. **Buying Signal Verification:**
   - Active Hiring: Locate at least 1 open job posting for "RevOps", "GTM Engineer", or "Sales Operations" published within the last 30 days.
   - Toolstack Signal: Extract evidence of Salesforce or HubSpot usage from public `/careers` postings or HTML script headers.
   - Grounding Rule: Every detected signal MUST store the exact source URL and the timestamp of observation.

By providing explicit routing paths for non-qualifying targets, the agent reliably triages out-of-scope accounts without stalling execution or inventing synthetic fit metrics. These rules integrate directly into a broader GTM motion mix framework to coordinate outbound triggers with inbound channel priorities.


Browser-Native Execution and Tool Routing Guardrails

Autonomous prospecting agents running inside browser sessions require deterministic step-by-step navigation logic. When an agent searches for account data across LinkedIn, corporate blogs, and public career pages, network latencies, rate-limit headers, and authentication screens can derail execution. Evaluating self-hosted AI agents vs cloud agents highlights why local browser execution provides superior credential isolation and avoids third-party API markups.

Your AGENTS.md must clearly define human-in-the-loop escalation triggers and CRM write governors:


![Minimalist line illustration of browser navigation pathways moving through protective boundary gates.](https://ghost.drevon.dev/content/images/2026/09/cmu8hj3u6027lqk0us8yallc3-2.webp)

### Browser Navigation & Extraction Protocols

1. **Verification Order:**
   - Step 1: Query company domain root page (`https://{domain}`) to verify active website status.
   - Step 2: Navigate to `https://{domain}/careers` or `https://{domain}/jobs`.
   - Step 3: Extract open role listings matching ICP keywords. Store raw posting text snippet (max 200 chars).
   - Step 4: If career page is blocked by Cloudflare or CAPTCHA, flag status as `manual_review_required` and skip to next account.

2. **CRM Write Boundaries & Governor Limits:**
   - Direct production record overwrites are STRICTLY PROHIBITED.
   - Stage all enriched accounts into the `stg_prospect_intelligence` table.
   - Group records into batches of 100 before dispatching to the HubSpot `/crm/v3/objects/batch/upsert` endpoint.
   - For Salesforce writes, format payloads for Composite Graph endpoints (`/services/data/vXX.X/composite/graph`) with `allOrNone: true` to enforce atomic transaction rollback.

Documenting precise API constraints directly in markdown instructions prevents automated agent runs from breaching platform rate limits:

Platform Endpoint / Architecture Batch / Unit Limit Daily Allocation Impact
Salesforce /services/data/vXX.X/composite 25 subrequests (max 5 query calls) 1 API call per composite payload
Salesforce /services/data/vXX.X/composite/graph 500 subrequests (max 75 graphs) 1 API call per composite graph
Salesforce /services/data/vXX.X/composite/sobjects 200 records per call 1 API call per collection payload
HubSpot /crm/v3/objects/{type}/batch/* 100 records per call 1 call against 10s burst & daily pool
HubSpot /crm/v4/associations/.../batch/read 1,000 IDs per call 1 call against 10s burst & daily pool

Enforcing these limits protects HubSpot's burst limits (100 requests per 10 seconds on Free/Starter, 190 per 10 seconds on Professional) and prevents unconstrained loops from depleting Salesforce rolling 24-hour API call pools.


A Production-Ready AGENTS.md Template for GTM Engineers

Below is a complete, production-ready AGENTS.md template designed for GTM engineers configuring autonomous outbound discovery and account enrichment agents. For additional patterns on structuring multi-agent instruction files, review the best practices guide for AGENTS.md and the complete guide to AGENTS.md.

# AGENTS.md — GTM Outbound Discovery & Account Enrichment

## 1. Operating Scope & Permissions
You are an autonomous GTM Account Intelligence Agent. Your sole responsibility is identifying, qualifying, and enriching target B2B accounts based on verifiable public web signals.
- Permitted Actions: Public web browsing, company profile inspection, SEC EDGAR filing retrieval, staging database writes.
- Restricted Actions: Direct email dispatch, live CRM record deletion, production field overwriting.

## 2. ICP Definition & Affirmative Constraints
Evaluate target accounts against the following criteria:
- Industry: B2B SaaS / Developer Tools / Cloud Infrastructure.
- Employee Size: 50–500 full-time employees.
- Geography: Headquartered in North America, Western Europe, or ANZ.
- Required Tech Stack: Verified deployment of modern CRM (Salesforce or HubSpot).

Disqualification Rules:
- If the company is an agency, consultancy, or systems integrator, mark `icp_fit: false` and set `exclusion_code: AGENCY_MODEL`.
- If the company website does not resolve or displays a maintenance page, mark `icp_fit: false` and set `exclusion_code: INACTIVE_DOMAIN`.

## 3. Data Provenance & Grounding Protocols
Never emit ungrounded assertions. Every enriched field must satisfy the schema:
```json
{
  "field_name": "string",
  "extracted_value": "string | number | boolean",
  "source_url": "https://...",
  "evidence_snippet": "exact quote from source HTML (max 150 chars)",
  "retrieved_at": "ISO-8601 UTC timestamp"
}

If a data point cannot be extracted with a valid public source URL, set the value to null. Do not infer or extrapolate.

4. Execution Workflow & Fallback Routing

  1. Execute search query across target domain.
  2. Verify business model on /about or /pricing.
  3. Check open requisitions on /careers.
  4. If authentication barriers or anti-bot challenges appear, output: {"action": "ESCALATE_TO_HUMAN", "reason": "AUTH_WALL_DETECTED", "target_url": "..."}
  5. Format final output strictly matching /schemas/account-payload.json.

5. Output Format & Reasoning Order

Always generate intermediate reasoning within <analysis> tags prior to emitting the structured JSON object:

{
  "account_domain": "example.com",
  "analysis": "Verified 120 employees via LinkedIn. Found 2 open GTM Engineering roles on /careers. Confirmed HubSpot tracking script in header.",
  "icp_fit": true,
  "confidence_score": 0.95,
  "data_points": [...]
}

Output schemas should produce predictable tabular formats, such as this [structured research artifact](https://www.drevon.dev/artifacts/trading-crypto-top-content-formats) generated during automated competitive analysis runs.

### Iteration and Testing
Before running this instruction file across tens of thousands of domains, execute regression tests against a golden dataset of 50 known accounts (25 qualified, 25 out-of-scope). Evaluate whether the agent strictly flags non-qualifying domains without manual prompt intervention.

---

## Frequently Asked Questions

### Where should the AGENTS.md file live in a GTM or RevOps repository?
The primary `AGENTS.md` file belongs at the root of your GTM repository. For multi-tier revenue stacks, you can place nested `AGENTS.md` files inside specific subdirectories (e.g., `/workflows/enrichment/AGENTS.md` or `/workflows/crm-sync/AGENTS.md`). Agents prioritize instructions from the file closest to their active execution directory over the root configuration.

### How do autonomous browser agents parse markdown instruction files during execution?
Agent runtimes read `AGENTS.md` into the system context window prior to executing tool calls. The Markdown headings and code fences establish clear semantic boundaries, allowing the model's attention mechanism to isolate negative constraints, schema rules, and tool routing logic from dynamic web page content.

### How often should revenue teams update and version-control their GTM agent instructions?
RevOps teams should treat `AGENTS.md` as production software. Commit updates whenever your ICP criteria change, when new competitor battlecard vectors emerge, or when downstream CRM schema fields are modified. Tracking these instructions in Git ensures full auditability across all prospecting changes.

### What is the difference between system prompts in sales platforms and a root AGENTS.md file?
System prompts inside siloed sales engagement tools are typically unstructured, unversioned, and isolated to single text-generation tasks. A root `AGENTS.md` file serves as a centralized, repository-level standard that governs multi-step tool execution, data provenance requirements, browser scraping protocols, and CRM API batch boundaries across your entire revenue stack.

---

To run deterministic, browser-native account intelligence without prompt drift, download [Drevon for macOS](https://www.drevon.dev/download). For enterprise revenue teams orchestrating high-volume agent workflows across custom CRM architectures, [book an enterprise demo](https://www.drevon.dev/enterprise) to discuss dedicated infrastructure.