{
  "openapi": "3.0.1",
  "info": {
    "title": "VietnamWorks Jobs Scraper",
    "description": "Scrape live job listings from VietnamWorks.com, Vietnam's largest job board. Browse curated trending job feeds, run a real-time keyword search, or fetch full job details from listing URLs. No login, no cookies, no paid proxy required.",
    "version": "1.0",
    "x-build-id": "yUZ1ehleznqaocfjD"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~vietnamworks-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-vietnamworks-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/crawlerbros~vietnamworks-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-vietnamworks-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/crawlerbros~vietnamworks-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-vietnamworks-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "trending",
              "search",
              "byUrls"
            ],
            "type": "string",
            "description": "What to fetch.",
            "default": "trending"
          },
          "feedType": {
            "title": "Trending feed (mode=trending)",
            "enum": [
              "bestJobs",
              "urgentJobs",
              "featuredJobs",
              "partTimeJobs",
              "highSalaryJobs",
              "headhunterJobs"
            ],
            "type": "string",
            "description": "Which curated VietnamWorks homepage feed to pull.",
            "default": "bestJobs"
          },
          "keyword": {
            "title": "Keyword (mode=search)",
            "type": "string",
            "description": "Free-text job search query, e.g. `developer`, `accountant`, `sales manager`.",
            "default": "developer"
          },
          "locationIds": {
            "title": "Locations (mode=search)",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict search results to one or more Vietnamese provinces/cities. Empty = no location filter.",
            "items": {
              "type": "string",
              "enum": [
                "2",
                "3",
                "5",
                "6",
                "7",
                "8",
                "10",
                "11",
                "12",
                "13",
                "14",
                "15",
                "17",
                "18",
                "73",
                "69",
                "19",
                "20",
                "21",
                "22",
                "23",
                "24",
                "26",
                "27",
                "28",
                "72",
                "29",
                "30",
                "32",
                "70",
                "33",
                "61",
                "34",
                "36",
                "37",
                "38",
                "39",
                "71",
                "40",
                "41",
                "42",
                "43",
                "66",
                "44",
                "45",
                "46",
                "47",
                "48",
                "49",
                "50",
                "51",
                "52",
                "53",
                "54",
                "55",
                "56",
                "57",
                "58",
                "59",
                "60",
                "62",
                "63",
                "65"
              ],
              "enumTitles": [
                "An Giang",
                "Ba Ria - Vung Tau",
                "Bac Giang",
                "Bac Lieu",
                "Bac Ninh",
                "Ben Tre",
                "Binh Dinh",
                "Binh Duong",
                "Binh Phuoc",
                "Binh Thuan",
                "Ca Mau",
                "Can Tho",
                "Da Nang",
                "Dak Lak",
                "Dak Nong",
                "Dien Bien",
                "Dong Nai",
                "Dong Thap",
                "Gia Lai",
                "Ha Giang",
                "Ha Nam",
                "Ha Noi",
                "Ha Tinh",
                "Hai Duong",
                "Hai Phong",
                "Hau Giang",
                "Ho Chi Minh",
                "Hoa Binh",
                "Hung Yen",
                "International",
                "Khanh Hoa",
                "Kien Giang",
                "Kon Tum",
                "Lam Dong",
                "Lang Son",
                "Lao Cai",
                "Long An",
                "Mekong Delta",
                "Nam Dinh",
                "Nghe An",
                "Ninh Binh",
                "Ninh Thuan",
                "Other",
                "Phu Tho",
                "Phu Yen",
                "Quang Binh",
                "Quang Nam",
                "Quang Ngai",
                "Quang Ninh",
                "Quang Tri",
                "Soc Trang",
                "Son La",
                "Tay Ninh",
                "Thai Binh",
                "Thai Nguyen",
                "Thanh Hoa",
                "Thua Thien Hue",
                "Tien Giang",
                "Tra Vinh",
                "Tuyen Quang",
                "Vinh Long",
                "Vinh Phuc",
                "Yen Bai"
              ]
            },
            "default": []
          },
          "industryIds": {
            "title": "Industries (mode=search)",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict search results to one or more VietnamWorks industry categories. Empty = no industry filter.",
            "items": {
              "type": "string",
              "enum": [
                "59",
                "6",
                "7",
                "83",
                "120",
                "102",
                "17",
                "18",
                "142",
                "112",
                "150",
                "8",
                "132",
                "50",
                "46",
                "93",
                "68",
                "51",
                "103",
                "25",
                "143",
                "157",
                "133",
                "69",
                "52",
                "19",
                "84",
                "61",
                "149",
                "138",
                "72",
                "62",
                "94",
                "104",
                "9",
                "10",
                "63",
                "39",
                "40",
                "41",
                "27",
                "26",
                "64",
                "105",
                "28",
                "115",
                "1",
                "2",
                "53",
                "71",
                "96",
                "54",
                "106",
                "70",
                "137",
                "42",
                "11",
                "60",
                "12",
                "77",
                "55",
                "78",
                "87",
                "65",
                "13",
                "121",
                "73",
                "158",
                "95",
                "43",
                "29",
                "21",
                "88",
                "89",
                "30",
                "33",
                "31",
                "79",
                "44",
                "97",
                "22",
                "122",
                "66",
                "98",
                "99",
                "100",
                "151",
                "134",
                "14",
                "107",
                "108",
                "56",
                "116",
                "148",
                "57",
                "146",
                "117",
                "123",
                "159",
                "74",
                "118",
                "156",
                "147",
                "58",
                "135",
                "80",
                "109",
                "152",
                "153",
                "114",
                "20",
                "23",
                "140",
                "119",
                "110",
                "47",
                "124",
                "34",
                "154",
                "48",
                "136",
                "125",
                "76",
                "155",
                "3",
                "139",
                "144",
                "16",
                "85",
                "49",
                "128",
                "126",
                "130",
                "129",
                "127",
                "35",
                "36",
                "67",
                "145",
                "4",
                "81",
                "32",
                "101",
                "15",
                "5",
                "37",
                "131",
                "90",
                "111",
                "75",
                "92",
                "38",
                "86",
                "24",
                "141",
                "45",
                "82"
              ],
              "enumTitles": [
                "Accounts & Relationship Management",
                "Accounts Payable",
                "Accounts Receivable",
                "Actuary",
                "Administration",
                "Agency Account Management",
                "Agriculture/Livestock/Fishery",
                "Architecture Design/Architectural Drafting",
                "Area/Multisite Management",
                "Art Direction/Photography",
                "Assembly & Process Work",
                "Audit",
                "Auto Mechanic",
                "Automotive Engineering",
                "Aviation Services",
                "Banking/Finance/Commercial Law",
                "Bar/Beverage/Waiting",
                "Biotechnologies",
                "Brand Management",
                "Business/System Analysis",
                "Buying",
                "CEO",
                "CNC Technician",
                "Chefs/Cooks",
                "Chemical Engineering",
                "Civil Engineering",
                "Claims",
                "Client Services",
                "Clothing Technology",
                "Commercial Sales, Leasing & Property Management",
                "Compensation & Benefit",
                "Compliance & Risk",
                "Construction Law",
                "Content Marketing/Copywriter",
                "Corporate Planning/Corporate Advisory",
                "Cost Accounting",
                "Credit",
                "Customer Service",
                "Customer Service - Call Center",
                "Customer Service - Customer Facing",
                "Data Engineer/Data Analyst/AI",
                "Database Administration",
                "Debt Collection",
                "Digital Marketing",
                "Digital Transformation",
                "Doctor/General Practitioners/Residents",
                "Educational Consulting",
                "Educational Management",
                "Electrical/Electronic",
                "Employee Engagement",
                "Employment/Retirement Law",
                "Environmental",
                "Event Management",
                "F&B Management",
                "Facilities Management",
                "Fashion Design/Jewelry Design",
                "Financial Accounting",
                "Financial Analysis & Research",
                "Financial Managers & Controllers",
                "Fleet Management",
                "Food Technology",
                "Freight/Cargo Forwarding",
                "Front Office & Guest Services",
                "Funds Management",
                "General Accounting",
                "General Coordinator",
                "General HR",
                "General Management",
                "Generalists",
                "Graphic Design",
                "Hardware Developer",
                "Health, Safety & Environment",
                "Hotel Reservation",
                "Housekeeping",
                "IT Management",
                "IT Product Management/Project Management",
                "IT Support/Help Desk",
                "Import/Export & Customs",
                "Industrial Design/Technical Design",
                "Intellectual/Property Law",
                "Interior Design",
                "Interpreter/Translator",
                "Investment",
                "Law Clerks & Paralegals",
                "Legal Practice Management",
                "Legal Secretaries",
                "Machine Operator",
                "Maintenance Technician",
                "Management Accounting",
                "Market Research & Analysis",
                "Marketing",
                "Mechanical & HVAC",
                "Medical Technologist",
                "Merchandising",
                "Mining/Oil/Gas",
                "NGO/Non-Profit",
                "Nursing",
                "Office Management",
                "Others",
                "Performance & Career Management",
                "Pharmacist",
                "Pharmacy Distribution",
                "Policy, Planning & Regulation",
                "Power/Water/Waste Engineering",
                "Printing Technician",
                "Procurement & Inventory",
                "Product Marketing",
                "Production Analysis",
                "Production Operation & Planning",
                "Programming & Production",
                "Project Development/Contracts",
                "Project Management",
                "Property Development",
                "Psychology, Counselling & Social Work",
                "Public Relations & Corporate Affairs",
                "Public Transport & Taxi Services",
                "Purchasing",
                "QA/QC/Software Testing",
                "Quality Assurance/Quality Control/Quality Management",
                "Rail & Maritime Transport",
                "Real Estate Analysis",
                "Receptionist",
                "Recruitment",
                "Research & Development",
                "Research and Fellowship",
                "Residential Leasing & Property Management",
                "Retail Assistant",
                "Revenue Accounting",
                "Risk Consulting",
                "Road Transport",
                "Safe Guard",
                "Sales Administration",
                "Sales Engineer/Technical Sales",
                "Sales/Business Development",
                "Secretary",
                "Security",
                "Software Developer",
                "Stockbroking & Trading",
                "Store Management",
                "Student Services",
                "Supply Chain Management",
                "System/Cloud/DevOps Engineer",
                "Tax Law",
                "Taxation",
                "Teaching/Training",
                "Telecommunications",
                "Telesales",
                "Tour Operator",
                "Trade Marketing",
                "Training and Development",
                "Travel Agents",
                "UX/UI Design",
                "Underwriting",
                "Urban Design & Planning",
                "Valuation",
                "Video Editing",
                "Warehouse & Distribution"
              ]
            },
            "default": []
          },
          "locationContains": {
            "title": "Location contains (client-side filter)",
            "type": "string",
            "description": "Only keep jobs whose location text contains this (e.g. `Ho Chi Minh`, `Ha Noi`). Applied client-side on top of any mode."
          },
          "minSalary": {
            "title": "Minimum salary (VND, monthly)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Drop jobs whose disclosed salary is below this amount. Jobs with an undisclosed salary always pass through."
          },
          "fetchFullDetails": {
            "title": "Fetch full job details",
            "type": "boolean",
            "description": "Visit each job's detail page for the complete, un-truncated description, employer profile, skills and benefits. `trending`/`search` results already include a description snippet, so this roughly doubles run time.",
            "default": false
          },
          "jobUrls": {
            "title": "Job listing URLs (mode=byUrls)",
            "type": "array",
            "description": "VietnamWorks job listing URLs, e.g. `https://www.vietnamworks.com/hcm-senior-recruitment-consultant-real-estate-2091602-jv`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "default": 30
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not required for `trending` or `byUrls`, which always work proxy-free. For `mode=search` with `locationIds`/`industryIds` set, the upstream API's location/industry filter only returns results for Vietnam-based request IPs — the actor automatically retries through this proxy (Vietnam-country RESIDENTIAL, if enabled here) only when the direct, no-proxy attempt returns 0 results, so leaving this off costs nothing for keyword-only or unfiltered searches.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}