{
  "openapi": "3.0.1",
  "info": {
    "title": "WorkIndia Jobs & Candidate Scraper",
    "description": "[💰 $0.90 / 1K]  Extract WorkIndia job listings and recruiter candidate profiles via fast HTTP APIs. Filter by type, city, category, qualification, and experience, enrich job details, and infer candidate industries.",
    "version": "0.1",
    "x-build-id": "ZcJXbvrhzWz7quqYl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fetchfinch~workindia-unified-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fetchfinch-workindia-unified-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/fetchfinch~workindia-unified-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fetchfinch-workindia-unified-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/fetchfinch~workindia-unified-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fetchfinch-workindia-unified-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": {
          "mode": {
            "title": "Collection mode",
            "enum": [
              "jobs",
              "candidates"
            ],
            "type": "string",
            "description": "Use jobs for public job listings or candidates for public recruiter candidate profiles. A run produces one record type only.",
            "default": "jobs"
          },
          "startUrl": {
            "title": "WorkIndia search URL",
            "type": "string",
            "description": "Jobs mode: public WorkIndia search page used as the referer and as a source for default filters. Defaults to the work-from-home search.",
            "default": "https://www.workindia.in/work-from-home-jobs/"
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Jobs mode: keyword or WorkIndia search slug. Candidate mode: compatibility alias for one job title."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Jobs mode: city or locality filter. Candidate mode: compatibility alias for one city."
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "Work From Home Jobs",
              "Part-Time Jobs",
              "Fresher Jobs",
              "Jobs for Women",
              "Full-Time Jobs",
              "Night Shift Jobs"
            ],
            "type": "string",
            "description": "Jobs mode: source-style WorkIndia type choice. Fresher Jobs and Jobs for Women are translated to the corresponding experience/gender filters.",
            "default": "Work From Home Jobs"
          },
          "jobTypes": {
            "title": "Additional job types",
            "type": "array",
            "description": "Jobs mode: optional compatibility/advanced list of additional source-style type choices. The Job type dropdown is recommended for normal runs.",
            "items": {
              "type": "string"
            }
          },
          "jobCities": {
            "title": "Job cities",
            "type": "array",
            "description": "Jobs mode: one or more city values. Values are sent to WorkIndia's city filter.",
            "items": {
              "type": "string"
            }
          },
          "jobLocations": {
            "title": "Job localities",
            "type": "array",
            "description": "Jobs mode: locality or location values, for example Andheri or Koramangala.",
            "items": {
              "type": "string"
            }
          },
          "jobCategory": {
            "title": "Job category",
            "enum": [
              "Medical (Doctor, Dentist etc.)",
              "Sales & Marketing (Field Work)",
              "Lab Technician",
              "Typist",
              "Beautician / Hair Stylist / Salon",
              "Security Guard",
              "Chemist",
              "Fashion Designer",
              "Architect/Interiors",
              "Other",
              "Content Writing",
              "Marketing",
              "Counter Sales / Retail",
              "Back Office",
              "Counsellor Job",
              "DTP / Graphic Designer / Animation",
              "Office Boy / Peon / Helper",
              "Housekeeping",
              "Human Resource / HR Executive",
              "Nurse / Ward Boy / Patient Care",
              "Tele-caller / BPO",
              "Legal",
              "Receptionist / Front Office Desk",
              "Vehicle Service",
              "Tailor/Cutting Master",
              "Business Development",
              "Engineer (Mechanical, Civil etc.)",
              "Ward Boy",
              "Hospitality / Hotel Management",
              "DTP Operator",
              "Machine Operator",
              "Hotel Staff (Waiter / Steward / Captain)",
              "Teacher",
              "Maid",
              "Driver",
              "Software / Web Developer",
              "Photographer",
              "Delivery / Pick Up Boy",
              "Cook / Chef",
              "Accounts",
              "Labourer",
              "Trainer",
              "Technician/ITI (AC, CCTV etc.)",
              "Event Management",
              "IT Hardware & Network Engineer",
              "Digital Marketing",
              "Online Marketing"
            ],
            "type": "string",
            "description": "Jobs mode: source-style WorkIndia industry category. The label is translated to the API industry constant."
          },
          "jobCategories": {
            "title": "Additional job categories",
            "type": "array",
            "description": "Jobs mode: optional compatibility/advanced list of additional source-style WorkIndia industry categories. The Job category dropdown is recommended for normal runs.",
            "items": {
              "type": "string"
            }
          },
          "jobSubcategory": {
            "title": "Job role / subcategory",
            "type": "string",
            "description": "Jobs mode: source-style role keyword, such as Delivery Executive, Account Executive, Cashier, or Data Entry."
          },
          "jobSubcategories": {
            "title": "Additional job roles / subcategories",
            "type": "array",
            "description": "Jobs mode: role keywords used by WorkIndia's search, such as Delivery Executive, Account Executive, Cashier, or Data Entry. WorkIndia exposes these as search/SEO roles rather than a separate API subcategory field.",
            "items": {
              "type": "string"
            }
          },
          "jobQualifications": {
            "title": "Job qualifications",
            "type": "array",
            "description": "Jobs mode: qualification values, such as 10th pass, 12th pass, graduate, or below 10th. Common labels are mapped to WorkIndia IDs; numeric IDs are also accepted.",
            "items": {
              "type": "string"
            }
          },
          "jobExperiences": {
            "title": "Job experience",
            "type": "array",
            "description": "Jobs mode: WorkIndia experience values or labels, such as fresher or 1-3 years.",
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Enrich job details",
            "type": "boolean",
            "description": "Jobs mode: fetch each public job detail page over HTTP and merge its structured data into the listing. This increases request volume.",
            "default": false
          },
          "jobTitles": {
            "title": "Candidate job titles",
            "type": "array",
            "description": "Candidates mode: one or more WorkIndia job-title strings, such as Delivery Executive or Telecaller.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "Candidate cities",
            "type": "array",
            "description": "Candidates mode: lowercase WorkIndia city slugs such as mumbai, delhi, or bangalore. Empty searches all cities for the selected title.",
            "items": {
              "type": "string"
            }
          },
          "industries": {
            "title": "Candidate industries",
            "type": "array",
            "description": "Candidates mode: optional WorkIndia role-category slugs, for example delivery, driver, retail, or telecalling.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Candidate sort",
            "enum": [
              "newest",
              "active",
              "nearest"
            ],
            "type": "string",
            "description": "Candidates mode sort order.",
            "default": "newest"
          },
          "qualification": {
            "title": "Candidate qualification",
            "type": "string",
            "description": "Candidates mode qualification filter when supported by WorkIndia."
          },
          "english": {
            "title": "Candidate English level",
            "type": "string",
            "description": "Candidates mode English-level filter when supported by WorkIndia."
          },
          "experience": {
            "title": "Candidate experience",
            "type": "string",
            "description": "Candidates mode experience filter when supported by WorkIndia."
          },
          "localities": {
            "title": "Candidate localities",
            "type": "array",
            "description": "Candidates mode optional locality values passed to WorkIndia as repeated location filters.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Maximum candidates",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Candidates mode total candidate cap across all title and city combinations.",
            "default": 100
          },
          "requestDelay": {
            "title": "Candidate request delay",
            "minimum": 0,
            "maximum": 30000,
            "type": "integer",
            "description": "Candidates mode delay between API requests in milliseconds.",
            "default": 0
          },
          "workType": {
            "title": "Work type",
            "type": "array",
            "description": "Compatibility alias for jobTypes. Values are used in the WorkIndia work_type filter.",
            "items": {
              "type": "string"
            },
            "default": [
              "work_from_home"
            ]
          },
          "filters": {
            "title": "Additional feed filters",
            "type": "object",
            "description": "Optional raw fields to merge into the feed filter object. This is useful when WorkIndia adds a filter not yet represented by the Actor input."
          },
          "sort": {
            "title": "Sort order",
            "type": "string",
            "description": "WorkIndia feed sort value.",
            "default": "freshness"
          },
          "resultsWanted": {
            "title": "Results wanted",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Maximum number of jobs to save.",
            "default": 100
          },
          "maxPages": {
            "title": "Maximum pages",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum number of API pages to request. Each page uses pageSize records.",
            "default": 20
          },
          "pageSize": {
            "title": "Page size",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Number of jobs requested per feed call. WorkIndia's web UI uses 20.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional Apify Proxy configuration. For local testing, the Actor also honors the PROXY environment variable."
          },
          "proxyUrl": {
            "title": "Custom proxy URL",
            "type": "string",
            "description": "Optional HTTP(S) or SOCKS proxy URL. If omitted, PROXY is checked locally."
          },
          "cookie": {
            "title": "Optional WorkIndia cookie",
            "type": "string",
            "description": "Optional Cookie header for troubleshooting. It is never written to the dataset or logs."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}