{
  "openapi": "3.0.1",
  "info": {
    "title": "Instahyre Jobs Scraper",
    "description": "Instahyre Jobs Scraper SD - Instahyre Jobs Scraper is a job data tool that extracts India tech jobs from Instahyre by function, skill, company, size and type: title, company profile, locations, skills, experience, description and date. No login.",
    "version": "1.0",
    "x-build-id": "VbseGfJgdX2qBmdOJ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neuro-scraper~instahyre-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neuro-scraper-instahyre-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/neuro-scraper~instahyre-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-neuro-scraper-instahyre-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/neuro-scraper~instahyre-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-neuro-scraper-instahyre-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": {
          "jobFunctionSlugs": {
            "title": "Job functions",
            "type": "array",
            "description": "Instahyre job functions, one per line: slug (\"backend-development\", \"data-science-machine-learning\", \"frontend-development\", \"product-management\"), function name (\"Backend Development\"), numeric id, or a whole category name (\"Software Engineering\"). Resolved against Instahyre's live list (instahyre.com/api/v1/job_function/) on every run; several functions are searched together (OR). Server-side filter.",
            "items": {
              "type": "string"
            }
          },
          "skills": {
            "title": "Skills",
            "type": "array",
            "description": "Skills, one per line, e.g. \"Python\", \"React\", \"Java\". Sent to Instahyre's own \"Skills or Title\" search (server-side; several skills = jobs with any of them).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "skillMatch": {
            "title": "Skill match",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "\"all\" keeps only jobs that carry every listed skill in their skill tags or title (checked here on Instahyre's results).",
            "default": "any"
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "any",
              "full_time",
              "internship"
            ],
            "type": "string",
            "description": "Instahyre's job type filter (server-side).",
            "default": "any"
          },
          "companySize": {
            "title": "Company size",
            "enum": [
              "any",
              "small",
              "medium",
              "large"
            ],
            "type": "string",
            "description": "Instahyre's company-size filter (server-side, the site's own small / medium / large groups).",
            "default": "any"
          },
          "experienceYears": {
            "title": "Experience (years)",
            "minimum": -1,
            "maximum": 40,
            "type": "integer",
            "description": "Instahyre's Experience filter: jobs open to a candidate with this many years of experience, e.g. 3. -1 = off.",
            "default": -1
          },
          "industries": {
            "title": "Industries",
            "type": "array",
            "description": "Instahyre industry names, one per line, e.g. \"Internet / Software\", \"Banking / Financial Services\". Resolved against Instahyre's live industry list on every run (server-side filter).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "companyNames": {
            "title": "Companies to include",
            "type": "array",
            "description": "Company names, one per line, e.g. \"Accenture\", \"Amazon\", \"telekom\". Each name is looked up in Instahyre's own company box: an exact match, or every company whose name contains the text, is filtered server-side; a broad text with too many companies is matched as partial, case-insensitive text on the company name here.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "City names, one per line, e.g. \"Bangalore\", \"Pune\", \"Gurgaon\" (Bengaluru, Gurugram ... are matched through Instahyre's own city aliases). Instahyre's API ignores location, so this is applied here to each job's published locations.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote roles only",
            "type": "boolean",
            "description": "Keep only jobs whose locations include Instahyre's remote option (\"Work From Home\") or the word remote.",
            "default": false
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Whole words or phrases matched (case-insensitive) across title, candidate title, skills, company name, company tagline / about and locations, e.g. \"fintech\", \"senior\", \"machine learning\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywordMatch": {
            "title": "Keyword match",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "Keep a job when one keyword matches, or only when every keyword matches.",
            "default": "any"
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop jobs containing any of these whole words or phrases in title, skills, company name or locations, e.g. \"intern\" (does not match \"international\").",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "diversityEmployersOnly": {
            "title": "Diversity employers only",
            "type": "boolean",
            "description": "Keep only jobs from employers Instahyre shows with its diversity-hiring badge.",
            "default": false
          },
          "includeDetails": {
            "title": "Fetch job details",
            "type": "boolean",
            "description": "One extra small request per job (Instahyre's public job record): full description (text + HTML), experience range (min/max years), job category, job functions, active flag, recruiter name / designation / company and whether an agency posted the job.",
            "default": false
          },
          "excludeAgencyPosted": {
            "title": "Exclude agency-posted jobs",
            "type": "boolean",
            "description": "Skip jobs posted by a recruiting agency rather than the hiring company (the recruiter's company differs from the hiring company). Turns on Fetch job details.",
            "default": false
          },
          "includeJobPage": {
            "title": "Fetch posting date and company website",
            "type": "boolean",
            "description": "Opens each job's public page (about 130 KB) for its JobPosting data: date posted, employment type, state / region and the company's website.",
            "default": false
          },
          "startUrls": {
            "title": "Instahyre URLs (optional)",
            "type": "array",
            "description": "Search URLs (https://www.instahyre.com/search-jobs/?skills=python&job_type=1, filters in the URL are kept) or job pages (https://www.instahyre.com/job-407401-sr-fullstack-engineer-at-harvey-bangalore/). The filters above that run here (locations, keywords ...) still apply.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "scrapeAllJobs": {
            "title": "Whole job board when no filter is set",
            "type": "boolean",
            "description": "Lists every public Instahyre job when no function, skill, company, filter or URL is given (about 13,000 jobs measured; the board is read in company-size groups because Instahyre serves at most 10,000 results per search).",
            "default": false
          },
          "trackCompanies": {
            "title": "Track companies (hiring tracker mode)",
            "type": "array",
            "description": "Company names to track instead of listing jobs, e.g. \"Accenture\". One row per company: open roles, job-function mix, location mix, top skills and remote share, with changes since the previous run (openRolesDelta, functionsStarted, locationsOpened ...). Schedule it to follow hiring momentum.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "monitorMode": {
            "title": "Output mode",
            "enum": [
              "snapshot",
              "changes_only"
            ],
            "type": "string",
            "description": "Changes only remembers every job of this search (named key-value store instahyre-jobs-monitor) and returns new and updated jobs (changeType), plus unchanged / removed ones when the options below are on. Schedule the Actor for a new-jobs feed.",
            "default": "snapshot"
          },
          "emitBaseline": {
            "title": "Emit baseline on the first monitoring run",
            "type": "boolean",
            "description": "Changes only: the first run returns every current job as \"new\". Off: the first run only records the jobs and returns nothing.",
            "default": true
          },
          "includeUnchanged": {
            "title": "Include unchanged jobs",
            "type": "boolean",
            "description": "Changes only: also return jobs whose public fields did not change (changeType \"unchanged\").",
            "default": false
          },
          "includeRemoved": {
            "title": "Include removed jobs",
            "type": "boolean",
            "description": "Changes only: after a complete scan (not stopped by Max jobs / Max pages), return a short row with changeType \"removed\" for each job of the previous run that is gone.",
            "default": false
          },
          "stateName": {
            "title": "Monitoring state name",
            "type": "string",
            "description": "Optional name that keeps one monitored search apart from another, e.g. \"bangalore-backend\". Empty = a name built from the search filters.",
            "default": ""
          },
          "resetMonitoringState": {
            "title": "Reset monitoring state",
            "type": "boolean",
            "description": "One-shot: forget the jobs remembered for this state name before the run.",
            "default": false
          },
          "maxItems": {
            "title": "Max jobs",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many rows in total. The scraper follows Instahyre's result pages (35 jobs each) until this number or the last page.",
            "default": 50
          },
          "maxPages": {
            "title": "Max result pages per search",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Stop each search after this many result pages of 35 jobs. 0 = no page limit.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Instahyre answered every logged-out request without a challenge in tests; an Indian residential proxy is the default for steady runs on the Apify platform.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "IN"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}