{
  "data": {
    "id": "jIK44RJNboEaGNtv6",
    "actId": "Jfbzt9vLDGEVoJVyI",
    "userId": "IYgBDiXtHOijAaUel",
    "startedAt": "2026-10-22T17:55:03.508Z",
    "finishedAt": "2026-10-22T17:55:16.123Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 12524,
      "runTimeSecs": 12.524,
      "computeUnits": 0.013915555555555556,
      "imageSizeBytes": 3102751232
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "QYo53EZkJk0prePWY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Naukri Job Scraper Input\",\n  \"description\": \"Find Naukri.com jobs by keyword, location, company or job ID and return full job details, salary information, skills and company profiles.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"searches\": {\n      \"title\": \"Search Queries\",\n      \"type\": \"array\",\n      \"description\": \"One or more search configurations. Each entry can hold several keywords and several locations; every keyword is combined with every location. Leave keywords empty to browse a location or company.\",\n      \"editor\": \"json\",\n      \"default\": [],\n      \"prefill\": [\n        {\n          \"keywords\": [\n            \"software engineer\"\n          ],\n          \"locations\": [\n            \"bangalore\"\n          ]\n        }\n      ],\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"keywords\": {\n            \"title\": \"Keywords\",\n            \"type\": \"array\",\n            \"description\": \"Job titles or search terms (e.g. \\\"software engineer\\\", \\\"data scientist\\\").\",\n            \"editor\": \"stringList\",\n            \"default\": []\n          },\n          \"locations\": {\n            \"title\": \"Locations\",\n            \"type\": \"array\",\n            \"description\": \"Indian cities or regions (e.g. \\\"bangalore\\\", \\\"mumbai\\\", \\\"delhi ncr\\\", \\\"hyderabad\\\").\",\n            \"editor\": \"stringList\",\n            \"default\": []\n          },\n          \"experienceYears\": {\n            \"title\": \"Experience (years)\",\n            \"type\": \"integer\",\n            \"description\": \"Return jobs whose experience range includes this many years (0-30).\",\n            \"minimum\": 0,\n            \"maximum\": 30,\n            \"nullable\": true\n          },\n          \"salaryBucket\": {\n            \"title\": \"Salary Bucket\",\n            \"type\": \"string\",\n            \"description\": \"Annual salary band in Indian lakhs. Naukri can include jobs with hidden salary in a band; use salaryDisclosed to separate them.\",\n            \"editor\": \"select\",\n            \"enum\": [\n              \"0-3\",\n              \"3-6\",\n              \"6-10\",\n              \"10-15\",\n              \"15-25\",\n              \"25+\"\n            ],\n            \"enumTitles\": [\n              \"0 - 3 Lakhs\",\n              \"3 - 6 Lakhs\",\n              \"6 - 10 Lakhs\",\n              \"10 - 15 Lakhs\",\n              \"15 - 25 Lakhs\",\n              \"25+ Lakhs\"\n            ],\n            \"nullable\": true\n          },\n          \"workMode\": {\n            \"title\": \"Work Mode\",\n            \"type\": \"string\",\n            \"description\": \"Remote or hybrid filter. Naukri does not expose an office-only filter; \\\"any\\\" returns every mode.\",\n            \"editor\": \"select\",\n            \"enum\": [\n              \"any\",\n              \"remote\",\n              \"hybrid\"\n            ],\n            \"enumTitles\": [\n              \"Any\",\n              \"Remote\",\n              \"Hybrid\"\n            ],\n            \"default\": \"any\"\n          },\n          \"jobAge\": {\n            \"title\": \"Job Age\",\n            \"type\": \"string\",\n            \"description\": \"Only jobs posted within the last N days. Promoted jobs can bypass the server filter; strictJobAge removes them.\",\n            \"editor\": \"select\",\n            \"enum\": [\n              \"1\",\n              \"3\",\n              \"7\",\n              \"15\",\n              \"30\"\n            ],\n            \"enumTitles\": [\n              \"Last 1 day\",\n              \"Last 3 days\",\n              \"Last 7 days\",\n              \"Last 15 days\",\n              \"Last 30 days\"\n            ],\n            \"nullable\": true\n          },\n          \"sort\": {\n            \"title\": \"Sort By\",\n            \"type\": \"string\",\n            \"description\": \"Result ordering.\",\n            \"editor\": \"select\",\n            \"enum\": [\n              \"relevance\",\n              \"date\",\n              \"salary\"\n            ],\n            \"enumTitles\": [\n              \"Relevance\",\n              \"Date (newest first)\",\n              \"Salary (highest first)\"\n            ],\n            \"default\": \"relevance\"\n          },\n          \"companyId\": {\n            \"title\": \"Company ID\",\n            \"type\": \"string\",\n            \"description\": \"Optional Naukri company ID (numeric, e.g. \\\"10111\\\"). Free-text company names are not supported by Naukri.\",\n            \"editor\": \"textfield\",\n            \"nullable\": true\n          },\n          \"internship\": {\n            \"title\": \"Internships Only\",\n            \"type\": \"boolean\",\n            \"description\": \"Return internships.\",\n            \"default\": false,\n            \"prefill\": false\n          },\n          \"walkIn\": {\n            \"title\": \"Walk-in Jobs Only\",\n            \"type\": \"boolean\",\n            \"description\": \"Return walk-in interview jobs.\",\n            \"default\": false,\n            \"prefill\": false\n          }\n        }\n      }\n    },\n    \"jobIds\": {\n      \"title\": \"Job IDs\",\n      \"type\": \"array\",\n      \"description\": \"Fetch these Naukri job IDs directly. Accepts bare IDs or Naukri job URLs. Job IDs are processed before searches.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": [\n        \"221026015762\"\n      ]\n    },\n    \"companyIds\": {\n      \"title\": \"Company IDs\",\n      \"type\": \"array\",\n      \"description\": \"Naukri company IDs to search across. When searches are also supplied, each company is combined with every search.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"maxItems\": {\n      \"title\": \"Max Items\",\n      \"type\": \"integer\",\n      \"description\": \"Total records to return across all queries. Naukri allows at most 3,000 jobs per query (150 pages of 20).\",\n      \"default\": 100,\n      \"prefill\": 3,\n      \"minimum\": 1,\n      \"maximum\": 10000,\n      \"editor\": \"number\"\n    },\n    \"onlyNew\": {\n      \"title\": \"Only New Jobs\",\n      \"type\": \"boolean\",\n      \"description\": \"Emit only jobs that were not emitted by an earlier run with the same state key.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"resetState\": {\n      \"title\": \"Reset Incremental State\",\n      \"type\": \"boolean\",\n      \"description\": \"Clear the saved job IDs before this run.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"stateKey\": {\n      \"title\": \"Incremental State Key\",\n      \"type\": \"string\",\n      \"description\": \"Optional name for the incremental state. Defaults to a hash of the search configuration.\",\n      \"editor\": \"textfield\",\n      \"nullable\": true\n    },\n    \"includeDescription\": {\n      \"title\": \"Include Full Description\",\n      \"type\": \"boolean\",\n      \"description\": \"Include the full job description text. Turn off to keep records smaller.\",\n      \"default\": true,\n      \"prefill\": true\n    },\n    \"includeDescriptionHtml\": {\n      \"title\": \"Include Description HTML\",\n      \"type\": \"boolean\",\n      \"description\": \"Include the raw HTML job description in addition to plain text.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeCompanyReviews\": {\n      \"title\": \"Include Company Reviews\",\n      \"type\": \"boolean\",\n      \"description\": \"Include up to three AmbitionBox review snippets per job. Off by default to keep records small.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"strictJobAge\": {\n      \"title\": \"Strict Job Age\",\n      \"type\": \"boolean\",\n      \"description\": \"Drop promoted jobs older than the selected job age using Naukri's posting date.\",\n      \"default\": true,\n      \"prefill\": true\n    },\n    \"timeBudgetSecs\": {\n      \"title\": \"Time Budget (seconds)\",\n      \"type\": \"integer\",\n      \"description\": \"Stop gracefully after this many seconds. 0 means no time limit.\",\n      \"default\": 0,\n      \"prefill\": 0,\n      \"minimum\": 0,\n      \"maximum\": 7200,\n      \"editor\": \"number\"\n    },\n    \"failOnEmpty\": {\n      \"title\": \"Fail When No Jobs Found\",\n      \"type\": \"boolean\",\n      \"description\": \"Mark the run as failed when no jobs are returned.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"browserFallback\": {\n      \"title\": \"Browser Fallback\",\n      \"type\": \"boolean\",\n      \"description\": \"If the normal connection is blocked, retry through a browser session. Slower and uses more memory; leave off unless needed.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"proxyConfiguration\": {\n      \"title\": \"Proxy Configuration\",\n      \"type\": \"object\",\n      \"description\": \"Optional connection override. By default the actor uses an India-based Apify connection automatically.\",\n      \"editor\": \"proxy\",\n      \"default\": {\n        \"useApifyProxy\": true,\n        \"apifyProxyCountry\": \"IN\"\n      },\n      \"prefill\": {\n        \"useApifyProxy\": true,\n        \"apifyProxyCountry\": \"IN\"\n      }\n    }\n  },\n  \"required\": []\n}",
    "readme": "# Naukri.com Job Listings Extractor with Salary & Skills\r\n\r\nExtract **Naukri.com** job listings as structured data. Search by keyword and Indian city, pull jobs by ID, or monitor a company — then get the full job description, raw and parsed salary, experience bounds, skills, work mode, education requirements, role taxonomy, company ratings and walk-in details. No Naukri login, cookies or API key required.\r\n\r\n## What this actor does\r\n\r\n- **Three ways to find jobs:** keyword and city searches, direct job IDs, or company IDs.\r\n- **Up to 10,000 records per run**, with a 3,000-job ceiling per individual query (Naukri returns 20 jobs per page and allows 150 pages).\r\n- **Full detail per job:** not just the search card — the actor fetches each posting to return the complete description, salary fields, education, role taxonomy, company profile and walk-in information.\r\n- **Filters:** experience in years, salary band, remote or hybrid mode, job age, date or salary sort, internships and walk-in drives.\r\n- **Incremental runs:** `onlyNew` stores emitted job IDs in actor state, so scheduled runs can return only postings you have not seen before.\r\n- **Honest salary data:** every record carries the raw salary string and a `salaryDisclosed` flag. Numeric `salaryMin` and `salaryMax` appear only when Naukri discloses a figure.\r\n- **Empty fields are omitted** — records never contain `null`, blank strings or empty arrays.\r\n\r\n## Output per job\r\n\r\n| Field | Description |\r\n|---|---|\r\n| `id` | Naukri job ID. |\r\n| `title` | Job title as posted. |\r\n| `url` | Naukri job listing URL. |\r\n| `companyName` | Hiring company name. |\r\n| `companyId` | Naukri company ID. |\r\n| `companyLogoUrl` | Company logo image URL. |\r\n| `logoUrl` | Company logo URL (legacy field, same value as `companyLogoUrl`). |\r\n| `companyProfileUrl` | Naukri company profile URL. |\r\n| `companyWebsite` | Company website when Naukri publishes one (sparse). |\r\n| `companyDescription` | Company profile description as plain text. |\r\n| `companyAddress` | Company address. |\r\n| `companyRating` | AmbitionBox rating out of 5. |\r\n| `companyReviewCount` | Number of AmbitionBox reviews behind the rating. |\r\n| `companyReviews` | Up to three review snippets when `includeCompanyReviews` is on. |\r\n| `companyApplyUrl` | Naukri company-apply gateway URL when present. |\r\n| `applyRedirectUrl` | External apply URL when Naukri exposes one; may be ad-wrapped. |\r\n| `applyUrl` | Best available apply link: company gateway, external redirect, or the Naukri listing. |\r\n| `salary` | Raw salary string exactly as displayed, including `Not Disclosed`. |\r\n| `salaryMin` | Parsed minimum salary in INR for `salaryPeriod`; omitted when not disclosed. |\r\n| `salaryMax` | Parsed maximum salary in INR for `salaryPeriod`; omitted when not disclosed. |\r\n| `salaryCurrency` | ISO currency code, normally `INR`. |\r\n| `salaryPeriod` | `year` or `month`; internship stipends are reported per month. |\r\n| `salaryDisclosed` | `false` when Naukri hides the salary. |\r\n| `salaryVariablePct` | Variable pay percentage when Naukri supplies one. |\r\n| `experience` | Raw experience range, e.g. `5-7 Yrs`. |\r\n| `experienceMinYears` | Parsed minimum years. |\r\n| `experienceMaxYears` | Parsed maximum years. |\r\n| `skills` | Skill tags, preferred skills first. |\r\n| `skillsPreferred` | Preferred skill tags. |\r\n| `skillsOther` | Other skill tags. |\r\n| `description` | Full job description as plain text (`includeDescription`). |\r\n| `descriptionHtml` | Raw HTML description (`includeDescriptionHtml`). |\r\n| `locations` | Structured list of job locations. |\r\n| `location` | Job locations joined into one string (legacy field). |\r\n| `workMode` | `office`, `remote` or `hybrid`. |\r\n| `employmentType` | Employment type, e.g. `Full Time, Permanent`. |\r\n| `jobType` | Naukri job type, e.g. `fulltime` or `internship`. |\r\n| `educationUG` | Undergraduate education requirements. |\r\n| `educationPG` | Postgraduate education requirements. |\r\n| `educationPPG` | Post-postgraduate education requirements. |\r\n| `industry` | Industry. |\r\n| `functionalArea` | Functional area. |\r\n| `roleCategory` | Role category. |\r\n| `role` | Job role. |\r\n| `postedAt` | Posting time in ISO 8601 with a `+05:30` offset. |\r\n| `postedDate` | Relative posting label from search, e.g. `2 Days Ago`. |\r\n| `vacancies` | Number of openings; omitted when Naukri reports 0. |\r\n| `applyCount` | Applicant count; omitted when 0. |\r\n| `viewCount` | View count; omitted when 0. |\r\n| `walkIn` | Walk-in interview flag. |\r\n| `walkInDetails` | Venue and contact block when Naukri publishes it. Contains `venueAddress`, `startDate`, `endDate`, `dailyTiming`, `contactName`, `contactPhone`, `mapUrl`, `embedMapUrl`, `saturdayWorking` and `sundayWorking`. |\r\n| `jobTypeFlags` | Badges such as `premium`, `easy_apply` and `walk_in` (legacy field). |\r\n| `scrapedAt` | UTC timestamp when the record was scraped. |\r\n\r\n## Input\r\n\r\n| Field | Type | Default | Description |\r\n|---|---|---|---|\r\n| `searches` | array | one keyword search | Search configurations. Each entry has `keywords[]`, `locations[]`, `experienceYears`, `salaryBucket`, `workMode`, `jobAge`, `sort`, `companyId`, `internship` and `walkIn`. Every keyword is combined with every location. |\r\n| `jobIds` | array | one example ID | Naukri job IDs or job URLs to fetch directly. Processed before searches. |\r\n| `companyIds` | array | `[]` | Naukri company IDs. When searches are also supplied, each company is combined with every search. |\r\n| `maxItems` | integer | `100` | Total records to return, 1–10,000. |\r\n| `onlyNew` | boolean | `false` | Emit only jobs not emitted by an earlier run with the same state key. |\r\n| `resetState` | boolean | `false` | Clear saved incremental state before this run. |\r\n| `stateKey` | string | auto | Optional state name. Defaults to a hash of the search configuration. |\r\n| `includeDescription` | boolean | `true` | Include the full job description text. |\r\n| `includeDescriptionHtml` | boolean | `false` | Include the raw HTML description too. |\r\n| `includeCompanyReviews` | boolean | `false` | Include up to three AmbitionBox review snippets. |\r\n| `strictJobAge` | boolean | `true` | Drop promoted jobs older than the selected job age. |\r\n| `timeBudgetSecs` | integer | `0` | Stop gracefully after this many seconds; `0` means no limit. |\r\n| `failOnEmpty` | boolean | `false` | Mark the run as failed when no jobs are returned. |\r\n| `browserFallback` | boolean | `false` | Retry through a browser session if the normal connection is blocked. Slower and uses more memory. |\r\n| `proxyConfiguration` | object | India Apify proxy | Optional connection override. The actor selects an India-based connection automatically. |\r\n\r\nSalary bands are `0-3`, `3-6`, `6-10`, `10-15`, `15-25` and `25+` lakhs per year. Job-age values are `1`, `3`, `7`, `15` and `30` days. Work modes are `any`, `remote` and `hybrid`; Naukri does not expose an office-only filter.\r\n\r\n### Example: software engineer jobs in Bangalore\r\n\r\n```json\r\n{\r\n  \"searches\": [\r\n    {\r\n      \"keywords\": [\"software engineer\"],\r\n      \"locations\": [\"bangalore\"],\r\n      \"experienceYears\": 3,\r\n      \"jobAge\": \"7\",\r\n      \"sort\": \"date\"\r\n    }\r\n  ],\r\n  \"maxItems\": 100\r\n}\r\n```\r\n\r\n### Example: fetch specific jobs\r\n\r\n```json\r\n{\r\n  \"jobIds\": [\"221026015762\", \"191026012479\"],\r\n  \"includeDescription\": true,\r\n  \"maxItems\": 2\r\n}\r\n```\r\n\r\n### Example: monitor a company for new postings\r\n\r\n```json\r\n{\r\n  \"companyIds\": [\"10111\"],\r\n  \"searches\": [\r\n    {\r\n      \"keywords\": [\"python developer\"],\r\n      \"locations\": [\"hyderabad\", \"pune\"],\r\n      \"sort\": \"date\"\r\n    }\r\n  ],\r\n  \"onlyNew\": true,\r\n  \"stateKey\": \"infosys-python\",\r\n  \"maxItems\": 200\r\n}\r\n```\r\n\r\n### Example: remote internships and walk-in drives\r\n\r\n```json\r\n{\r\n  \"searches\": [\r\n    {\r\n      \"keywords\": [\"machine learning intern\"],\r\n      \"workMode\": \"remote\",\r\n      \"internship\": true\r\n    },\r\n    {\r\n      \"locations\": [\"mumbai\"],\r\n      \"walkIn\": true\r\n    }\r\n  ],\r\n  \"maxItems\": 50\r\n}\r\n```\r\n\r\n## Use cases\r\n\r\n- **Recruitment agencies** — build talent pipelines and track which employers are hiring for a role or city.\r\n- **Job seekers** — schedule a daily monitor that returns only newly posted jobs matching a skill set.\r\n- **Compensation teams** — collect salary bands and disclosure rates for a role across companies and cities.\r\n- **Market researchers** — measure hiring volume by location, industry, role or work mode over time.\r\n- **Sales teams** — detect companies ramping up hiring as a buying signal.\r\n- **Data teams** — build an India job-market dataset with full descriptions, skills and company profiles.\r\n\r\n## FAQ\r\n\r\n**Do I need a Naukri account, cookies or an API key?** No. The actor reads publicly available Naukri job data without a login.\r\n\r\n**Why is `salaryMin` missing for most jobs?** Naukri hides salary on most postings. In a 24-job sample, only 16.7% disclosed a numeric range. Every record still includes the raw `salary` string and `salaryDisclosed` so you can separate disclosed jobs from hidden ones.\r\n\r\n**Why do some records lack `description`?** `description` is on by default. If Naukri does not return a detail page for a posting, the record falls back to the shorter description from the search result rather than dropping the job.\r\n\r\n**How many jobs can one run return?** `maxItems` supports up to 10,000. Each individual query is capped by Naukri at 3,000 jobs, so a single keyword-and-city combination tops out there. Add more keywords, cities or companies to reach higher totals.\r\n\r\n**Does the work-mode filter include office jobs?** Naukri only exposes remote and hybrid filters. Use `any` to return every mode; the output `workMode` tells you which one each job has.\r\n\r\n**Can I filter full-time, part-time or contractual jobs?** No. Naukri does not honour those filters reliably. The supported job-type filters are internships and walk-in drives. The output `jobType` and `employmentType` still describe each posting.\r\n\r\n**Are benefits, localities or recruiter details included?** No. Naukri does not expose benefits, locality lists or recruiter names on these postings, so they are not fabricated or promised.\r\n\r\n**Why are `companyRating` and `companyAddress` missing on some jobs?** These come from the employer's AmbitionBox profile and company page. Smaller or newer employers often do not have them.\r\n\r\n**Why is `applyRedirectUrl` missing on most records?** Naukri only exposes an external apply link for some postings, and those links can be ad-wrapped. `applyUrl` always gives you a usable link: the company gateway or external redirect when present, otherwise the Naukri listing.\r\n\r\n**Can I get walk-in venue and contact details?** Yes, when Naukri publishes them. They are returned in `walkInDetails`; not every walk-in posting includes a venue or phone number.\r\n\r\n**How fresh is the data?** Every run queries Naukri live, so results reflect the listings available at run time.\r\n\r\n**Do I need to set up a proxy?** No. The actor chooses a working connection to Naukri automatically.\r\n\r\n**Is this affiliated with Naukri.com?** No. This is an independent third-party tool and is not affiliated with, endorsed by or sponsored by Naukri.com.\r\n\r\n## Limitations\r\n\r\n- Salary is disclosed on a minority of postings. Numeric salary fields are therefore conditional, not guaranteed.\r\n- Benefits, locality lists and recruiter names are not available from Naukri's public job data.\r\n- External apply links are partial and can be ad-wrapped; `applyUrl` always provides a fallback.\r\n- Walk-in venue and contact details are present only when the employer publishes them.\r\n- The actor covers Naukri's India job market. Gulf listings on other domains are out of scope.\r\n- A single query returns at most 3,000 jobs (150 pages of 20). Split broad searches by city, keyword or company to collect more.\r\n\r\n## Notes on coverage\r\n\r\nNaukri exposes different amounts of detail per posting. The actor returns what the public job record contains and omits fields that are not published; it does not infer salary, benefits, or recruiter details.\r\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "naukri-com-job-listings-extractor-with-salary",
      "title": "Naukri.com Job Listings Extractor with Salary & Skills",
      "description": "Extract Naukri.com job listings by keyword, city, company or job ID. Get full job descriptions, raw and parsed salary, experience bounds, skills, work mode, education, role taxonomy, company ratings and walk-in details.",
      "version": "1.1",
      "buildTag": "latest",
      "input": {
        "title": "Naukri Job Scraper Input",
        "description": "Find Naukri.com jobs by keyword, location, company or job ID and return full job details, salary information, skills and company profiles.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "searches": {
            "title": "Search Queries",
            "type": "array",
            "description": "One or more search configurations. Each entry can hold several keywords and several locations; every keyword is combined with every location. Leave keywords empty to browse a location or company.",
            "editor": "json",
            "default": [],
            "prefill": [
              {
                "keywords": [
                  "software engineer"
                ],
                "locations": [
                  "bangalore"
                ]
              }
            ],
            "items": {
              "type": "object",
              "properties": {
                "keywords": {
                  "title": "Keywords",
                  "type": "array",
                  "description": "Job titles or search terms (e.g. \"software engineer\", \"data scientist\").",
                  "editor": "stringList",
                  "default": []
                },
                "locations": {
                  "title": "Locations",
                  "type": "array",
                  "description": "Indian cities or regions (e.g. \"bangalore\", \"mumbai\", \"delhi ncr\", \"hyderabad\").",
                  "editor": "stringList",
                  "default": []
                },
                "experienceYears": {
                  "title": "Experience (years)",
                  "type": "integer",
                  "description": "Return jobs whose experience range includes this many years (0-30).",
                  "minimum": 0,
                  "maximum": 30,
                  "nullable": true
                },
                "salaryBucket": {
                  "title": "Salary Bucket",
                  "type": "string",
                  "description": "Annual salary band in Indian lakhs. Naukri can include jobs with hidden salary in a band; use salaryDisclosed to separate them.",
                  "editor": "select",
                  "enum": [
                    "0-3",
                    "3-6",
                    "6-10",
                    "10-15",
                    "15-25",
                    "25+"
                  ],
                  "enumTitles": [
                    "0 - 3 Lakhs",
                    "3 - 6 Lakhs",
                    "6 - 10 Lakhs",
                    "10 - 15 Lakhs",
                    "15 - 25 Lakhs",
                    "25+ Lakhs"
                  ],
                  "nullable": true
                },
                "workMode": {
                  "title": "Work Mode",
                  "type": "string",
                  "description": "Remote or hybrid filter. Naukri does not expose an office-only filter; \"any\" returns every mode.",
                  "editor": "select",
                  "enum": [
                    "any",
                    "remote",
                    "hybrid"
                  ],
                  "enumTitles": [
                    "Any",
                    "Remote",
                    "Hybrid"
                  ],
                  "default": "any"
                },
                "jobAge": {
                  "title": "Job Age",
                  "type": "string",
                  "description": "Only jobs posted within the last N days. Promoted jobs can bypass the server filter; strictJobAge removes them.",
                  "editor": "select",
                  "enum": [
                    "1",
                    "3",
                    "7",
                    "15",
                    "30"
                  ],
                  "enumTitles": [
                    "Last 1 day",
                    "Last 3 days",
                    "Last 7 days",
                    "Last 15 days",
                    "Last 30 days"
                  ],
                  "nullable": true
                },
                "sort": {
                  "title": "Sort By",
                  "type": "string",
                  "description": "Result ordering.",
                  "editor": "select",
                  "enum": [
                    "relevance",
                    "date",
                    "salary"
                  ],
                  "enumTitles": [
                    "Relevance",
                    "Date (newest first)",
                    "Salary (highest first)"
                  ],
                  "default": "relevance"
                },
                "companyId": {
                  "title": "Company ID",
                  "type": "string",
                  "description": "Optional Naukri company ID (numeric, e.g. \"10111\"). Free-text company names are not supported by Naukri.",
                  "editor": "textfield",
                  "nullable": true
                },
                "internship": {
                  "title": "Internships Only",
                  "type": "boolean",
                  "description": "Return internships.",
                  "default": false,
                  "prefill": false
                },
                "walkIn": {
                  "title": "Walk-in Jobs Only",
                  "type": "boolean",
                  "description": "Return walk-in interview jobs.",
                  "default": false,
                  "prefill": false
                }
              }
            }
          },
          "jobIds": {
            "title": "Job IDs",
            "type": "array",
            "description": "Fetch these Naukri job IDs directly. Accepts bare IDs or Naukri job URLs. Job IDs are processed before searches.",
            "editor": "stringList",
            "default": [],
            "prefill": [
              "221026015762"
            ]
          },
          "companyIds": {
            "title": "Company IDs",
            "type": "array",
            "description": "Naukri company IDs to search across. When searches are also supplied, each company is combined with every search.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "maxItems": {
            "title": "Max Items",
            "type": "integer",
            "description": "Total records to return across all queries. Naukri allows at most 3,000 jobs per query (150 pages of 20).",
            "default": 100,
            "prefill": 3,
            "minimum": 1,
            "maximum": 10000,
            "editor": "number"
          },
          "onlyNew": {
            "title": "Only New Jobs",
            "type": "boolean",
            "description": "Emit only jobs that were not emitted by an earlier run with the same state key.",
            "default": false,
            "prefill": false
          },
          "resetState": {
            "title": "Reset Incremental State",
            "type": "boolean",
            "description": "Clear the saved job IDs before this run.",
            "default": false,
            "prefill": false
          },
          "stateKey": {
            "title": "Incremental State Key",
            "type": "string",
            "description": "Optional name for the incremental state. Defaults to a hash of the search configuration.",
            "editor": "textfield",
            "nullable": true
          },
          "includeDescription": {
            "title": "Include Full Description",
            "type": "boolean",
            "description": "Include the full job description text. Turn off to keep records smaller.",
            "default": true,
            "prefill": true
          },
          "includeDescriptionHtml": {
            "title": "Include Description HTML",
            "type": "boolean",
            "description": "Include the raw HTML job description in addition to plain text.",
            "default": false,
            "prefill": false
          },
          "includeCompanyReviews": {
            "title": "Include Company Reviews",
            "type": "boolean",
            "description": "Include up to three AmbitionBox review snippets per job. Off by default to keep records small.",
            "default": false,
            "prefill": false
          },
          "strictJobAge": {
            "title": "Strict Job Age",
            "type": "boolean",
            "description": "Drop promoted jobs older than the selected job age using Naukri's posting date.",
            "default": true,
            "prefill": true
          },
          "timeBudgetSecs": {
            "title": "Time Budget (seconds)",
            "type": "integer",
            "description": "Stop gracefully after this many seconds. 0 means no time limit.",
            "default": 0,
            "prefill": 0,
            "minimum": 0,
            "maximum": 7200,
            "editor": "number"
          },
          "failOnEmpty": {
            "title": "Fail When No Jobs Found",
            "type": "boolean",
            "description": "Mark the run as failed when no jobs are returned.",
            "default": false,
            "prefill": false
          },
          "browserFallback": {
            "title": "Browser Fallback",
            "type": "boolean",
            "description": "If the normal connection is blocked, retry through a browser session. Slower and uses more memory; leave off unless needed.",
            "default": false,
            "prefill": false
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Optional connection override. By default the actor uses an India-based Apify connection automatically.",
            "editor": "proxy",
            "default": {
              "useApifyProxy": true,
              "apifyProxyCountry": "IN"
            },
            "prefill": {
              "useApifyProxy": true,
              "apifyProxyCountry": "IN"
            }
          }
        },
        "required": []
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Naukri.com Job Listings Extractor with Salary & Skills Output",
        "description": "Naukri.com job listings with full descriptions, parsed salary and experience, skills, locations, work mode, education, role taxonomy and company profiles.",
        "properties": {
          "jobs": {
            "type": "string",
            "title": "Naukri Jobs",
            "description": "Dataset of scraped Naukri job listings.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "readme": "# Naukri.com Job Listings Extractor with Salary & Skills\r\n\r\nExtract **Naukri.com** job listings as structured data. Search by keyword and Indian city, pull jobs by ID, or monitor a company — then get the full job description, raw and parsed salary, experience bounds, skills, work mode, education requirements, role taxonomy, company ratings and walk-in details. No Naukri login, cookies or API key required.\r\n\r\n## What this actor does\r\n\r\n- **Three ways to find jobs:** keyword and city searches, direct job IDs, or company IDs.\r\n- **Up to 10,000 records per run**, with a 3,000-job ceiling per individual query (Naukri returns 20 jobs per page and allows 150 pages).\r\n- **Full detail per job:** not just the search card — the actor fetches each posting to return the complete description, salary fields, education, role taxonomy, company profile and walk-in information.\r\n- **Filters:** experience in years, salary band, remote or hybrid mode, job age, date or salary sort, internships and walk-in drives.\r\n- **Incremental runs:** `onlyNew` stores emitted job IDs in actor state, so scheduled runs can return only postings you have not seen before.\r\n- **Honest salary data:** every record carries the raw salary string and a `salaryDisclosed` flag. Numeric `salaryMin` and `salaryMax` appear only when Naukri discloses a figure.\r\n- **Empty fields are omitted** — records never contain `null`, blank strings or empty arrays.\r\n\r\n## Output per job\r\n\r\n| Field | Description |\r\n|---|---|\r\n| `id` | Naukri job ID. |\r\n| `title` | Job title as posted. |\r\n| `url` | Naukri job listing URL. |\r\n| `companyName` | Hiring company name. |\r\n| `companyId` | Naukri company ID. |\r\n| `companyLogoUrl` | Company logo image URL. |\r\n| `logoUrl` | Company logo URL (legacy field, same value as `companyLogoUrl`). |\r\n| `companyProfileUrl` | Naukri company profile URL. |\r\n| `companyWebsite` | Company website when Naukri publishes one (sparse). |\r\n| `companyDescription` | Company profile description as plain text. |\r\n| `companyAddress` | Company address. |\r\n| `companyRating` | AmbitionBox rating out of 5. |\r\n| `companyReviewCount` | Number of AmbitionBox reviews behind the rating. |\r\n| `companyReviews` | Up to three review snippets when `includeCompanyReviews` is on. |\r\n| `companyApplyUrl` | Naukri company-apply gateway URL when present. |\r\n| `applyRedirectUrl` | External apply URL when Naukri exposes one; may be ad-wrapped. |\r\n| `applyUrl` | Best available apply link: company gateway, external redirect, or the Naukri listing. |\r\n| `salary` | Raw salary string exactly as displayed, including `Not Disclosed`. |\r\n| `salaryMin` | Parsed minimum salary in INR for `salaryPeriod`; omitted when not disclosed. |\r\n| `salaryMax` | Parsed maximum salary in INR for `salaryPeriod`; omitted when not disclosed. |\r\n| `salaryCurrency` | ISO currency code, normally `INR`. |\r\n| `salaryPeriod` | `year` or `month`; internship stipends are reported per month. |\r\n| `salaryDisclosed` | `false` when Naukri hides the salary. |\r\n| `salaryVariablePct` | Variable pay percentage when Naukri supplies one. |\r\n| `experience` | Raw experience range, e.g. `5-7 Yrs`. |\r\n| `experienceMinYears` | Parsed minimum years. |\r\n| `experienceMaxYears` | Parsed maximum years. |\r\n| `skills` | Skill tags, preferred skills first. |\r\n| `skillsPreferred` | Preferred skill tags. |\r\n| `skillsOther` | Other skill tags. |\r\n| `description` | Full job description as plain text (`includeDescription`). |\r\n| `descriptionHtml` | Raw HTML description (`includeDescriptionHtml`). |\r\n| `locations` | Structured list of job locations. |\r\n| `location` | Job locations joined into one string (legacy field). |\r\n| `workMode` | `office`, `remote` or `hybrid`. |\r\n| `employmentType` | Employment type, e.g. `Full Time, Permanent`. |\r\n| `jobType` | Naukri job type, e.g. `fulltime` or `internship`. |\r\n| `educationUG` | Undergraduate education requirements. |\r\n| `educationPG` | Postgraduate education requirements. |\r\n| `educationPPG` | Post-postgraduate education requirements. |\r\n| `industry` | Industry. |\r\n| `functionalArea` | Functional area. |\r\n| `roleCategory` | Role category. |\r\n| `role` | Job role. |\r\n| `postedAt` | Posting time in ISO 8601 with a `+05:30` offset. |\r\n| `postedDate` | Relative posting label from search, e.g. `2 Days Ago`. |\r\n| `vacancies` | Number of openings; omitted when Naukri reports 0. |\r\n| `applyCount` | Applicant count; omitted when 0. |\r\n| `viewCount` | View count; omitted when 0. |\r\n| `walkIn` | Walk-in interview flag. |\r\n| `walkInDetails` | Venue and contact block when Naukri publishes it. Contains `venueAddress`, `startDate`, `endDate`, `dailyTiming`, `contactName`, `contactPhone`, `mapUrl`, `embedMapUrl`, `saturdayWorking` and `sundayWorking`. |\r\n| `jobTypeFlags` | Badges such as `premium`, `easy_apply` and `walk_in` (legacy field). |\r\n| `scrapedAt` | UTC timestamp when the record was scraped. |\r\n\r\n## Input\r\n\r\n| Field | Type | Default | Description |\r\n|---|---|---|---|\r\n| `searches` | array | one keyword search | Search configurations. Each entry has `keywords[]`, `locations[]`, `experienceYears`, `salaryBucket`, `workMode`, `jobAge`, `sort`, `companyId`, `internship` and `walkIn`. Every keyword is combined with every location. |\r\n| `jobIds` | array | one example ID | Naukri job IDs or job URLs to fetch directly. Processed before searches. |\r\n| `companyIds` | array | `[]` | Naukri company IDs. When searches are also supplied, each company is combined with every search. |\r\n| `maxItems` | integer | `100` | Total records to return, 1–10,000. |\r\n| `onlyNew` | boolean | `false` | Emit only jobs not emitted by an earlier run with the same state key. |\r\n| `resetState` | boolean | `false` | Clear saved incremental state before this run. |\r\n| `stateKey` | string | auto | Optional state name. Defaults to a hash of the search configuration. |\r\n| `includeDescription` | boolean | `true` | Include the full job description text. |\r\n| `includeDescriptionHtml` | boolean | `false` | Include the raw HTML description too. |\r\n| `includeCompanyReviews` | boolean | `false` | Include up to three AmbitionBox review snippets. |\r\n| `strictJobAge` | boolean | `true` | Drop promoted jobs older than the selected job age. |\r\n| `timeBudgetSecs` | integer | `0` | Stop gracefully after this many seconds; `0` means no limit. |\r\n| `failOnEmpty` | boolean | `false` | Mark the run as failed when no jobs are returned. |\r\n| `browserFallback` | boolean | `false` | Retry through a browser session if the normal connection is blocked. Slower and uses more memory. |\r\n| `proxyConfiguration` | object | India Apify proxy | Optional connection override. The actor selects an India-based connection automatically. |\r\n\r\nSalary bands are `0-3`, `3-6`, `6-10`, `10-15`, `15-25` and `25+` lakhs per year. Job-age values are `1`, `3`, `7`, `15` and `30` days. Work modes are `any`, `remote` and `hybrid`; Naukri does not expose an office-only filter.\r\n\r\n### Example: software engineer jobs in Bangalore\r\n\r\n```json\r\n{\r\n  \"searches\": [\r\n    {\r\n      \"keywords\": [\"software engineer\"],\r\n      \"locations\": [\"bangalore\"],\r\n      \"experienceYears\": 3,\r\n      \"jobAge\": \"7\",\r\n      \"sort\": \"date\"\r\n    }\r\n  ],\r\n  \"maxItems\": 100\r\n}\r\n```\r\n\r\n### Example: fetch specific jobs\r\n\r\n```json\r\n{\r\n  \"jobIds\": [\"221026015762\", \"191026012479\"],\r\n  \"includeDescription\": true,\r\n  \"maxItems\": 2\r\n}\r\n```\r\n\r\n### Example: monitor a company for new postings\r\n\r\n```json\r\n{\r\n  \"companyIds\": [\"10111\"],\r\n  \"searches\": [\r\n    {\r\n      \"keywords\": [\"python developer\"],\r\n      \"locations\": [\"hyderabad\", \"pune\"],\r\n      \"sort\": \"date\"\r\n    }\r\n  ],\r\n  \"onlyNew\": true,\r\n  \"stateKey\": \"infosys-python\",\r\n  \"maxItems\": 200\r\n}\r\n```\r\n\r\n### Example: remote internships and walk-in drives\r\n\r\n```json\r\n{\r\n  \"searches\": [\r\n    {\r\n      \"keywords\": [\"machine learning intern\"],\r\n      \"workMode\": \"remote\",\r\n      \"internship\": true\r\n    },\r\n    {\r\n      \"locations\": [\"mumbai\"],\r\n      \"walkIn\": true\r\n    }\r\n  ],\r\n  \"maxItems\": 50\r\n}\r\n```\r\n\r\n## Use cases\r\n\r\n- **Recruitment agencies** — build talent pipelines and track which employers are hiring for a role or city.\r\n- **Job seekers** — schedule a daily monitor that returns only newly posted jobs matching a skill set.\r\n- **Compensation teams** — collect salary bands and disclosure rates for a role across companies and cities.\r\n- **Market researchers** — measure hiring volume by location, industry, role or work mode over time.\r\n- **Sales teams** — detect companies ramping up hiring as a buying signal.\r\n- **Data teams** — build an India job-market dataset with full descriptions, skills and company profiles.\r\n\r\n## FAQ\r\n\r\n**Do I need a Naukri account, cookies or an API key?** No. The actor reads publicly available Naukri job data without a login.\r\n\r\n**Why is `salaryMin` missing for most jobs?** Naukri hides salary on most postings. In a 24-job sample, only 16.7% disclosed a numeric range. Every record still includes the raw `salary` string and `salaryDisclosed` so you can separate disclosed jobs from hidden ones.\r\n\r\n**Why do some records lack `description`?** `description` is on by default. If Naukri does not return a detail page for a posting, the record falls back to the shorter description from the search result rather than dropping the job.\r\n\r\n**How many jobs can one run return?** `maxItems` supports up to 10,000. Each individual query is capped by Naukri at 3,000 jobs, so a single keyword-and-city combination tops out there. Add more keywords, cities or companies to reach higher totals.\r\n\r\n**Does the work-mode filter include office jobs?** Naukri only exposes remote and hybrid filters. Use `any` to return every mode; the output `workMode` tells you which one each job has.\r\n\r\n**Can I filter full-time, part-time or contractual jobs?** No. Naukri does not honour those filters reliably. The supported job-type filters are internships and walk-in drives. The output `jobType` and `employmentType` still describe each posting.\r\n\r\n**Are benefits, localities or recruiter details included?** No. Naukri does not expose benefits, locality lists or recruiter names on these postings, so they are not fabricated or promised.\r\n\r\n**Why are `companyRating` and `companyAddress` missing on some jobs?** These come from the employer's AmbitionBox profile and company page. Smaller or newer employers often do not have them.\r\n\r\n**Why is `applyRedirectUrl` missing on most records?** Naukri only exposes an external apply link for some postings, and those links can be ad-wrapped. `applyUrl` always gives you a usable link: the company gateway or external redirect when present, otherwise the Naukri listing.\r\n\r\n**Can I get walk-in venue and contact details?** Yes, when Naukri publishes them. They are returned in `walkInDetails`; not every walk-in posting includes a venue or phone number.\r\n\r\n**How fresh is the data?** Every run queries Naukri live, so results reflect the listings available at run time.\r\n\r\n**Do I need to set up a proxy?** No. The actor chooses a working connection to Naukri automatically.\r\n\r\n**Is this affiliated with Naukri.com?** No. This is an independent third-party tool and is not affiliated with, endorsed by or sponsored by Naukri.com.\r\n\r\n## Limitations\r\n\r\n- Salary is disclosed on a minority of postings. Numeric salary fields are therefore conditional, not guaranteed.\r\n- Benefits, locality lists and recruiter names are not available from Naukri's public job data.\r\n- External apply links are partial and can be ad-wrapped; `applyUrl` always provides a fallback.\r\n- Walk-in venue and contact details are present only when the employer publishes them.\r\n- The actor covers Naukri's India job market. Gulf listings on other domains are out of scope.\r\n- A single query returns at most 3,000 jobs (150 pages of 20). Split broad searches by city, keyword or company to collect more.\r\n\r\n## Notes on coverage\r\n\r\nNaukri exposes different amounts of detail per posting. The actor returns what the public job record contains and omits fields that are not published; it does not infer salary, benefits, or recruiter details.\r\n",
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "title": "Naukri Jobs",
          "fields": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Naukri job ID"
              },
              "title": {
                "type": "string",
                "description": "Job title"
              },
              "url": {
                "type": "string",
                "description": "Naukri job listing URL"
              },
              "companyName": {
                "type": "string",
                "description": "Hiring company name"
              },
              "companyId": {
                "type": "string",
                "nullable": true,
                "description": "Naukri company ID"
              },
              "companyLogoUrl": {
                "type": "string",
                "nullable": true,
                "description": "Company logo URL"
              },
              "logoUrl": {
                "type": "string",
                "nullable": true,
                "description": "Company logo URL (legacy field, same as companyLogoUrl)"
              },
              "companyProfileUrl": {
                "type": "string",
                "nullable": true,
                "description": "Naukri company profile URL"
              },
              "companyWebsite": {
                "type": "string",
                "nullable": true,
                "description": "Company website when Naukri publishes one (sparse)"
              },
              "companyDescription": {
                "type": "string",
                "nullable": true,
                "description": "Company profile description as plain text"
              },
              "companyAddress": {
                "type": "string",
                "nullable": true,
                "description": "Company address"
              },
              "companyRating": {
                "type": "number",
                "nullable": true,
                "description": "AmbitionBox aggregate rating out of 5"
              },
              "companyReviewCount": {
                "type": "integer",
                "nullable": true,
                "description": "Number of AmbitionBox reviews"
              },
              "companyReviews": {
                "type": "array",
                "nullable": true,
                "description": "Up to three AmbitionBox review snippets when includeCompanyReviews is on",
                "items": {
                  "type": "object",
                  "properties": {
                    "title": {
                      "type": "string",
                      "nullable": true
                    },
                    "likes": {
                      "type": "string",
                      "nullable": true
                    },
                    "dislikes": {
                      "type": "string",
                      "nullable": true
                    },
                    "rating": {
                      "type": "number",
                      "nullable": true
                    },
                    "date": {
                      "type": "string",
                      "nullable": true
                    },
                    "author": {
                      "type": "string",
                      "nullable": true
                    },
                    "url": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              },
              "companyApplyUrl": {
                "type": "string",
                "nullable": true,
                "description": "Naukri company-apply gateway URL when present"
              },
              "applyRedirectUrl": {
                "type": "string",
                "nullable": true,
                "description": "External apply URL when Naukri exposes one; may be ad-wrapped"
              },
              "applyUrl": {
                "type": "string",
                "nullable": true,
                "description": "Best available apply link: company gateway, external redirect, or Naukri listing"
              },
              "salary": {
                "type": "string",
                "description": "Raw salary string as displayed, including Not Disclosed"
              },
              "salaryMin": {
                "type": "number",
                "nullable": true,
                "description": "Parsed minimum salary in INR for salaryPeriod; omitted when not disclosed"
              },
              "salaryMax": {
                "type": "number",
                "nullable": true,
                "description": "Parsed maximum salary in INR for salaryPeriod; omitted when not disclosed"
              },
              "salaryCurrency": {
                "type": "string",
                "description": "ISO currency code, normally INR"
              },
              "salaryPeriod": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "year",
                  "month"
                ],
                "description": "Salary period; month for internship stipends"
              },
              "salaryDisclosed": {
                "type": "boolean",
                "description": "False when Naukri hides the salary"
              },
              "salaryVariablePct": {
                "type": "number",
                "nullable": true,
                "description": "Variable pay percentage when supplied by Naukri"
              },
              "experience": {
                "type": "string",
                "nullable": true,
                "description": "Raw experience range, e.g. 5-7 Yrs"
              },
              "experienceMinYears": {
                "type": "integer",
                "nullable": true,
                "description": "Parsed minimum years"
              },
              "experienceMaxYears": {
                "type": "integer",
                "nullable": true,
                "description": "Parsed maximum years"
              },
              "skills": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Skill tags, preferred skills first"
              },
              "skillsPreferred": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Preferred skill tags"
              },
              "skillsOther": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Other skill tags"
              },
              "description": {
                "type": "string",
                "nullable": true,
                "description": "Full job description as plain text (includeDescription)"
              },
              "descriptionHtml": {
                "type": "string",
                "nullable": true,
                "description": "Raw HTML description (includeDescriptionHtml)"
              },
              "locations": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Structured job locations"
              },
              "location": {
                "type": "string",
                "nullable": true,
                "description": "Job locations joined as one string (legacy field)"
              },
              "workMode": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "office",
                  "remote",
                  "hybrid"
                ],
                "description": "Work mode derived from Naukri's wfhType"
              },
              "employmentType": {
                "type": "string",
                "nullable": true,
                "description": "Employment type, e.g. Full Time, Permanent"
              },
              "jobType": {
                "type": "string",
                "nullable": true,
                "description": "Naukri job type, e.g. fulltime or internship"
              },
              "educationUG": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Undergraduate education requirements"
              },
              "educationPG": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Postgraduate education requirements"
              },
              "educationPPG": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Post-postgraduate education requirements"
              },
              "industry": {
                "type": "string",
                "nullable": true,
                "description": "Industry"
              },
              "functionalArea": {
                "type": "string",
                "nullable": true,
                "description": "Functional area"
              },
              "roleCategory": {
                "type": "string",
                "nullable": true,
                "description": "Role category"
              },
              "role": {
                "type": "string",
                "nullable": true,
                "description": "Job role"
              },
              "postedAt": {
                "type": "string",
                "nullable": true,
                "description": "Posting time in ISO 8601 with +05:30 offset"
              },
              "postedDate": {
                "type": "string",
                "nullable": true,
                "description": "Relative posting label from search, e.g. 2 Days Ago"
              },
              "vacancies": {
                "type": "integer",
                "nullable": true,
                "description": "Openings; omitted when Naukri reports 0"
              },
              "applyCount": {
                "type": "integer",
                "nullable": true,
                "description": "Applicant count; omitted when 0"
              },
              "viewCount": {
                "type": "integer",
                "nullable": true,
                "description": "View count; omitted when 0"
              },
              "walkIn": {
                "type": "boolean",
                "description": "Walk-in interview flag"
              },
              "walkInDetails": {
                "type": "object",
                "nullable": true,
                "description": "Walk-in venue, dates, timing and contact when Naukri publishes them",
                "properties": {
                  "venueAddress": {
                    "type": "string",
                    "nullable": true
                  },
                  "startDate": {
                    "type": "string",
                    "nullable": true
                  },
                  "endDate": {
                    "type": "string",
                    "nullable": true
                  },
                  "dailyTiming": {
                    "type": "string",
                    "nullable": true
                  },
                  "contactName": {
                    "type": "string",
                    "nullable": true
                  },
                  "contactPhone": {
                    "type": "string",
                    "nullable": true
                  },
                  "mapUrl": {
                    "type": "string",
                    "nullable": true
                  },
                  "embedMapUrl": {
                    "type": "string",
                    "nullable": true
                  },
                  "saturdayWorking": {
                    "type": "boolean",
                    "nullable": true
                  },
                  "sundayWorking": {
                    "type": "boolean",
                    "nullable": true
                  }
                }
              },
              "jobTypeFlags": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Badges such as premium, easy_apply and walk_in (legacy field)"
              },
              "scrapedAt": {
                "type": "string",
                "description": "UTC timestamp when the record was scraped"
              }
            }
          },
          "views": {
            "overview": {
              "title": "Overview",
              "transformation": {
                "fields": [
                  "title",
                  "companyName",
                  "location",
                  "experience",
                  "salary",
                  "workMode",
                  "postedDate",
                  "url"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "title": {
                    "label": "Title",
                    "format": "text"
                  },
                  "companyName": {
                    "label": "Company",
                    "format": "text"
                  },
                  "location": {
                    "label": "Location",
                    "format": "text"
                  },
                  "experience": {
                    "label": "Experience",
                    "format": "text"
                  },
                  "salary": {
                    "label": "Salary",
                    "format": "text"
                  },
                  "workMode": {
                    "label": "Work Mode",
                    "format": "text"
                  },
                  "postedDate": {
                    "label": "Posted",
                    "format": "text"
                  },
                  "url": {
                    "label": "Listing",
                    "format": "link"
                  }
                }
              }
            },
            "detailed": {
              "title": "Detailed",
              "transformation": {
                "fields": [
                  "title",
                  "companyName",
                  "companyRating",
                  "companyReviewCount",
                  "location",
                  "experience",
                  "salary",
                  "salaryDisclosed",
                  "workMode",
                  "employmentType",
                  "skills",
                  "industry",
                  "role",
                  "postedDate",
                  "description",
                  "url"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "title": {
                    "label": "Title",
                    "format": "text"
                  },
                  "companyName": {
                    "label": "Company",
                    "format": "text"
                  },
                  "companyRating": {
                    "label": "Rating",
                    "format": "number"
                  },
                  "companyReviewCount": {
                    "label": "Reviews",
                    "format": "number"
                  },
                  "location": {
                    "label": "Location",
                    "format": "text"
                  },
                  "experience": {
                    "label": "Experience",
                    "format": "text"
                  },
                  "salary": {
                    "label": "Salary",
                    "format": "text"
                  },
                  "salaryDisclosed": {
                    "label": "Salary Disclosed",
                    "format": "text"
                  },
                  "workMode": {
                    "label": "Work Mode",
                    "format": "text"
                  },
                  "employmentType": {
                    "label": "Employment Type",
                    "format": "text"
                  },
                  "skills": {
                    "label": "Skills",
                    "format": "array"
                  },
                  "industry": {
                    "label": "Industry",
                    "format": "text"
                  },
                  "role": {
                    "label": "Role",
                    "format": "text"
                  },
                  "postedDate": {
                    "label": "Posted",
                    "format": "text"
                  },
                  "description": {
                    "label": "Description",
                    "format": "text"
                  },
                  "url": {
                    "label": "Listing",
                    "format": "link"
                  }
                }
              }
            }
          }
        }
      }
    },
    "buildNumber": "1.1.1",
    "imageDigest": "a9528de9e7b029a60686ff81bf0876d0ad1c7f8ed35e640b0d181a05c3546670",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.1"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.013915555555555556
    }
  }
}