{
  "openapi": "3.0.1",
  "info": {
    "title": "Competitor Hiring Intelligence Scraper",
    "description": "Monitor public competitor hiring from career pages and job listings. Returns one flat row per job with competitor name, role category, seniority, location, work mode, ATS platform, a transparent hiring-signal score, and reason tags. No login or cookies.",
    "version": "1.0",
    "x-build-id": "6r0z0r8nUkTvjUeoK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/coregent~competitor-hiring-intelligence-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-coregent-competitor-hiring-intelligence-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/coregent~competitor-hiring-intelligence-scraper/runs": {
      "post": {
        "operationId": "runs-sync-coregent-competitor-hiring-intelligence-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/coregent~competitor-hiring-intelligence-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-coregent-competitor-hiring-intelligence-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "competitors": {
            "title": "Competitors",
            "type": "array",
            "description": "Competitors to monitor. Add one item per competitor. Each item needs at least a Career URL or a Website URL (Company name is recommended).",
            "items": {
              "type": "object",
              "properties": {
                "companyName": {
                  "title": "Company name",
                  "description": "Competitor name, e.g. \"Canva\". Recommended but optional; inferred from the URL when omitted.",
                  "type": "string",
                  "editor": "textfield"
                },
                "careerUrl": {
                  "title": "Career URL",
                  "description": "Public career/job-listing page URL (primary, most reliable mode), e.g. \"https://www.canva.com/careers/jobs/\".",
                  "type": "string",
                  "editor": "textfield"
                },
                "websiteUrl": {
                  "title": "Website URL",
                  "description": "Company website URL, used for shallow career-page discovery when no Career URL is given, e.g. \"https://www.canva.com\".",
                  "type": "string",
                  "editor": "textfield"
                }
              },
              "additionalProperties": false
            },
            "default": []
          },
          "maxResultsPerCompetitor": {
            "title": "Max results per competitor",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Stop saving new job rows for a competitor after this many results. Range 1-500.",
            "default": 100
          },
          "maxTotalResults": {
            "title": "Max total results",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Global cap on saved unique job rows across all competitors. The run stops once this is reached. Range 1-5000.",
            "default": 1000
          },
          "discoveryMode": {
            "title": "Discovery mode",
            "enum": [
              "career_url_first",
              "shallow_website_discovery_only"
            ],
            "type": "string",
            "description": "How career pages are found. \"Career URL first\" uses each competitor's careerUrl directly and only falls back to shallow website discovery when no careerUrl is given. \"Shallow website discovery only\" ignores careerUrl when a websiteUrl is present and discovers a careers page from common paths.",
            "default": "career_url_first"
          },
          "includeJobDetails": {
            "title": "Include job details",
            "type": "boolean",
            "description": "When on, fetch one extra detail-page request per job (only when the listing card lacks a snippet, salary, and date) to fill those fields. Off by default to keep runs fast and cheap.",
            "default": false
          },
          "includeKeywords": {
            "title": "Include keywords",
            "type": "array",
            "description": "Keep only jobs matching at least one keyword (in title, department, location, snippet, role category, or reason tags). Empty means no include filter. Example: \"engineer\", \"data\", \"sales\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Remove jobs matching any of these keywords (in title, department, location, snippet, or URL). Example: \"internship\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "roleCategories": {
            "title": "Role categories",
            "type": "array",
            "description": "Keep only jobs whose derived role category is in this list. Empty means all categories.",
            "items": {
              "type": "string",
              "enum": [
                "engineering",
                "sales",
                "marketing",
                "product",
                "data",
                "finance",
                "hr",
                "operations",
                "customer_support",
                "legal",
                "security",
                "other"
              ]
            },
            "default": []
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep only jobs whose visible location or derived country/region matches one of these terms. Empty means all locations. Example: \"Sydney\", \"Remote\", \"Singapore\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "remoteMode": {
            "title": "Work mode",
            "enum": [
              "any",
              "remote",
              "hybrid",
              "onsite",
              "unknown"
            ],
            "type": "string",
            "description": "Keep only jobs with this derived work mode. \"Any\" applies no work-mode filter.",
            "default": "any"
          },
          "postedWithinDays": {
            "title": "Posted within days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Keep only jobs posted within this many days, when a posted date is visible. 0 disables the filter. Range 0-365.",
            "default": 0
          },
          "strictDateFilter": {
            "title": "Strict date filter",
            "type": "boolean",
            "description": "When the posted-date filter is enabled and a job has no visible/parseable date: keep it (off) or drop it (on).",
            "default": false
          },
          "deduplicate": {
            "title": "Deduplicate jobs",
            "type": "boolean",
            "description": "Remove duplicate job rows (by job id, canonical URL, or title+location) so you are not charged for duplicates.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy configuration. Defaults to Apify Proxy enabled. Apify Residential is NOT supported and will fail the run at startup; if you need residential routing, supply your own provider via Custom proxy URLs (proxyUrls).",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}