{
  "openapi": "3.0.1",
  "info": {
    "title": "💼 Naukri Job Scraper — India + Gulf · Emails & 41 Fields",
    "description": "Naukri Job Scraper extracts public job listings across India and Gulf markets with 41 structured fields, including titles, companies, locations, salaries, skills, descriptions, application details, and publicly available emails for recruitment and job market research.",
    "version": "1.0",
    "x-build-id": "VODYYwhbJtjWBe7fn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scraper-engine~naukri-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scraper-engine-naukri-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/scraper-engine~naukri-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scraper-engine-naukri-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/scraper-engine~naukri-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scraper-engine-naukri-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": {
          "startUrls": {
            "title": "🔗 Start URLs (bulk)",
            "type": "array",
            "description": "🌐 One or more Naukri/Naukrigulf URLs — bulk-friendly, one per line or upload a file. Mix and match: 🔍 search/listing pages, 🏢 company-overview pages (e.g. <code>/cognizant-overview-4156?tab=jobs</code> → every open job there), and 🎯 direct job-detail pages. When this is non-empty, every field under <b>🎛️ Search by Filters</b> below is ignored.",
            "items": {
              "type": "string"
            }
          },
          "jobIds": {
            "title": "🆔 Job IDs (direct fetch)",
            "type": "array",
            "description": "⚡ Fetch these exact Naukri job IDs directly and skip search entirely — perfect for refreshing or monitoring specific postings. The ID is the digits at the end of a job URL (e.g. <code>...-091025500280</code>). When set, this overrides Start URLs and every search filter.",
            "items": {
              "type": "string"
            }
          },
          "platform": {
            "title": "🌍 Platform",
            "enum": [
              "naukri",
              "naukrigulf"
            ],
            "type": "string",
            "description": "🧭 Naukri.com (India) vs Naukrigulf.com (Gulf) for filter-built search only — ignored when Start URLs or Job IDs are set.",
            "default": "naukri"
          },
          "searchQuery": {
            "title": "🔎 Keyword",
            "type": "string",
            "description": "💡 Job title, role or keyword to search for (filter mode only). Examples: <code>developer</code>, <code>data scientist</code>, <code>pharma manager</code>.",
            "default": "developer"
          },
          "location": {
            "title": "📍 Location",
            "type": "string",
            "description": "🏙️ City, region, or country (filter mode only). Examples: <code>bangalore</code>, <code>india</code>, <code>dubai</code>, <code>riyadh</code>. Falls back to <code>india</code> (Naukri) or <code>dubai</code> (Naukrigulf) if left blank.",
            "default": "india"
          },
          "cities": {
            "title": "🏙️ Extra Cities (bulk)",
            "type": "array",
            "description": "➕ Add more cities — each one runs its own search and results are merged (up to Maximum Jobs). Works together with 📍 Location above.",
            "items": {
              "type": "string"
            }
          },
          "maximumJobs": {
            "title": "🎯 Maximum Jobs",
            "minimum": 1,
            "type": "integer",
            "description": "✂️ Stop after this many jobs, across every URL / city combined.",
            "default": 10
          },
          "sortBy": {
            "title": "↕️ Sort By",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "📊 Order results by relevance or freshness. Applies to filter-built searches and pasted search URLs.",
            "default": "relevance"
          },
          "experienceLevel": {
            "title": "🧑‍💼 Experience (years)",
            "minimum": 0,
            "type": "integer",
            "description": "📈 Minimum years of experience (filter mode)."
          },
          "jobType": {
            "title": "💼 Job Type",
            "type": "string",
            "description": "🗂️ Optional, forwarded where the site supports it (e.g. Naukri's job-post-type filter)."
          },
          "workMode": {
            "title": "🏠 Work Mode",
            "type": "string",
            "description": "🖥️ Comma-separated work-mode codes: <code>0</code> = Work from office, <code>1</code> = Temp. WFH, <code>2</code> = Remote/WFH, <code>3</code> = Hybrid. Example: <code>2,3</code> for Remote + Hybrid."
          },
          "industry": {
            "title": "🏭 Industry",
            "type": "string",
            "description": "🏗️ Single industry name or ID, matched against Naukri's live options (e.g. <code>IT Services & Consulting</code>)."
          },
          "roleCategory": {
            "title": "🎓 Role Category",
            "type": "string",
            "description": "🧩 Single role-category name or ID, matched against Naukri's live options."
          },
          "companyType": {
            "title": "🏢 Company Type",
            "type": "array",
            "description": "🏬 Company-type names or IDs, multi-select (e.g. Product/Service/Startup), matched against Naukri's live options.",
            "items": {
              "type": "string"
            }
          },
          "salaryRange": {
            "title": "💰 Salary Range (₹ Lacs/year)",
            "type": "array",
            "description": "💵 Multi-select annual CTC bands. Server-side Naukri filter; jobs that hide salary are always kept.",
            "items": {
              "type": "string",
              "enum": [
                "0to3",
                "3to6",
                "6to10",
                "10to15",
                "15to25",
                "25to50",
                "50to75",
                "75to100",
                "100to500",
                "501"
              ],
              "enumTitles": [
                "0–3 Lakhs",
                "3–6 Lakhs",
                "6–10 Lakhs",
                "10–15 Lakhs",
                "15–25 Lakhs",
                "25–50 Lakhs",
                "50–75 Lakhs",
                "75–100 Lakhs",
                "1–5 Cr",
                "5+ Cr"
              ]
            }
          },
          "department": {
            "title": "🧑‍🔬 Department",
            "type": "array",
            "description": "🗃️ Naukri department / functional-area, multi-select.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "10",
                "11",
                "12",
                "13",
                "14",
                "15",
                "16",
                "17",
                "18",
                "19",
                "20",
                "21",
                "22",
                "23",
                "24",
                "25",
                "26",
                "27",
                "28",
                "29",
                "30",
                "31",
                "32",
                "33",
                "34",
                "35",
                "36",
                "37"
              ],
              "enumTitles": [
                "BFSI, Investments & Trading",
                "Customer Success, Service & Operations",
                "Data Science & Analytics",
                "Engineering - Hardware & Networks",
                "Engineering - Software & QA",
                "Finance & Accounting",
                "Human Resources",
                "IT & Information Security",
                "Marketing & Communication",
                "Product Management",
                "Production, Manufacturing & Engineering",
                "Project & Program Management",
                "Quality Assurance",
                "Sales & Business Development",
                "UX, Design & Architecture",
                "Administration & Facilities",
                "Aviation & Aerospace",
                "Construction & Site Engineering",
                "Consulting",
                "Content, Editorial & Journalism",
                "CSR & Social Service",
                "Energy & Mining",
                "Environment Health & Safety",
                "Food, Beverage & Hospitality",
                "Healthcare & Life Sciences",
                "Legal & Regulatory",
                "Media Production & Entertainment",
                "Merchandising, Retail & eCommerce",
                "Procurement & Supply Chain",
                "Research & Development",
                "Risk Management & Compliance",
                "Security Services",
                "Shipping & Maritime",
                "Sports, Fitness & Personal Care",
                "Strategic & Top Management",
                "Teaching & Training",
                "Other"
              ]
            }
          },
          "ugCourse": {
            "title": "🎓 UG Course",
            "type": "array",
            "description": "📘 Required undergraduate-degree, multi-select. Jobs open to \"Any Graduate\" always match.",
            "items": {
              "type": "string",
              "enum": [
                "18",
                "11",
                "14",
                "10",
                "17",
                "5",
                "3",
                "4",
                "1",
                "13",
                "6",
                "9",
                "12",
                "2",
                "8",
                "16",
                "7",
                "36",
                "40",
                "35",
                "41",
                "42",
                "15",
                "37",
                "38"
              ],
              "enumTitles": [
                "Any Graduate",
                "B.Tech/B.E.",
                "Diploma",
                "B.Sc",
                "Graduation Not Required",
                "B.Com",
                "BCA",
                "B.B.A / B.M.S",
                "B.A",
                "MBBS",
                "B.Ed",
                "B.Pharma",
                "LLB",
                "B.Arch",
                "BHM",
                "Other Graduate",
                "BDS",
                "BHMS",
                "B.Des.",
                "BAMS",
                "BFA",
                "B.U.M.S",
                "BVSC",
                "B.El.Ed",
                "B.P.Ed"
              ]
            }
          },
          "pgCourse": {
            "title": "🎓 PG Course",
            "type": "array",
            "description": "📗 Required postgraduate-degree, multi-select. Jobs open to \"Any Postgraduate\" always match.",
            "items": {
              "type": "string",
              "enum": [
                "19",
                "20",
                "13",
                "12",
                "14",
                "1",
                "11",
                "8",
                "15",
                "16",
                "10",
                "6",
                "5",
                "3",
                "9",
                "2",
                "18",
                "37",
                "7",
                "4",
                "38",
                "36",
                "34",
                "17",
                "35"
              ],
              "enumTitles": [
                "Any Postgraduate",
                "Post Graduation Not Required",
                "MBA/PGDM",
                "M.Tech",
                "MCA",
                "CA",
                "MS/M.Sc(Science)",
                "M.Com",
                "Medical-MS/MD",
                "PG Diploma",
                "M.Pharma",
                "M.A",
                "LLM",
                "ICWA (CMA)",
                "M.Ed",
                "CS",
                "Other",
                "DM",
                "M.Arch",
                "Integrated PG",
                "M.Ch",
                "M.Des.",
                "MDS",
                "MVSC",
                "MFA"
              ]
            }
          },
          "timeFilter": {
            "title": "🕒 Posted Within",
            "enum": [
              "24h",
              "7d",
              "30d",
              "90d"
            ],
            "type": "string",
            "description": "📅 Only keep jobs posted within this window. Jobs with no parseable date are always kept."
          },
          "freshnessDays": {
            "title": "🆕 Freshness (server-side, days)",
            "minimum": 1,
            "type": "integer",
            "description": "📡 Server-side Naukri \"posted in the last N days\" filter (fewer rows fetched = faster & cheaper than the client-side Posted-Within filter above)."
          },
          "minSalary": {
            "title": "💵 Minimum Salary",
            "minimum": 0,
            "type": "integer",
            "description": "📊 Drop rows below this annual salary. Permissive: jobs with hidden/missing salary are always kept.",
            "default": 0
          },
          "includeDescription": {
            "title": "📄 Include Full Description",
            "type": "boolean",
            "description": "📝 Include the full HTML job description + short description in each row. Turn off for lighter, faster rows.",
            "default": true
          },
          "cleanHtml": {
            "title": "🧹 Clean HTML",
            "type": "boolean",
            "description": "✨ Strip HTML tags from the description fields, leaving plain readable text. Only applies when Include Full Description is on.",
            "default": false
          },
          "includeAmbitionBoxDetails": {
            "title": "⭐ Include AmbitionBox Ratings",
            "type": "boolean",
            "description": "🏆 Enrich each Naukri row with the employer's AmbitionBox company rating, review count, and top reviews. Naukri.com rows only; adds a little time per row.",
            "default": false
          },
          "enrichEmails": {
            "title": "📧 Enrich Employer Emails",
            "type": "boolean",
            "description": "✉️ Look up the hiring company's website and scan a few public pages (home, contact, about) for a public contact email — turns job data into a lead-gen dataset. Adds a couple of extra requests per row.",
            "default": false
          },
          "qualifyByPayment": {
            "title": "💳 Qualify by Payment Processor",
            "type": "boolean",
            "description": "🔍 Only meaningful together with Enrich Employer Emails. Scans the same pages for Stripe/PayPal/Shopify/etc. signatures and adds <code>takesPayments</code> / <code>paymentProcessors</code> / <code>paymentConfidence</code> to the row — a handy signal for B2B/SaaS lead qualification.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "🛡️ Proxy Configuration",
            "type": "object",
            "description": "🌐 By default the Actor connects to Naukri/Naukrigulf with <b>NO proxy</b> for maximum speed. If a request is rejected or blocked, it automatically escalates: ⚡ No proxy → 🏢 Datacenter proxy → 🏠 Residential proxy (retried up to 3×) — then <b>sticks with Residential for every remaining request</b> in the run. Every escalation is logged clearly. You can also force a specific tier yourself here."
          },
          "maxConcurrency": {
            "title": "⚡ Max Concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "🚦 How many job pages to fetch in parallel. Higher is faster but more likely to trigger rate limiting (which the proxy ladder above then handles automatically).",
            "default": 10
          },
          "maxRequestRetries": {
            "title": "🔁 Max Retries per Request",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "🔄 How many times to retry a single request on a network error, rate limit, or server hiccup before giving up on it.",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}