{
  "openapi": "3.0.1",
  "info": {
    "title": "Multi-Board Jobs — No Duplicates",
    "description": "The same role found on two boards is one row and one charge. Blocked boards, empty searches and merged duplicates are never charged. One keyword across Indeed and any company's own hiring board, merged and de-duplicated into one feed.",
    "version": "1.0",
    "x-build-id": "UqzE4hkK33Xz7ljAc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/steadyfetch~multi-job-board-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-steadyfetch-multi-job-board-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/steadyfetch~multi-job-board-scraper/runs": {
      "post": {
        "operationId": "runs-sync-steadyfetch-multi-job-board-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/steadyfetch~multi-job-board-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-steadyfetch-multi-job-board-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",
        "required": [
          "query"
        ],
        "properties": {
          "query": {
            "title": "Search keyword",
            "type": "string",
            "description": "Job title or keyword, for example \"software engineer\". You can also paste a full Indeed search URL such as https://uk.indeed.com/jobs?q=data+analyst.",
            "default": "_demo"
          },
          "countries": {
            "title": "Indeed countries",
            "type": "array",
            "description": "Which Indeed country sites to search. Each country is a separate search. United States, United Kingdom and Germany are verified end to end; any listing that comes back outside the country you asked for is reported and never charged.",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "GB",
                "DE",
                "CA",
                "AU",
                "IE",
                "NZ",
                "FR",
                "ES",
                "IT",
                "NL",
                "BE",
                "CH",
                "AT",
                "SE",
                "DK",
                "NO",
                "FI",
                "PL",
                "PT",
                "GR",
                "IN",
                "SG",
                "JP",
                "AE",
                "ZA",
                "MX",
                "BR",
                "TR"
              ],
              "enumTitles": [
                "United States",
                "United Kingdom",
                "Germany",
                "Canada",
                "Australia",
                "Ireland",
                "New Zealand",
                "France",
                "Spain",
                "Italy",
                "Netherlands",
                "Belgium",
                "Switzerland",
                "Austria",
                "Sweden",
                "Denmark",
                "Norway",
                "Finland",
                "Poland",
                "Portugal",
                "Greece",
                "India",
                "Singapore",
                "Japan",
                "United Arab Emirates",
                "South Africa",
                "Mexico",
                "Brazil",
                "Turkey"
              ]
            },
            "default": [
              "US"
            ]
          },
          "location": {
            "title": "Indeed location",
            "type": "string",
            "description": "City, region or postcode to search Indeed near, as you would type it there (for example \"Austin, TX\"). Leave empty to search the whole country."
          },
          "radiusKm": {
            "title": "Radius",
            "minimum": 1,
            "maximum": 160,
            "type": "integer",
            "description": "How far around the Indeed location to search. Only used when a location is set."
          },
          "companies": {
            "title": "Company boards",
            "type": "array",
            "description": "Company domains (stripe.com), careers-page URLs, board URLs (https://jobs.lever.co/leverdemo) or plain company names. Their boards are filtered to roles that match your keyword.",
            "items": {
              "type": "string"
            }
          },
          "atsFilter": {
            "title": "Only these hiring platforms",
            "type": "array",
            "description": "Restrict company-board resolution to named platforms. Leave empty to check all of them.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "workday",
                "workable",
                "smartrecruiters",
                "rippling",
                "personio",
                "teamtailor"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Workday",
                "Workable",
                "SmartRecruiters",
                "Rippling",
                "Personio",
                "Teamtailor"
              ]
            }
          },
          "sources": {
            "title": "Sources",
            "type": "array",
            "description": "Which job sources to include. Leave empty for both. \"Indeed\" needs a keyword; \"Company boards\" needs company domains.",
            "items": {
              "type": "string",
              "enum": [
                "indeed",
                "ats"
              ],
              "enumTitles": [
                "Indeed",
                "Company boards (ATS)"
              ]
            },
            "default": [
              "indeed",
              "ats"
            ]
          },
          "dedupe": {
            "title": "Merge duplicate jobs across boards",
            "type": "boolean",
            "description": "On by default. When on, the same role found on more than one board becomes ONE row with every source link kept — and one charge. When off, each board's copy is its own row (the identical posting fetched twice is still never charged twice).",
            "default": true
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Only jobs Indeed posted in the last N days."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Ask Indeed to order its results by date instead of relevance. Company boards are unaffected.",
            "default": "relevance"
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only listings marked remote. Listings filtered out are never charged.",
            "default": false
          },
          "maxItems": {
            "title": "Max unique jobs for the whole run",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Hard cap on delivered UNIQUE jobs (after de-duplication) across every source in this run.",
            "default": 100
          },
          "maxItemsPerCompany": {
            "title": "Max jobs per company board",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Hard cap on roles pulled from any single company board before keyword filtering.",
            "default": 200
          },
          "maxRunSeconds": {
            "title": "Max run seconds",
            "minimum": 30,
            "maximum": 3600,
            "type": "integer",
            "description": "The run stops cleanly before this many seconds and reports what is left, instead of being killed by a timeout.",
            "default": 1200
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}