{
  "openapi": "3.0.1",
  "info": {
    "title": "✅ 🌐 visa-sponsorship-jobs-scraper 🚀",
    "description": "Find jobs that can sponsor a work visa. Scrapes public ATS boards (Greenhouse, Lever, Ashby) and matches employers to the UK Skilled Worker sponsor register and US H-1B filing signals. Filter by country, seniority, salary, and remote. Optional AI relevance scoring. Evidence of sponsorship capability",
    "version": "1.0",
    "x-build-id": "ck329UY6YFXT0Ldfd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/alireza.nezami~visa-sponsorship-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-alireza.nezami-visa-sponsorship-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/alireza.nezami~visa-sponsorship-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-alireza.nezami-visa-sponsorship-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/alireza.nezami~visa-sponsorship-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-alireza.nezami-visa-sponsorship-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": {
          "visaSponsorshipOnly": {
            "title": "Visa Sponsorship Only",
            "type": "boolean",
            "description": "Only return jobs with confirmed sponsorship signals (official sponsor lists, historical filings, or explicit JD statements).",
            "default": true
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Job titles or skills to search for (e.g., Software Engineer, Machine Learning, Android, Python).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Filter by target countries (Europe, East Asia, Americas, Arab countries, and more).",
            "items": {
              "type": "string",
              "enum": [
                "Argentina",
                "Australia",
                "Austria",
                "Bahrain",
                "Bangladesh",
                "Belgium",
                "Brazil",
                "Bulgaria",
                "Canada",
                "Chile",
                "China",
                "Colombia",
                "Croatia",
                "Cyprus",
                "Czech Republic",
                "Denmark",
                "Egypt",
                "Estonia",
                "Finland",
                "France",
                "Germany",
                "Greece",
                "Hong Kong",
                "Hungary",
                "Iceland",
                "India",
                "Indonesia",
                "Ireland",
                "Israel",
                "Italy",
                "Japan",
                "Jordan",
                "Kuwait",
                "Latvia",
                "Lebanon",
                "Lithuania",
                "Luxembourg",
                "Malaysia",
                "Malta",
                "Mexico",
                "Morocco",
                "Netherlands",
                "New Zealand",
                "Norway",
                "Oman",
                "Pakistan",
                "Peru",
                "Philippines",
                "Poland",
                "Portugal",
                "Qatar",
                "Romania",
                "Saudi Arabia",
                "Serbia",
                "Singapore",
                "Slovakia",
                "Slovenia",
                "South Korea",
                "Spain",
                "Sweden",
                "Switzerland",
                "Taiwan",
                "Thailand",
                "Ukraine",
                "United Arab Emirates",
                "United Kingdom",
                "United States",
                "Uruguay",
                "Vietnam"
              ]
            },
            "default": []
          },
          "remoteOnly": {
            "title": "Remote Only",
            "type": "boolean",
            "description": "Only return fully remote positions.",
            "default": false
          },
          "seniorityLevels": {
            "title": "Seniority",
            "type": "array",
            "description": "Filter by seniority level (leave empty for all).",
            "items": {
              "type": "string",
              "enum": [
                "intern",
                "junior",
                "mid",
                "senior",
                "lead"
              ],
              "enumTitles": [
                "Internship",
                "Junior",
                "Mid-Level",
                "Senior",
                "Lead"
              ]
            },
            "default": []
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 10,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of jobs to return.",
            "default": 500
          },
          "postedWithinDays": {
            "title": "Posted Within",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Only include jobs posted in the last N days.",
            "default": 60
          },
          "enableAIClassification": {
            "title": "Enable AI Scoring",
            "type": "boolean",
            "description": "Use AI to score job relevance (0-100). Requires your own LLM API key (Zero-Liability model).",
            "default": false
          },
          "llmProvider": {
            "title": "LLM Provider",
            "enum": [
              "gemini",
              "groq"
            ],
            "type": "string",
            "description": "AI provider to evaluate candidate jobs.",
            "default": "gemini"
          },
          "llmApiKey": {
            "title": "LLM API Key",
            "type": "string",
            "description": "Your Google Gemini or Groq API key. If omitted when AI is enabled, AI evaluation is gracefully skipped without errors or extra charges."
          },
          "maxAICalls": {
            "title": "Max AI Calls",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum candidate jobs to score with AI per run.",
            "default": 50
          },
          "sources": {
            "title": "Data Sources",
            "type": "array",
            "description": "Select specific ATS platforms and job boards to query (leave empty to search all 12 available sources by default).",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "workable",
                "smartrecruiters",
                "personio",
                "remoteok",
                "remotive",
                "arbeitnow",
                "himalayas",
                "hn_whoshiring",
                "jobicy"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Workable",
                "SmartRecruiters",
                "Personio",
                "RemoteOK",
                "Remotive",
                "Arbeitnow",
                "Himalayas",
                "HN Who's Hiring",
                "Jobicy"
              ]
            },
            "default": []
          },
          "visaRegistryCountries": {
            "title": "Visa Registry Countries",
            "type": "array",
            "description": "Official sponsor registries to check against.",
            "items": {
              "type": "string",
              "enum": [
                "UK",
                "US"
              ],
              "enumTitles": [
                "UK (Skilled Worker Register)",
                "US (DOL LCA Filings)"
              ]
            },
            "default": [
              "UK",
              "US"
            ]
          },
          "minVisaConfidence": {
            "title": "Minimum Visa Confidence",
            "enum": [
              "unknown",
              "historical_filings",
              "on_sponsor_list",
              "known_sponsor",
              "stated_in_jd"
            ],
            "type": "string",
            "description": "Minimum confidence level required.",
            "default": "unknown"
          },
          "includeUnknownVisa": {
            "title": "Include Unknown Visa Status",
            "type": "boolean",
            "description": "Include jobs where sponsorship status is unknown (only when Visa Sponsorship Only is enabled).",
            "default": false
          },
          "deduplicationAcrossRuns": {
            "title": "Deduplicate Across Runs",
            "type": "boolean",
            "description": "Remember seen job postings in a persistent Key-Value Store to avoid duplicate charges on scheduled runs.",
            "default": true
          },
          "deduplicationTtlDays": {
            "title": "Deduplication TTL (Days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Number of days to remember previously seen job postings.",
            "default": 30
          },
          "resetDedupState": {
            "title": "Reset Deduplication State",
            "type": "boolean",
            "description": "Wipe historical job fingerprint memory and start fresh on this run.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Use Apify Standard Proxy to prevent geo-blocking and rate limits.",
            "default": {
              "useApifyProxy": true
            }
          },
          "refreshRegistries": {
            "title": "Refresh Live Registries",
            "type": "boolean",
            "description": "Attempt downloading the latest UK Home Office live register on startup (falls back to bundled database on timeout).",
            "default": false
          },
          "employmentTypes": {
            "title": "Employment Type",
            "type": "array",
            "description": "Filter by contract type.",
            "items": {
              "type": "string",
              "enum": [
                "full_time",
                "part_time",
                "contract",
                "internship"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship"
              ]
            },
            "default": []
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "composite_score",
              "relevance_score",
              "posted_at",
              "visa_confidence"
            ],
            "type": "string",
            "description": "How to sort results.",
            "default": "composite_score"
          },
          "includeDescription": {
            "title": "Include Job Description",
            "type": "boolean",
            "description": "Include full job description text in output.",
            "default": true
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Number of sources to fetch in parallel (advanced).",
            "default": 10
          },
          "maxRuntimeSecs": {
            "title": "Max Runtime",
            "minimum": 60,
            "maximum": 3600,
            "type": "integer",
            "description": "Maximum run time in seconds before timeout.",
            "default": 300
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}