{
  "openapi": "3.0.1",
  "info": {
    "title": "Handshake Jobs Scraper",
    "description": "Collect anonymous public Handshake jobs by keyword, location, search URL, or job URL. Export employer, classification, compensation, dates, and full descriptions.",
    "version": "2.0",
    "x-build-id": "bkjbXwd3YIZojn0BP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maximedupre~handshake-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maximedupre-handshake-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/maximedupre~handshake-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-maximedupre-handshake-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/maximedupre~handshake-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-maximedupre-handshake-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": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Job titles, skills, or terms to find in public Handshake listings. Add multiple values to broaden discovery.",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "default": [
              "software engineer"
            ]
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Cities, regions, countries, or other location terms to match.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "startUrls": {
            "title": "Handshake URLs",
            "type": "array",
            "description": "Public Handshake search-result or individual job URLs. Search filters already present in a URL are preserved.",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL",
                  "description": "A public Handshake search-result or individual job URL.",
                  "minLength": 1
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": false
            }
          },
          "employers": {
            "title": "Employers",
            "type": "array",
            "description": "Employer names to include. Leave empty to include jobs from any employer.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Country names to include, such as United States. Jobs must have a matching published country. Leave empty to include any country.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Employment classifications to include, such as full-time, part-time, internship, or co-op. Leave empty to include every available classification.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "workplace": {
            "title": "Workplace",
            "enum": [
              "any",
              "remote",
              "on-site"
            ],
            "type": "string",
            "description": "Choose whether to include jobs of any workplace status or only jobs explicitly published as remote or on-site.",
            "default": "any"
          },
          "postedWithinDays": {
            "title": "Posted within",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Include jobs posted within this many days. Leave unset to include any posting date."
          },
          "compensationFilter": {
            "title": "Minimum published compensation",
            "required": [
              "amount",
              "currency",
              "cadence"
            ],
            "type": "object",
            "description": "Optional published-pay threshold. Enter an amount, ISO 4217 currency code, and cadence; jobs without comparable published compensation are excluded.",
            "properties": {
              "amount": {
                "type": "number",
                "title": "Minimum amount",
                "description": "Lowest published compensation amount to include for the selected cadence and currency.",
                "minimum": 0
              },
              "currency": {
                "type": "string",
                "title": "Currency",
                "description": "Three-letter ISO 4217 currency code, such as USD, EUR, or GBP.",
                "pattern": "^[A-Z]{3}$",
                "minLength": 3,
                "maxLength": 3
              },
              "cadence": {
                "type": "string",
                "title": "Cadence",
                "description": "Pay period used for the minimum amount.",
                "enum": [
                  "hour",
                  "month",
                  "year"
                ],
                "enumTitles": [
                  "Per hour",
                  "Per month",
                  "Per year"
                ]
              }
            },
            "additionalProperties": false
          },
          "maxDiscoveryItems": {
            "title": "Maximum discovered jobs",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many matching jobs from keywords, locations, and search URLs. Leave unset to collect all matching jobs until these sources run out. Duplicate, filtered, and unreadable jobs do not count. This limit does not apply to individual job URLs."
          },
          "onlyNewJobs": {
            "title": "Only new jobs",
            "type": "boolean",
            "description": "Return only jobs not seen in earlier runs of this Actor. Each job must still be readable and valid in this run. On the first run, all matching jobs are new.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}