{
  "openapi": "3.0.3",
  "info": {
    "title": "Enknapp Consultant API",
    "description": "Public API for accessing consultant profiles. Machine-readable profiles for recruiters and AI agents.",
    "version": "2.0.0",
    "contact": {
      "name": "Enknapp",
      "email": "claudio@enknapp.nu",
      "url": "https://enknapp.nu"
    },
    "license": {
      "name": "Proprietary"
    }
  },
  "servers": [
    {
      "url": "https://func-cvbot-dev-swc.azurewebsites.net",
      "description": "Production API"
    }
  ],
  "paths": {
    "/api/consultant-public/{consultant_id}": {
      "get": {
        "summary": "Get consultant profile",
        "description": "Returns the full public profile for an active consultant including skills, employment history, certifications, and contact information.",
        "operationId": "getConsultantProfile",
        "tags": ["Consultants"],
        "parameters": [
          {
            "name": "consultant_id",
            "in": "path",
            "required": true,
            "description": "Unique consultant identifier (lowercase alphanumeric with hyphens)",
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9-]+$",
              "example": "claudio-torres"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Consultant profile retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "https://enknapp.nu/api/consultant-public.schema.json"
                }
              }
            }
          },
          "404": {
            "description": "Consultant not found or inactive",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "example": "Consultant not found"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/consultant-photo/{consultant_id}": {
      "get": {
        "summary": "Get consultant photo",
        "description": "Returns the consultant's profile photo as binary image data.",
        "operationId": "getConsultantPhoto",
        "tags": ["Consultants"],
        "parameters": [
          {
            "name": "consultant_id",
            "in": "path",
            "required": true,
            "description": "Unique consultant identifier",
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9-]+$",
              "example": "claudio-torres"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Profile photo retrieved successfully",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Consultant or photo not found"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Consultants",
      "description": "Public consultant profile endpoints"
    }
  ],
  "externalDocs": {
    "description": "Human-readable API documentation",
    "url": "https://enknapp.nu/api-docs.html"
  }
}
