{
  "openapi": "3.0.1",
  "info": {
    "title": "JobMaster Scraper: Israel Job Listings",
    "description": "Scrape jobs from JobMaster.co.il without browser overhead. Extracts titles, description text, company data, and B2B contact leads (phone, email). Export to HubSpot, Salesforce, or Airtable. Skip high proxy costs and slow browser rendering.",
    "version": "0.1",
    "x-build-id": "JZpQr1nZcXUqxtjmo"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~jobmaster-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-jobmaster-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/getascraper~jobmaster-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-jobmaster-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/getascraper~jobmaster-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-jobmaster-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": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Public JobMaster search, category, or direct job URLs. Each request-list item may include inputId in userData for per-input failure correlation.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchQueries": {
            "title": "Batch search queries",
            "type": "array",
            "description": "One or more JobMaster keywords. Each query becomes an independent source input and is deduplicated by stable jobId.",
            "default": [
              ""
            ],
            "items": {
              "type": "string"
            }
          },
          "searchQuery": {
            "title": "Legacy single query",
            "type": "string",
            "description": "Backward-compatible alias for one search query. searchQueries takes precedence when both are supplied."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Source-backed city or region text filter."
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "Source-published category text filter. Jobs without a disclosed category do not match."
          },
          "scope": {
            "title": "Employment scope",
            "enum": [
              "any",
              "full-time",
              "part-time",
              "work-from-home",
              "student"
            ],
            "type": "string",
            "description": "Filter by source-published employment arrangement.",
            "default": "any"
          },
          "remoteOnly": {
            "title": "Remote only",
            "type": "boolean",
            "description": "Keep only listings with explicit remote, hybrid, or work-from-home evidence on the source page.",
            "default": false
          },
          "onlyDisclosedSalary": {
            "title": "Only disclosed salary",
            "type": "boolean",
            "description": "Keep only listings with source-published numeric salary text.",
            "default": false
          },
          "minSalary": {
            "title": "Minimum salary",
            "minimum": 0,
            "type": "number",
            "description": "Minimum source-published salary overlap. Unknown salaries are excluded when this filter is set."
          },
          "maxSalary": {
            "title": "Maximum salary",
            "minimum": 0,
            "type": "number",
            "description": "Maximum source-published salary overlap. Unknown salaries are excluded when this filter is set."
          },
          "salaryCurrency": {
            "title": "Salary currency",
            "type": "string",
            "description": "Exact published currency code such as ILS, USD, EUR, or GBP."
          },
          "salaryPeriod": {
            "title": "Salary period",
            "type": "string",
            "description": "Exact published period such as hour, week, month, or year."
          },
          "minExperienceYears": {
            "title": "Minimum experience years",
            "minimum": 0,
            "type": "number",
            "description": "Minimum source-published experience overlap. Unknown experience is excluded when this filter is set."
          },
          "maxExperienceYears": {
            "title": "Maximum experience years",
            "minimum": 0,
            "type": "number",
            "description": "Maximum source-published experience overlap. Unknown experience is excluded when this filter is set."
          },
          "sortBy": {
            "title": "Sort results",
            "enum": [
              "relevance",
              "newest",
              "salary_desc",
              "salary_asc",
              "title"
            ],
            "type": "string",
            "description": "Deterministic sort. Unknown salary and date values remain last, with stable jobId tie-breaking.",
            "default": "relevance"
          },
          "sortOrder": {
            "title": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string",
            "description": "Choose ascending or descending order. Stable jobId ordering resolves ties.",
            "default": "desc"
          },
          "enrichDetail": {
            "title": "Enrich detail pages",
            "type": "boolean",
            "description": "Fetch public detail pages for description, requirements, salary, and contact evidence.",
            "default": true
          },
          "outputMode": {
            "title": "Output detail",
            "enum": [
              "full",
              "compact"
            ],
            "type": "string",
            "description": "Full keeps source HTML when available. Compact omits HTML while retaining capped plain text, contact evidence, query attribution, and monitoring fields.",
            "default": "full"
          },
          "maxDescriptionChars": {
            "title": "Maximum description characters",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum characters retained separately for published description and requirements text. Set 0 to omit both text fields; monitoring still hashes the complete source record.",
            "default": 12000
          },
          "monitorMode": {
            "title": "Monitor mode",
            "enum": [
              "snapshot",
              "changes"
            ],
            "type": "string",
            "description": "snapshot emits the current filtered feed without state. changes stages deltas and writes state only after all inputs succeed.",
            "default": "snapshot"
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Explicit stable key (letters, numbers, dots, underscores, or hyphens) selecting one independent monitor history.",
            "default": "jobmaster-default"
          },
          "emitUnchanged": {
            "title": "Include unchanged",
            "type": "boolean",
            "description": "In changes mode, also emit current records classified as UNCHANGED.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum total items",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Hard cap after dedupe, filtering, sorting, and monitoring annotation.",
            "default": 100
          },
          "maxItemsPerQuery": {
            "title": "Maximum items per query",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum records retained for each independent search query before global sorting.",
            "default": 100
          },
          "maxPagesPerInput": {
            "title": "Maximum pages per input",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum source pagination pages fetched for each input URL or query.",
            "default": 20
          },
          "maxConcurrency": {
            "title": "Maximum concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of source requests processed at once.",
            "default": 6
          },
          "maxRequestRetries": {
            "title": "Maximum request retries",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Retries for transient source request failures before an explicit failure row is emitted.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional Apify Proxy settings for reliable source access.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}