{
  "openapi": "3.0.1",
  "info": {
    "title": "Rippling Jobs Scraper & API - Pay, Descriptions",
    "description": "Scrape every open job from Rippling job boards (ats.rippling.com) by board name or link, or search all 2,189 known boards. One row per job: title, department, locations, employment type, posting date, pay range, full description. Monitor new and closed jobs; misses are free.",
    "version": "0.1",
    "x-build-id": "SJtmWFkxoXloEeTe2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation_craft~rippling-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation_craft-rippling-jobs-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/automation_craft~rippling-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-automation_craft-rippling-jobs-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/automation_craft~rippling-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-automation_craft-rippling-jobs-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": {
          "boards": {
            "title": "Job boards",
            "type": "array",
            "description": "Rippling job boards to read, one per line: the board name (the part after ats.rippling.com/ in the board's link, for example rippling or carbon-health) or the board's link (https://ats.rippling.com/rippling/jobs). Every open job of each board is read, in the order given. A board that does not exist gets a free status row. Leave empty when you use job links or the directory search only.",
            "items": {
              "type": "string"
            }
          },
          "jobUrls": {
            "title": "Job links",
            "type": "array",
            "description": "Single Rippling jobs to read, one link per line (https://ats.rippling.com/<board>/jobs/<job id>). A job that is closed or does not exist gets a free status row.",
            "items": {
              "type": "string"
            }
          },
          "searchAllBoards": {
            "title": "Search every board in the directory",
            "type": "boolean",
            "description": "Read every Rippling job board of the directory built into this Actor, after the boards listed above. Use the filters below to keep what you need. The directory and its date are in the README; a board created after that date is read only when you list it."
          },
          "titleKeywords": {
            "title": "Title keywords",
            "type": "array",
            "description": "Keep jobs whose title contains at least one of these words or phrases, as whole words, in any case (engineer matches Senior Engineer, not Engineering). Letters, digits, spaces and . , & + # / ( ) ' - only. Leave empty to keep every title.",
            "items": {
              "type": "string"
            }
          },
          "excludeTitleKeywords": {
            "title": "Exclude title keywords",
            "type": "array",
            "description": "Leave out jobs whose title contains any of these words or phrases, as whole words, in any case. Letters, digits, spaces and . , & + # / ( ) ' - only.",
            "items": {
              "type": "string"
            }
          },
          "departments": {
            "title": "Departments",
            "type": "array",
            "description": "Keep jobs whose department contains one of these words or phrases, as whole words, in any case, for example Engineering or Sales (the job's own department as the board names it). Letters, digits, spaces and . , & + # / ( ) ' - only.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Keep jobs with at least one location in these countries, as two letter ISO codes (US, GB, DE, IN; the United Kingdom is GB). A location the board shows without a country never passes this filter.",
            "items": {
              "type": "string"
            }
          },
          "workplaceTypes": {
            "title": "Workplace types",
            "type": "array",
            "description": "Keep jobs with at least one location of these types.",
            "items": {
              "type": "string",
              "enum": [
                "ON_SITE",
                "HYBRID",
                "REMOTE"
              ],
              "enumTitles": [
                "On site",
                "Hybrid",
                "Remote"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Keep jobs of these employment types, as Rippling codes them (read from the job's detail). About 7 percent of jobs carry only the company's own wording (for example Intern or Per Diem) and no code: they never pass this filter.",
            "items": {
              "type": "string",
              "enum": [
                "SALARIED_FT",
                "SALARIED_PT",
                "HOURLY_FT",
                "HOURLY_PT",
                "CONTRACTOR",
                "TEMP"
              ],
              "enumTitles": [
                "Salaried, full time",
                "Salaried, part time",
                "Hourly, full time",
                "Hourly, part time",
                "Contractor",
                "Temporary"
              ]
            }
          },
          "descriptionKeywords": {
            "title": "Description keywords",
            "type": "array",
            "description": "Keep jobs whose title or description contains at least one of these words or phrases, as whole words, in any case (read from the job's detail). Letters, digits, spaces and . , & + # / ( ) ' - only.",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within the last days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep jobs posted within this many days before the run started (Rippling's own creation date of the job, read from its detail). Leave empty for any date."
          },
          "onlyWithPay": {
            "title": "Only jobs that show pay",
            "type": "boolean",
            "description": "Keep only jobs whose detail carries at least one pay range."
          },
          "maxJobs": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "The run stops after delivering this many jobs. Without a value: 100 (10 for the sample board read when no board, job link or directory search is given)."
          },
          "maxJobsPerBoard": {
            "title": "Maximum jobs per board",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "At most this many jobs from one board. Leave empty for no per board limit."
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Give a name to deliver and charge only jobs this monitor has not delivered before (a memory kept between runs, per listing and per account). Use the same name on every scheduled run. Letters, digits, spaces and . _ , - : # ( ) only."
          },
          "reportClosedJobs": {
            "title": "Report closed jobs",
            "type": "boolean",
            "description": "With a monitor: write a free row for every job the monitor delivered earlier that its board no longer lists (only for boards read completely in the run). On by default when a monitor name is given."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}