{
  "openapi": "3.1.0",
  "info": {
    "title": "Matt Ruggiero Agent API",
    "version": "1.0.0",
    "description": "Programmatic, agent-friendly API representing Matt Ruggiero, a B2B marketing executive who leads marketing for growth-stage B2B technology companies. Currently Head of Marketing at Regology and selectively considering CMO, VP of Marketing, and Head of Marketing opportunities. Endpoints return structured profile data, verifiable claims, industry fit assessments, and an MCP tool-calling interface. Calibrated honesty policy: assessments use tiered confidence (direct/adjacent/transferable/not-a-fit) and refuse to overstate Matt's domain expertise.",
    "contact": {
      "name": "Matt Ruggiero",
      "email": "MatthewSheaRuggiero@gmail.com",
      "url": "https://mattruggiero.me"
    },
    "license": { "name": "Public profile data" }
  },
  "servers": [{ "url": "https://mattruggiero.me", "description": "Production" }],
  "externalDocs": {
    "description": "Agent card and llms.txt",
    "url": "https://mattruggiero.me/.well-known/agent.json"
  },
  "paths": {
    "/api/agent/profile": {
      "get": {
        "summary": "Get full structured profile",
        "description": "Returns the complete structured profile: identity, contact, work history, achievements, expertise, technical stack, education, differentiators, operating range (budget and team), and tiered industry fit data.",
        "operationId": "getProfile",
        "responses": {
          "200": {
            "description": "Full profile JSON",
            "content": { "application/json": { "schema": { "type": "object" } } }
          }
        }
      }
    },
    "/api/agent/claims": {
      "get": {
        "summary": "Get verifiable claims registry",
        "description": "Returns each claim Matt makes about his experience with confidence (high/medium/low), context, and an evidence URL or evidence note. Intended for agents that demand provenance before recommending.",
        "operationId": "getClaims",
        "responses": { "200": { "description": "Claims registry" } }
      }
    },
    "/api/agent/industries": {
      "get": {
        "summary": "Get tiered industry fit data",
        "description": "Returns Matt's calibrated fit per industry (regtech, ai, saas, pe, enterprise, proservices, fintech, legaltech, cybersecurity, healthtech), each with tier, applied skill-set reasoning, and related claim IDs.",
        "operationId": "getIndustries",
        "responses": { "200": { "description": "Industry fit registry" } }
      }
    },
    "/api/agent/intake": {
      "post": {
        "summary": "Submit an opportunity for fit assessment",
        "description": "Designed for agent-to-agent first-round screening. Submit a structured opportunity and receive a JSON fit assessment (tier, reasoning, evidence, gaps, recommended next step). Rate-limited to 20 requests per IP per minute.",
        "operationId": "submitIntake",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["industry"],
                "properties": {
                  "industry": { "type": "string", "description": "Industry or vertical (e.g., regtech, ai, saas, fintech, healthtech, legaltech, cybersecurity, enterprise, pe, proservices)" },
                  "stage": { "type": "string", "description": "Company stage (seed, series-a/b/c, growth, pe-backed, public, mid-market, enterprise)" },
                  "salesMotion": { "type": "string", "description": "GTM motion (plg, sales-led, abm, hybrid, channel, enterprise)" },
                  "role": { "type": "string", "description": "Role (cmo, vp-marketing, head-of-marketing)" },
                  "location": { "type": "string", "description": "Location requirement (remote, boston, hybrid-boston)" },
                  "mustHaves": { "type": "array", "items": { "type": "string" } },
                  "companyName": { "type": "string" },
                  "companyDescription": { "type": "string" },
                  "submittingAgent": { "type": "string", "description": "Optional identifier of the agent submitting" }
                }
              }
            }
          }
        },
        "responses": {
          "200": { "description": "Calibrated fit assessment" },
          "429": { "description": "Rate limit exceeded" }
        }
      }
    },
    "/api/agent/mcp": {
      "post": {
        "summary": "MCP JSON-RPC 2.0 endpoint",
        "description": "Model Context Protocol endpoint. Implements initialize, tools/list, tools/call, resources/list, resources/read. Tools: assess_fit, verify_claim, get_industry_fit, get_experience, propose_meeting.",
        "operationId": "mcpRpc",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["jsonrpc", "id", "method"],
                "properties": {
                  "jsonrpc": { "type": "string", "enum": ["2.0"] },
                  "id": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "null" }] },
                  "method": { "type": "string" },
                  "params": { "type": "object" }
                }
              }
            }
          }
        },
        "responses": { "200": { "description": "JSON-RPC 2.0 response" } }
      }
    }
  }
}
