{
  "openapi": "3.0.1",
  "info": {
    "title": "Bing Jobs Scraper — Job Postings From Every Board Bing Indexes",
    "description": "Scrape Bing Jobs: one search returns postings from LinkedIn, ZipRecruiter, Monster, CareerBuilder, Glassdoor and more. Each job lists every board carrying it, with the full description, apply links and the exact posting date.",
    "version": "1.0",
    "x-build-id": "prbLaIyp9C4OkFE4L"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~bing-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-bing-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/sian.agency~bing-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-bing-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/sian.agency~bing-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-bing-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": {
          "operation": {
            "title": "🎯 What do you want to scrape?",
            "enum": [
              "search",
              "jobDetails"
            ],
            "type": "string",
            "description": "Pick one operation per run. Search Jobs pages Bing's jobs index 10 jobs at a time with the full description included. Job Details re-checks up to 20 job ids you already hold and returns the ones Bing still serves.",
            "default": "search"
          },
          "query": {
            "title": "🔑 Search keyword",
            "type": "string",
            "description": "Job title, skill or phrase to search for, for example \"software engineer\" or \"registered nurse\". Required by Search Jobs. Bing's jobs search reads natural language, so a job title works far better than a single loose keyword, which drifts toward unrelated postings."
          },
          "location": {
            "title": "📍 Location",
            "type": "string",
            "description": "City, region or country, written the way you would type it into Bing: \"Austin, TX\", \"London\", \"Berlin, Germany\". Leave empty to search the whole country picked below. Writing the place into the keyword instead (\"nurse jobs in London\") works the same way."
          },
          "country": {
            "title": "🌍 Country code",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string",
            "description": "Two-letter country code that picks which national jobs index Bing searches: us, gb, de, fr, ca, au and so on. To search for jobs in Berlin, use de here and Berlin as the location.",
            "default": "us"
          },
          "datePosted": {
            "title": "🗓️ Date posted",
            "enum": [
              "all",
              "today",
              "3days",
              "week",
              "month"
            ],
            "type": "string",
            "description": "Freshness window, using Bing's own date filters. Bing applies them loosely: in our test runs Past 24 hours also returned 2-day-old postings, and one internship search ignored Past week. Bing's widest window is 7 days, so Past month returns every date. Filter on postedAtUtc when the window must be strict.",
            "default": "all"
          },
          "employmentTypes": {
            "title": "💼 Employment types",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only these employment types. Pick any combination, or leave empty for every type. Full-time, part-time and contract are filtered by Bing. Internship has no Bing filter and is matched afterwards on the type Bing states, so an internship search can return fewer jobs than Max jobs.",
            "items": {
              "type": "string",
              "enum": [
                "FULLTIME",
                "PARTTIME",
                "CONTRACTOR",
                "INTERN"
              ],
              "enumTitles": [
                "🕐 Full-time",
                "🕑 Part-time",
                "📝 Contract",
                "🎓 Internship"
              ]
            }
          },
          "remoteOnly": {
            "title": "🏠 Remote jobs only",
            "type": "boolean",
            "description": "Only return work-from-home and remote jobs, using Bing's own remote filter.",
            "default": false
          },
          "radiusMiles": {
            "title": "📏 Distance from location",
            "enum": [
              "10",
              "20",
              "30",
              "40"
            ],
            "type": "string",
            "description": "Only return jobs within this distance of the location. These four are the only distances Bing supports. Leave empty for Bing's default area around the location."
          },
          "excludePublishers": {
            "title": "🚫 Leave out these job boards",
            "type": "array",
            "description": "Job boards to leave out, one per line, for example LinkedIn or Indeed. Matched case-insensitively against every board carrying a posting, so a job listed on both LinkedIn and ZipRecruiter is dropped when you exclude LinkedIn. Useful when you already collect one board directly. A run using it can return fewer jobs than Max jobs.",
            "items": {
              "type": "string"
            }
          },
          "jobIds": {
            "title": "📋 Job IDs",
            "type": "array",
            "description": "Used by Job Details. The jobId values returned by a Search Jobs run, one per line; the raw Bing id in jobUid (for example -1577491950.Retro) works too. Duplicates are removed first. A posting Bing no longer serves is simply missing from the results, which is how you spot a closed role.",
            "items": {
              "type": "string"
            }
          },
          "includeDescriptions": {
            "title": "📖 Include full descriptions",
            "type": "boolean",
            "description": "Fill in the full job description, the apply link of every board carrying the posting, and the employer logo. Turn it off for a roughly 3x faster run that returns only the listing fields: title, employer, location, dates, boards and employment type.",
            "default": true
          },
          "maxResults": {
            "title": "🔢 Max jobs",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Upper bound on jobs returned by Search Jobs. Bing serves 10 per page and at most 50 pages for one search, so 500 is the ceiling. Job Details ignores this and returns one row per job id that is still live.",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}