{
  "opencollection": "1.0.0",
  "info": {
    "name": "HeyMilo Public ATS Interviewers API",
    "version": "2.0.0"
  },
  "request": {
    "auth": {
      "type": "apikey",
      "key": "X-API-KEY",
      "value": "{{X-API-KEY}}",
      "placement": "header"
    }
  },
  "items": [
    {
      "info": {
        "name": "Interviewers",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List interviewers",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.heymilo.ai/api/v2/postings",
            "headers": [
              {
                "name": "X-API-KEY",
                "value": ""
              },
              {
                "name": "Authorization",
                "value": ""
              },
              {
                "name": "X-Workspace-Id",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "starting_after",
                "value": "",
                "type": "query"
              },
              {
                "name": "search",
                "value": "",
                "type": "query",
                "description": "Case-insensitive substring filter on the posting title."
              }
            ]
          },
          "docs": "Retrieve a paginated list of interviewers for the authenticated workspace."
        },
        {
          "info": {
            "name": "Create an interviewer",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.heymilo.ai/api/v2/postings",
            "headers": [
              {
                "name": "X-API-KEY",
                "value": ""
              },
              {
                "name": "Authorization",
                "value": ""
              },
              {
                "name": "X-Workspace-Id",
                "value": ""
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a fully-configured interviewer with an agentic workflow. Returns the new posting ID, URLs, and a full posting receipt.\n\n**ATS-derived templates use a two-step flow.** When `interview_template_id` references a template whose blueprint is ATS-derived, the new posting is returned in an intermediate stage (`status: \"draft\"`, `ats_metadata.pending_activation: true`) and does **not** begin ingesting candidates. Transition it to live by calling `POST /postings/{posting_id}/activate`, which final"
        },
        {
          "info": {
            "name": "List interviewer summaries",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.heymilo.ai/api/v2/postings/list",
            "headers": [
              {
                "name": "X-API-KEY",
                "value": ""
              },
              {
                "name": "Authorization",
                "value": ""
              },
              {
                "name": "X-Workspace-Id",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "starting_after",
                "value": "",
                "type": "query"
              },
              {
                "name": "search",
                "value": "",
                "type": "query",
                "description": "Case-insensitive substring filter on the posting title."
              }
            ]
          },
          "docs": "Retrieve a lightweight paginated list of interviewers (id, title, name only) for the authenticated workspace."
        },
        {
          "info": {
            "name": "Get an interviewer",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.heymilo.ai/api/v2/postings/:posting_id",
            "headers": [
              {
                "name": "X-API-KEY",
                "value": ""
              },
              {
                "name": "Authorization",
                "value": ""
              },
              {
                "name": "X-Workspace-Id",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "posting_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Retrieve the full details of a specific interviewer by ID."
        },
        {
          "info": {
            "name": "Update an interviewer",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.heymilo.ai/api/v2/postings/:posting_id",
            "headers": [
              {
                "name": "X-API-KEY",
                "value": ""
              },
              {
                "name": "Authorization",
                "value": ""
              },
              {
                "name": "X-Workspace-Id",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "posting_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update fields on an existing interviewer. Only provided fields are modified; omitted fields remain unchanged."
        },
        {
          "info": {
            "name": "Get interviewer stats",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.heymilo.ai/api/v2/postings/:posting_id/stats",
            "headers": [
              {
                "name": "X-API-KEY",
                "value": ""
              },
              {
                "name": "Authorization",
                "value": ""
              },
              {
                "name": "X-Workspace-Id",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "posting_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Retrieve aggregate statistics for an interviewer in a single call: total candidate count, completed interview count, and average interview and resume scores.\n\nThe two score fields are independent per-agent averages and are `null` when that agent is not part of the interviewer's workflow, or when no candidate has been scored yet."
        },
        {
          "info": {
            "name": "Update a workflow step's config",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.heymilo.ai/api/v2/postings/:posting_id/workflow/:step_id",
            "headers": [
              {
                "name": "X-API-KEY",
                "value": ""
              },
              {
                "name": "Authorization",
                "value": ""
              },
              {
                "name": "X-Workspace-Id",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "posting_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "step_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Partially update one workflow step's config without touching other steps or posting-level fields. ``step_id`` is the step's ``type`` or its 1-based ``order``."
        },
        {
          "info": {
            "name": "Archive an interviewer",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.heymilo.ai/api/v2/postings/:posting_id/archive",
            "headers": [
              {
                "name": "X-API-KEY",
                "value": ""
              },
              {
                "name": "Authorization",
                "value": ""
              },
              {
                "name": "X-Workspace-Id",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "posting_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Archive an interviewer. Archived interviewers stop accepting new candidates."
        },
        {
          "info": {
            "name": "Activate an interviewer",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.heymilo.ai/api/v2/postings/:posting_id/activate",
            "headers": [
              {
                "name": "X-API-KEY",
                "value": ""
              },
              {
                "name": "Authorization",
                "value": ""
              },
              {
                "name": "X-Workspace-Id",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "posting_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Activate an interviewer so it begins accepting candidates. The interviewer must have a valid workflow configuration.\n\nFor ATS-derived postings still in the `pending_activation` intermediate stage (created via `createPosting` with an ATS-derived `interview_template_id`, or `clonePosting` of an ATS-derived posting), this call finalizes the posting **and** attaches the ATS mapping so candidate ingestion from the ATS begins. The two steps run in one call; the ATS attach is idempotent and best-effort"
        },
        {
          "info": {
            "name": "Clone an interviewer",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.heymilo.ai/api/v2/postings/:posting_id/clone",
            "headers": [
              {
                "name": "X-API-KEY",
                "value": ""
              },
              {
                "name": "Authorization",
                "value": ""
              },
              {
                "name": "X-Workspace-Id",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "posting_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Create a copy of an existing interviewer with its workflow configuration.\n\nIf the source interviewer is ATS-derived, the clone is returned in the same intermediate stage as a fresh ATS create (`status: \"draft\"`, `ats_metadata.pending_activation: true`) and must be transitioned to live via `POST /postings/{posting_id}/activate`. Cloning a non-ATS posting is unchanged."
        }
      ]
    }
  ],
  "bundled": true
}