{
  "openapi": "3.0.1",
  "info": {
    "title": "CutShort Jobs Scraper",
    "description": "Scrape public CutShort.io India tech jobs by keyword, location, skills, experience or CutShort hub and job URLs. Returns title, company, salary, skills, experience, location, posted date and description, with no login.",
    "version": "0.1",
    "x-build-id": "E1Ix1CnurBOsF1z51"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~cutshort-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-cutshort-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/khadinakbar~cutshort-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-cutshort-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/khadinakbar~cutshort-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-cutshort-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 / job titles",
            "type": "array",
            "description": "Enter job-title or category keywords such as frontend developer or python. The Actor maps them to public CutShort hub pages (for example frontend-developer-jobs). Prefer known hubs when possible. This is not a login-gated free-text search across every private job.",
            "items": {
              "type": "string"
            }
          },
          "skills": {
            "title": "Skills",
            "type": "array",
            "description": "Optional skill keywords such as golang or devops. Each skill is resolved to a public CutShort hub when one exists (for example python-jobs). Leave empty when keywords or startUrls already define the search.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Optional India city or region such as bangalore, pune, hyderabad, or delhi. Combined with keywords into hub slugs like frontend-developer-jobs-in-bangalore-bengaluru. Leave blank for India-wide hubs. This does not geocode arbitrary addresses."
          },
          "startUrls": {
            "title": "CutShort hub or job URLs",
            "type": "array",
            "description": "Paste public cutshort.io /jobs/{hub-slug} or /job/{job-slug} URLs. Explicit URLs are processed first and skip keyword resolution. Non-CutShort URLs are rejected as invalid input.",
            "items": {
              "type": "string"
            }
          },
          "maxJobs": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Caps validated job rows written and billed for this run. Defaults to 50. Accepts 1 through 500. This is a global output cap across every hub, not a page count.",
            "default": 50
          },
          "maxPagesPerHub": {
            "title": "Max pages per hub",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum CutShort hub API pages to fetch per resolved hub (about 50 jobs per page). Defaults to 3. Accepts 1 through 20. Stop early when a page returns fewer than 50 jobs.",
            "default": 3
          },
          "minExperience": {
            "title": "Minimum experience (years)",
            "minimum": 0,
            "maximum": 40,
            "type": "integer",
            "description": "Optional client-side filter keeping jobs whose public experience band can include at least this many years. Leave blank to keep all experience bands."
          },
          "maxExperience": {
            "title": "Maximum experience (years)",
            "minimum": 0,
            "maximum": 40,
            "type": "integer",
            "description": "Optional client-side filter keeping jobs whose public minimum experience is at most this many years. Leave blank to keep all experience bands."
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "When true, keep only jobs CutShort marks with a remote remoteType. Defaults to false. Does not infer remote eligibility from description text alone.",
            "default": false
          },
          "enrichDetails": {
            "title": "Enrich job details",
            "type": "boolean",
            "description": "When true (default), fetch each job detail endpoint for fuller description and posted-date fields. When false, return listing-card fields only for faster cheaper runs.",
            "default": true
          },
          "useApifyProxy": {
            "title": "Use Apify Proxy (reserved)",
            "type": "boolean",
            "description": "Reserved for future blocked routes. CutShort public webpage JSON currently works over direct HTTPS, so this flag does not change routing in v0.1.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}