{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Jobs Monitor — New Hiring at Target Companies",
    "description": "Track newly observed LinkedIn jobs by keyword, location and company filters. Export job links, titles, companies and source dates with persistent deduplication. Collects public job cards directly; no paid source Actor or LinkedIn cookies required.",
    "version": "0.1",
    "x-build-id": "KCfwQeFbbnl1U4gfy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/agency-shift~linkedin-jobs-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-agency-shift-linkedin-jobs-monitor",
        "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/agency-shift~linkedin-jobs-monitor/runs": {
      "post": {
        "operationId": "runs-sync-agency-shift-linkedin-jobs-monitor",
        "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/agency-shift~linkedin-jobs-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-agency-shift-linkedin-jobs-monitor",
        "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",
        "required": [
          "sourceMode"
        ],
        "properties": {
          "sourceMode": {
            "title": "Job source",
            "enum": [
              "public",
              "dataset"
            ],
            "type": "string",
            "description": "Public LinkedIn job search uses our own collector, without a paid source Actor. Dataset mode reads compatible rows you already have.",
            "default": "public"
          },
          "keywords": {
            "title": "Job keywords",
            "type": "string",
            "description": "Public search terms, for example Revenue Operations. LinkedIn can return semantic or broadened matches; use includePhrases for literal matching after collection.",
            "default": "Revenue Operations"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Location text passed to LinkedIn, for example United States or Ireland. Source matching is not an independently verified geography guarantee.",
            "default": "United States"
          },
          "companyIds": {
            "title": "Target company IDs",
            "maxItems": 10,
            "type": "array",
            "description": "Optional numeric LinkedIn company IDs, up to 10. Copy values from f_C in a LinkedIn Jobs search URL after choosing company filters. These are passed to LinkedIn; unknown output company IDs remain null.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "postedLimit": {
            "title": "Source time window",
            "enum": [
              "any",
              "24h",
              "week",
              "month"
            ],
            "type": "string",
            "description": "Passed to live search. Dataset mode does not independently reapply keyword, location, company or date search filters.",
            "default": "week"
          },
          "sourceDatasetId": {
            "title": "Existing job dataset",
            "type": "string",
            "description": "Dataset mode requires compatible job-card records. Read access only."
          },
          "includePhrases": {
            "title": "Keep any of these phrases",
            "maxItems": 20,
            "type": "array",
            "description": "Optional literal substring match against the title, company name and location. Exact evidence is included. This happens after public collection.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "excludePhrases": {
            "title": "Exclude these phrases",
            "maxItems": 20,
            "type": "array",
            "description": "Optional literal substring exclusions applied to the same title/company/location text.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "mode": {
            "title": "Output mode",
            "enum": [
              "new",
              "snapshot"
            ],
            "type": "string",
            "description": "New mode remembers delivered job IDs. Snapshot returns all qualifying observations each collection. Missing jobs never produce closed-job or filled-role claims.",
            "default": "new"
          },
          "monitorName": {
            "title": "Monitor name",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,49}$",
            "type": "string",
            "description": "Reuse this name for repeat scans. Search/source/filter changes create separate history. A new name deliberately starts fresh.",
            "default": "default"
          },
          "emitInitial": {
            "title": "Output initial matches",
            "type": "boolean",
            "description": "Disable to establish an initial qualifying baseline without job-result fees. Platform and proxy work may still cost money.",
            "default": true
          },
          "maxScanJobs": {
            "title": "Maximum jobs examined",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Bounded source sample, not complete coverage. Public pages can contain more cards than this cap; unexamined jobs are not saved as seen.",
            "default": 25
          },
          "maxPages": {
            "title": "Maximum public pages",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "One initial public page plus optional public guest pagination. No job detail requests. A failed required page fails the collection without updating history.",
            "default": 1
          },
          "maxResults": {
            "title": "Maximum delivered jobs",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Qualifying overflow is saved for the next run before another search. This cap does not control public request or proxy costs.",
            "default": 25
          },
          "requestTimeoutSecs": {
            "title": "Request timeout",
            "minimum": 10,
            "maximum": 60,
            "type": "integer",
            "description": "Each request is bounded and is never silently retried through a more expensive route.",
            "default": 30
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Direct access is the default. If LinkedIn blocks it, you may explicitly select an Apify proxy such as UNBLOCKER. Proxy charges are separate and are not limited by the Actor result-charge ceiling.",
            "default": {
              "useApifyProxy": false
            }
          },
          "maxHistoryItems": {
            "title": "Maximum remembered and queued jobs",
            "minimum": 100,
            "maximum": 50000,
            "type": "integer",
            "description": "History does not silently expire. At the configured count or 16 MB state limit, processing stops instead of forgetting delivered jobs.",
            "default": 20000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}