Global Job Search API
Pricing
from $0.50 / 1,000 job returneds
Go to Apify Store
Global Job Search API
Search jobs by keyword and location. Extract titles, companies, descriptions, skills, experience, application links, and salaries when available.
Global Job Search API
Pricing
from $0.50 / 1,000 job returneds
Search jobs by keyword and location. Extract titles, companies, descriptions, skills, experience, application links, and salaries when available.
You can access the Global Job Search API programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.0", "x-build-id": "dc1ntmH9kqquY0SMr" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/snub~global-job-search-api/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-snub-global-job-search-api", "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/snub~global-job-search-api/runs": { "post": { "operationId": "runs-sync-snub-global-job-search-api", "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/snub~global-job-search-api/run-sync": { "post": { "operationId": "run-sync-snub-global-job-search-api", "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", "minItems": 1, "maxItems": 5, "type": "array", "description": "Job title terms. All terms must appear in the title by default; developer/engineer aliases are supported. Up to five searches share one result cap.", "items": { "type": "string" }, "default": [ "Python Developer" ] }, "keyword_match": { "title": "Keyword matching", "enum": [ "title", "title_and_description" ], "type": "string", "description": "Title matching avoids incidental mentions in unrelated job descriptions. Choose title_and_description explicitly for broader discovery.", "default": "title" }, "locations": { "title": "Locations", "minItems": 1, "maxItems": 5, "type": "array", "description": "Use Worldwide for an unrestricted search. Individual jobs can still restrict applicant locations. Up to five locations and ten keyword/location combinations.", "items": { "type": "string" }, "default": [ "Worldwide" ] }, "limit": { "title": "Maximum matching results", "minimum": 1, "maximum": 100, "type": "integer", "description": "One global result cap; same IDs are deduplicated and cross-source records merge only with supporting evidence.", "default": 25 }, "radius": { "title": "Radius (miles)", "minimum": 5, "maximum": 100, "type": "integer", "description": "Radius sent to geographic source searches.", "default": 25 }, "remote_type": { "title": "Work arrangement", "enum": [ "remote", "hybrid", "on_site", "any" ], "type": "string", "description": "Select the source search filter.", "default": "any" }, "age_of_listing": { "title": "Posting age", "enum": [ "past_24h", "past_3d", "past_week", "past_month", "any" ], "type": "string", "description": "Posting dates are checked locally for every source. Unknown dates are excluded when an age limit is selected. Any explicitly permits older listings.", "default": "past_week" }, "employment_type": { "title": "Employment type", "enum": [ "full_time", "part_time", "contract", "internship", "temporary", "all" ], "type": "string", "description": "Select the source search filter.", "default": "full_time" }, "seniority_levels": { "title": "Seniority levels", "maxItems": 7, "type": "array", "description": "Leave empty for any level. Missing seniority is excluded when filtering. Mid-senior source metadata matches either mid_level or senior. Allowed values: intern, junior, mid_level, senior, lead, manager, executive.", "items": { "type": "string" }, "default": [] }, "required_skills": { "title": "Required skills", "maxItems": 30, "type": "array", "description": "Match extracted skill labels or explicit description text. Common aliases are recognized; this is textual evidence, not verified applicant requirements.", "items": { "type": "string" }, "default": [] }, "skill_match": { "title": "Skill matching", "enum": [ "all", "any" ], "type": "string", "description": "Require every listed skill or at least one.", "default": "all" }, "min_salary": { "title": "Minimum salary", "minimum": 0, "maximum": 1000000000, "type": "number", "description": "Optional amount in the chosen currency and pay frequency. The entire advertised range must satisfy the requested bounds." }, "max_salary": { "title": "Maximum salary", "minimum": 0, "maximum": 1000000000, "type": "number", "description": "Optional amount in the chosen currency and pay frequency. The entire advertised range must satisfy the requested bounds." }, "salary_currency": { "title": "Salary currency", "enum": [ "USD", "CAD", "AUD", "EUR", "GBP", "INR" ], "type": "string", "description": "No currency conversion or annualization is applied.", "default": "USD" }, "salary_type": { "title": "Pay frequency", "enum": [ "yearly", "monthly", "weekly", "daily", "hourly" ], "type": "string", "description": "No currency conversion or annualization is applied.", "default": "yearly" }, "include_unknown_salary": { "title": "Include unknown salaries", "type": "boolean", "description": "With salary bounds enabled, allow missing amounts/units. Known different currencies or frequencies remain excluded.", "default": false }, "include_companies": { "title": "Include companies", "maxItems": 50, "type": "array", "description": "Optional company names/phrases; case-insensitive whole phrase matching. Unknown companies are excluded when company filters are active.", "items": { "type": "string" }, "default": [] }, "exclude_companies": { "title": "Exclude companies", "maxItems": 50, "type": "array", "description": "Exclude company name phrases. A phrase such as Meta does not match Metallurgy. This is a name filter, not an automatic staffing-agency classifier.", "items": { "type": "string" }, "default": [] }, "sources": { "title": "Sources", "maxItems": 5, "type": "array", "description": "Sources: linkedin, arbeitnow, jobicy, remotive, indeed. Indeed is unavailable. Remotive is disabled unless the operator has provider permission. Jobicy/Remotive require unrestricted remote-compatible searches. Source status and bounded feed coverage are reported.", "items": { "type": "string" }, "default": [ "linkedin", "arbeitnow", "jobicy" ] }, "max_candidates": { "title": "Global candidate budget", "minimum": 1, "maximum": 500, "type": "integer", "description": "Maximum normalized candidates inspected across all queries, including duplicates/rejections. Uncached requests reserve this many credits once. Defaults to the result limit, or three times that limit (up to 500) when advanced filters are active. Must be at least the result limit." }, "include_descriptions": { "title": "Include descriptions", "type": "boolean", "description": "Descriptions are always inspected for filtering; disable to omit description text from returned records.", "default": true } } }, "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 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Global Job Search API from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: