{
  "openapi": "3.0.1",
  "info": {
    "title": "Job Postings Dataset: 320k+ Open Jobs, Updated Daily",
    "description": "320,000+ open jobs from 10,000+ company career sites (Greenhouse, Lever, Ashby), updated daily with first-seen and closed dates. Bulk export or daily new/closed delta. $1.20 per 1,000 jobs.",
    "version": "0.1",
    "x-build-id": "7gy2aqaCcjKvrZtnb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/redomic~job-postings-dataset/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-redomic-job-postings-dataset",
        "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/redomic~job-postings-dataset/runs": {
      "post": {
        "operationId": "runs-sync-redomic-job-postings-dataset",
        "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/redomic~job-postings-dataset/run-sync": {
      "post": {
        "operationId": "run-sync-redomic-job-postings-dataset",
        "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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "snapshot",
              "new",
              "changes"
            ],
            "type": "string",
            "description": "snapshot = every open job matching filters. new = jobs first seen within newWithinDays. changes = stateful monitor: returns jobs new and jobs closed since the previous run with the same filters (first run saves a baseline snapshot).",
            "default": "snapshot"
          },
          "output": {
            "title": "Output",
            "enum": [
              "rows",
              "events"
            ],
            "type": "string",
            "description": "\"rows\" returns job rows (default). \"events\" returns a daily delta of new, changed and closed jobs with asOf, source board and salary/location diffs; an unchanged run ends SUCCEEDED with 0 events.",
            "default": "rows"
          },
          "newWithinDays": {
            "title": "New within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "For mode 'new': jobs first seen in the last N days. Default 1. Ignored in other modes.",
            "default": 1
          },
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "Limit to these companies (board token or company name). Empty = all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeCompanies": {
            "title": "Exclude companies",
            "type": "array",
            "description": "Drop jobs whose company name or board token matches any of these values (case-insensitive). Applied before companies include; excluded rows are never returned or billed. Empty = none.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "ats": {
            "title": "Career site platforms",
            "type": "array",
            "description": "Limit to Greenhouse, Lever or Ashby. Empty = all three.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby"
              ]
            },
            "default": []
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Keep jobs whose location mentions any of these countries (e.g. Germany, United States, UK). Matched as words in the location text.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep jobs whose location contains any of these (city/region text, e.g. Berlin, EMEA).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "roleFamilies": {
            "title": "Role families",
            "type": "array",
            "description": "Job function (e.g. Engineering, Sales, Data/Analytics). 'Engineering' covers engineering families. Empty = all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "e.g. Junior, Mid, Senior, Lead/Principal, Intern. Empty = all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote only",
            "type": "boolean",
            "description": "Only remote jobs.",
            "default": false
          },
          "hasSalary": {
            "title": "Only jobs with a salary",
            "type": "boolean",
            "description": "Only jobs that publish a pay range.",
            "default": false
          },
          "minSalary": {
            "title": "Minimum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Inclusive lower salary bound. A job matches when its posted range overlaps this amount (its salaryMax, or salaryMin if no max, is >= this value). Jobs without any salary are excluded. 0 = no minimum.",
            "default": 0
          },
          "maxSalary": {
            "title": "Maximum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Inclusive upper salary bound. A job matches when its posted range overlaps this amount (its salaryMin, or salaryMax if no min, is <= this value). Jobs without any salary are excluded. 0 = no maximum.",
            "default": 0
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only jobs posted in the last N days. 0 = any date. Defaults to 30 for a fresh-first export.",
            "default": 30
          },
          "includeEvergreen": {
            "title": "Include evergreen postings",
            "type": "boolean",
            "description": "Include evergreen/talent-pool postings (generalApplication=true or posted 180+ days ago). Off by default; default export excludes them and reports evergreen counts.",
            "default": false
          },
          "includeAggregators": {
            "title": "Include aggregator boards",
            "type": "boolean",
            "description": "Aggregator/staffing boards re-post other companies' jobs and are left out by default. Turn on to include them.",
            "default": false
          },
          "newlyHiringCompanies": {
            "title": "Newly hiring companies (lead list)",
            "type": "boolean",
            "description": "When enabled, return one row per company with at least one role first seen in the last N days (default 7, configurable with 'Newly hiring within (days)') instead of job rows. Each company row includes open role count, top role titles, locations, salary coverage %, dataAsOf and sampleSize plus newRoleEvidence with firstSeen for every included role.",
            "default": false
          },
          "newlyHiringWithinDays": {
            "title": "Newly hiring within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Window for newly hiring companies: include roles first seen in the last N days. 0 uses 7 days when newly hiring mode is enabled.",
            "default": 7
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum job rows returned (and billed). 0 = no cap (returns every matching job; can be large).",
            "default": 100
          },
          "outputFormat": {
            "title": "Output format",
            "enum": [
              "rows",
              "sheets_flat"
            ],
            "type": "string",
            "description": "sheets_flat projects every job row onto the same fixed flat column order with no nested JSON, ready to append to Google Sheets or Excel. Default rows keeps the full field set.",
            "default": "rows"
          },
          "cursor": {
            "title": "Append-only cursor",
            "enum": [
              "",
              "auto"
            ],
            "type": "string",
            "description": "auto = append-only delta for scheduled runs: the run returns only job rows it has not delivered before for this exact input hash, and saves the delivered keys in the monitor key-value store. The first run returns the first maxItems matching rows; later runs return only new rows; an unchanged day returns 0 job rows, $0 and SUCCEEDED. Works with any mode; in changes mode it also appends jobs closed since the last run. Leave empty for a normal full run.",
            "default": ""
          },
          "search": {
            "title": "Search",
            "type": "string",
            "description": "Keyword search in the job title, description, company and department. All words must appear (case-insensitive). Leave empty for no text filter.",
            "default": ""
          },
          "titleContains": {
            "title": "Title contains (any of)",
            "type": "array",
            "description": "Keep jobs whose title or description contains at least one of these keywords (case-insensitive). Empty = no include filter.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeTitleKeywords": {
            "title": "Exclude title keywords",
            "type": "array",
            "description": "Drop jobs whose title or description contains any of these keywords (case-insensitive). Applied after titleContains.",
            "default": [],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}