{
  "data": {
    "id": "jVhcKYfKlFmoj7cg0",
    "actId": "egBcBsVnU7LdO9mTp",
    "userId": "NL4ThgItAwaoBlffQ",
    "startedAt": "2026-10-25T02:45:20.344Z",
    "finishedAt": "2026-10-25T02:45:23.683Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 3281,
      "runTimeSecs": 3.281,
      "computeUnits": 0.0036455555555555555,
      "imageSizeBytes": 318587392
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "zifX0mkAFMHe8CatY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Jobicy Remote Jobs Scraper Input\",\n  \"description\": \"Choose the live Jobicy 7-day feed, specific job URLs, or listing-status checks.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"Search the live Jobicy feed, fetch specific job URLs/IDs, or check stored job IDs. Leave blank for search.\",\n      \"editor\": \"select\",\n      \"enumTitles\": [\n        \"Search the live Jobicy feed\",\n        \"Fetch specific job URLs or IDs\",\n        \"Check stored job IDs\"\n      ],\n      \"default\": \"search\",\n      \"prefill\": \"search\",\n      \"enumSuggestedValues\": [\n        \"search\",\n        \"byUrls\",\n        \"status\"\n      ]\n    },\n    \"keyword\": {\n      \"title\": \"Search Keyword\",\n      \"type\": \"string\",\n      \"description\": \"Full-text search across Jobicy job content (3-50 characters). Leave blank to browse. Examples: python, marketing, product designer.\",\n      \"editor\": \"textfield\",\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"geo\": {\n      \"title\": \"Location\",\n      \"type\": \"string\",\n      \"description\": \"Keep jobs open to this location or region. Jobicy treats worldwide roles as eligible for every location. Legacy display names such as United States or worldwide are mapped in code. Jobicy lists Malaysia in its taxonomy but its jobs API rejects that slug, so Malaysia is not offered.\",\n      \"editor\": \"select\",\n      \"default\": \"\",\n      \"enumSuggestedValues\": [\n        \"\",\n        \"anywhere\",\n        \"apac\",\n        \"emea\",\n        \"latam\",\n        \"argentina\",\n        \"australia\",\n        \"austria\",\n        \"belgium\",\n        \"brazil\",\n        \"bulgaria\",\n        \"canada\",\n        \"china\",\n        \"costa-rica\",\n        \"croatia\",\n        \"cyprus\",\n        \"czechia\",\n        \"denmark\",\n        \"estonia\",\n        \"europe\",\n        \"finland\",\n        \"france\",\n        \"germany\",\n        \"greece\",\n        \"hong-kong\",\n        \"hungary\",\n        \"ireland\",\n        \"israel\",\n        \"italy\",\n        \"japan\",\n        \"latvia\",\n        \"lithuania\",\n        \"mexico\",\n        \"netherlands\",\n        \"new-zealand\",\n        \"norway\",\n        \"philippines\",\n        \"poland\",\n        \"portugal\",\n        \"romania\",\n        \"serbia\",\n        \"singapore\",\n        \"slovakia\",\n        \"slovenia\",\n        \"south-korea\",\n        \"spain\",\n        \"sweden\",\n        \"switzerland\",\n        \"thailand\",\n        \"turkiye\",\n        \"united-arab-emirates\",\n        \"uk\",\n        \"ukraine\",\n        \"usa\",\n        \"vietnam\"\n      ],\n      \"enumTitles\": [\n        \"Any location\",\n        \"Anywhere\",\n        \"APAC\",\n        \"EMEA\",\n        \"LATAM\",\n        \"Argentina\",\n        \"Australia\",\n        \"Austria\",\n        \"Belgium\",\n        \"Brazil\",\n        \"Bulgaria\",\n        \"Canada\",\n        \"China\",\n        \"Costa Rica\",\n        \"Croatia\",\n        \"Cyprus\",\n        \"Czechia\",\n        \"Denmark\",\n        \"Estonia\",\n        \"Europe\",\n        \"Finland\",\n        \"France\",\n        \"Germany\",\n        \"Greece\",\n        \"Hong Kong\",\n        \"Hungary\",\n        \"Ireland\",\n        \"Israel\",\n        \"Italy\",\n        \"Japan\",\n        \"Latvia\",\n        \"Lithuania\",\n        \"Mexico\",\n        \"Netherlands\",\n        \"New Zealand\",\n        \"Norway\",\n        \"Philippines\",\n        \"Poland\",\n        \"Portugal\",\n        \"Romania\",\n        \"Serbia\",\n        \"Singapore\",\n        \"Slovakia\",\n        \"Slovenia\",\n        \"South Korea\",\n        \"Spain\",\n        \"Sweden\",\n        \"Switzerland\",\n        \"Thailand\",\n        \"Türkiye\",\n        \"United Arab Emirates\",\n        \"UK\",\n        \"Ukraine\",\n        \"USA\",\n        \"Vietnam\"\n      ]\n    },\n    \"industry\": {\n      \"title\": \"Industry\",\n      \"type\": \"string\",\n      \"description\": \"Keep jobs in one Jobicy category. Leave blank for all categories.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"admin-support\",\n        \"business\",\n        \"copywriting\",\n        \"design-multimedia\",\n        \"supporting\",\n        \"cybersecurity\",\n        \"data-science\",\n        \"admin\",\n        \"education\",\n        \"accounting-finance\",\n        \"healthcare\",\n        \"hr\",\n        \"legal\",\n        \"marketing\",\n        \"management\",\n        \"project-management\",\n        \"qa-testing\",\n        \"seller\",\n        \"seo\",\n        \"engineering\",\n        \"technical-support\",\n        \"web-app-design\"\n      ],\n      \"enumTitles\": [\n        \"Any industry\",\n        \"Admin & Virtual Assistance\",\n        \"Business Development\",\n        \"Content & Editorial\",\n        \"Creative & Design\",\n        \"Customer Support & Success\",\n        \"Cybersecurity\",\n        \"Data Science & Analytics\",\n        \"DevOps & Infrastructure\",\n        \"Education & E-learning\",\n        \"Finance & Accounting\",\n        \"Healthcare & Medical\",\n        \"HR & Recruiting\",\n        \"Legal & Compliance\",\n        \"Marketing & Sales\",\n        \"Product & Operations\",\n        \"Project & Program Management\",\n        \"QA & Testing\",\n        \"Sales\",\n        \"SEO\",\n        \"Software Engineering\",\n        \"Technical Support\",\n        \"Web, UI & UX Design\"\n      ],\n      \"default\": \"\"\n    },\n    \"jobType\": {\n      \"title\": \"Job Type\",\n      \"type\": \"string\",\n      \"description\": \"Keep one employment type. Leave blank for all types.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"Full-Time\",\n        \"Part-Time\",\n        \"Contract\",\n        \"Internship\"\n      ],\n      \"enumTitles\": [\n        \"Any type\",\n        \"Full-Time\",\n        \"Part-Time\",\n        \"Contract\",\n        \"Internship\"\n      ],\n      \"default\": \"\"\n    },\n    \"jobLevel\": {\n      \"title\": \"Seniority Level\",\n      \"type\": \"string\",\n      \"description\": \"Keep one seniority level. Leave blank for all levels. Legacy Any is accepted and keeps listings Jobicy labels Any.\",\n      \"editor\": \"select\",\n      \"enumTitles\": [\n        \"Any level\",\n        \"Entry-Level\",\n        \"Junior\",\n        \"Midweight\",\n        \"Senior\",\n        \"Director\",\n        \"Internship\"\n      ],\n      \"default\": \"\",\n      \"enumSuggestedValues\": [\n        \"\",\n        \"Entry-Level\",\n        \"Junior\",\n        \"Midweight\",\n        \"Senior\",\n        \"Director\",\n        \"Internship\"\n      ]\n    },\n    \"postedWithinDays\": {\n      \"title\": \"Posted Within (Days)\",\n      \"type\": \"integer\",\n      \"description\": \"Keep jobs published in the last N days. 0 means no date limit. Jobicy exposes the last 7 days.\",\n      \"editor\": \"number\",\n      \"minimum\": 0,\n      \"maximum\": 7,\n      \"default\": 0\n    },\n    \"salaryDisclosedOnly\": {\n      \"title\": \"Only Jobs With Published Salary\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep only listings where Jobicy publishes a salary range.\",\n      \"default\": false\n    },\n    \"minAnnualSalaryUsd\": {\n      \"title\": \"Minimum Annual Salary (USD)\",\n      \"type\": \"integer\",\n      \"description\": \"Keep USD listings whose annualised maximum salary meets this figure. Hourly pay is annualised at 2,080 hours; monthly pay at 12 months. 0 disables this filter.\",\n      \"editor\": \"number\",\n      \"minimum\": 0,\n      \"maximum\": 10000000,\n      \"default\": 0\n    },\n    \"excludeKeywords\": {\n      \"title\": \"Exclude Keywords\",\n      \"type\": \"array\",\n      \"description\": \"Drop jobs whose title or company contains any of these terms (case-insensitive).\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": []\n    },\n    \"onlyActive\": {\n      \"title\": \"Only Active Listings\",\n      \"type\": \"boolean\",\n      \"description\": \"Check each listing's current status with Jobicy and keep only active jobs.\",\n      \"default\": false\n    },\n    \"includeDetails\": {\n      \"title\": \"Include Detail-Page Fields\",\n      \"type\": \"boolean\",\n      \"description\": \"Fetch each job page for its exact expiry date, company website and applicant countries. Adds requests; unavailable pages are skipped.\",\n      \"default\": false\n    },\n    \"jobUrls\": {\n      \"title\": \"Job URLs or IDs\",\n      \"type\": \"array\",\n      \"description\": \"Jobicy job URLs or numeric job IDs. Used only with mode byUrls or status.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": []\n    },\n    \"maxItems\": {\n      \"title\": \"Max Items\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum job listings to return (1-5,000). Jobicy's live window usually contains about 1,000-1,500 jobs.\",\n      \"editor\": \"number\",\n      \"minimum\": 1,\n      \"maximum\": 5000,\n      \"default\": 50,\n      \"prefill\": 3\n    }\n  }\n}",
    "readme": "# Jobicy Remote Jobs Scraper — Full 7-Day Feed & Filters\n\nJobicy publishes a rolling window of remote roles, and this actor reads the whole window rather than the first page. Search by keyword, location, industry, employment type, seniority, publication date or pay, and export complete job descriptions with structured salary, company and eligibility data. No login, API key or proxy is needed.\n\n## What this actor does\n\n- Reads the complete current Jobicy feed — every listing in the rolling 7-day window, not a fixed sample.\n- Filters by keyword, 54 supported locations, 22 industries, job type, seniority, publication date and salary.\n- Returns the full plain-text description, excerpt, industries, job types, seniority, location, country eligibility and company logo.\n- Keeps structured salary values and adds annualised figures, so hourly, monthly and yearly ranges are easier to compare.\n- Optionally fetches each job page for the exact expiry date, company website and applicant countries, and can check whether listings are still active.\n- Omits empty fields rather than returning placeholders or invented data.\n\n## Output per job\n\n- `id` — Jobicy's numeric job ID\n- `jobSlug` — Jobicy listing slug\n- `title` — job title\n- `company` — hiring company\n- `companyLogo` — company logo URL\n- `companyUrl` — company website (with `includeDetails`)\n- `jobUrl` — canonical Jobicy listing URL\n- `category` — industries joined with `; ` (legacy field)\n- `industries[]` — industry labels\n- `jobType` — employment types joined with `; ` (legacy field)\n- `jobTypes[]` — employment type labels\n- `jobLevel` — Jobicy's seniority value\n- `location` — the job's remote eligibility text\n- `countries[]` — countries parsed from the eligibility text\n- `isWorldwide` — true when the role is open anywhere\n- `excerpt` — short listing summary\n- `description` — full plain-text job description\n- `salaryMin`, `salaryMax` — published salary bounds\n- `salaryCurrency`, `salaryPeriod` — pay currency and period\n- `annualSalaryMin`, `annualSalaryMax` — annualised pay, when a period is published\n- `publishedAt` — publication timestamp\n- `ageDays` — days since publication\n- `expiresAt` — listing expiry date (with `includeDetails`)\n- `applicantCountries[]` — eligible applicant countries (with `includeDetails`)\n- `listingStatus` — `active` when checked (with `onlyActive`)\n- `statusCheckedAt` — when the status was checked\n- `tags[]` — the listing's industries\n- `recordType` — `job`\n- `source` — `jobicy`\n- `scrapedAt` — when the record was collected\n\n## Output per status check\n\nMode `status` returns one record per requested job ID:\n\n- `id` — Jobicy job ID\n- `listingStatus` — `active`, `closed` or `unknown`\n- `statusCheckedAt` — when Jobicy checked the listing\n- `recordType` — `jobStatus`\n- `source` — `jobicy`\n- `scrapedAt` — when the record was collected\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `search` | `search` the live feed, fetch `byUrls`, or check `status` |\n| `keyword` | string | – | Full-text Jobicy search, 3-50 characters |\n| `geo` | string | – | Location or region slug; worldwide roles match every location. Legacy names such as `United States` are mapped; Jobicy lists Malaysia but its jobs API rejects that filter, so Malaysia is not offered. |\n| `industry` | string | – | One Jobicy category |\n| `jobType` | string | – | `Full-Time`, `Part-Time`, `Contract` or `Internship` |\n| `jobLevel` | string | – | `Entry-Level`, `Junior`, `Midweight`, `Senior`, `Director` or `Internship`; legacy `Any` keeps listings labeled Any |\n| `postedWithinDays` | integer | `0` | Keep jobs published in the last N days; 0 = no date limit |\n| `salaryDisclosedOnly` | boolean | `false` | Keep only jobs with a published salary |\n| `minAnnualSalaryUsd` | integer | `0` | Minimum annualised USD salary; other currencies are excluded |\n| `excludeKeywords` | array | `[]` | Drop jobs whose title or company contains these terms |\n| `onlyActive` | boolean | `false` | Keep only listings Jobicy reports as active |\n| `includeDetails` | boolean | `false` | Add expiry, company website and applicant countries |\n| `jobUrls` | array | `[]` | Jobicy URLs or numeric IDs (mode `byUrls` / `status`) |\n| `maxItems` | integer | `50` | Maximum job listings to return (1-5,000) |\n\nMode-scoped fields are read only in their intended mode. The daily prefill uses `search` with `maxItems` 3.\n\n### Example: all current jobs\n\n```json\n{\n  \"mode\": \"search\",\n  \"maxItems\": 100\n}\n```\n\n### Example: senior Python roles open to applicants in the USA\n\n```json\n{\n  \"mode\": \"search\",\n  \"keyword\": \"python\",\n  \"geo\": \"usa\",\n  \"jobLevel\": \"Senior\",\n  \"jobType\": \"Full-Time\",\n  \"maxItems\": 50\n}\n```\n\n### Example: paid roles with detail data\n\n```json\n{\n  \"mode\": \"search\",\n  \"industry\": \"engineering\",\n  \"salaryDisclosedOnly\": true,\n  \"minAnnualSalaryUsd\": 120000,\n  \"includeDetails\": true,\n  \"maxItems\": 30\n}\n```\n\n### Example: fetch specific listings and check stored IDs\n\n```json\n{\n  \"mode\": \"byUrls\",\n  \"jobUrls\": [\n    \"https://jobicy.com/jobs/156858-senior-software-engineer-fundraising-remote\",\n    \"156864\"\n  ],\n  \"maxItems\": 10\n}\n```\n\n```json\n{\n  \"mode\": \"status\",\n  \"jobUrls\": [\"156858\", \"156864\", \"147122\"]\n}\n```\n\n## Use cases\n\n- **Recruiters** — build a daily shortlist of fresh remote roles by function, region and seniority.\n- **Job boards and newsletters** — feed complete, structured listings into a site, digest or alerts.\n- **Compensation research** — compare published salary ranges across industries and locations.\n- **Talent-market analysis** — track remote hiring by category, type, level and country eligibility.\n- **Job seekers** — export only roles that are open to their location and still active.\n\n## FAQ\n\n**Where does the data come from?**\nJobicy's public job feed and public job pages. No Jobicy account, login or API key is required. Each run reads Jobicy live; `publishedAt` and `ageDays` show freshness.\n\n**Is this affiliated with Jobicy?**\nNo. This is an independent third-party actor that reads publicly available Jobicy listings.\n\n**How many jobs can one run return?**\nThe complete current 7-day window, up to `maxItems` (maximum 5,000). The window usually contains roughly 1,000-1,500 roles; when it is exhausted, the run says so instead of returning invented data.\n\n**Why is salary missing on some jobs?**\nOnly about half of current Jobicy listings publish structured pay. Missing salary fields are omitted, never estimated. A small number of source listings also contain unusual salary values; they are passed through unchanged for transparency.\n\n**What is the difference between `location` and `countries`?**\n`location` is Jobicy's own eligibility text. `countries[]` is the same text split into country names, and `isWorldwide` flags roles open anywhere.\n\n**Why is Malaysia not in the location list?**\nJobicy's own location taxonomy lists Malaysia, but its jobs API rejects `geo=malaysia` with HTTP 400. The actor therefore offers the 54 usable locations. If a legacy task sends Malaysia, the filter is ignored with a clear status message instead of stopping the run.\n\n**When should I enable `includeDetails`?**\nEnable it when you need the exact expiry date, company website or applicant countries. It fetches each job page and can be slower; if a page is unavailable, the job is still returned with its feed fields and the optional fields are omitted.\n\n**What does `onlyActive` do?**\nIt asks Jobicy for each listing's current status and keeps only `active` jobs. Use mode `status` when you want to check stored IDs without re-scraping the listings.\n\n**Does the actor return the employer's own application link?**\nNo. Jobicy's public feed returns the Jobicy listing URL, and the employer application step is handled on Jobicy's site. The actor never substitutes an unrelated or invented apply URL.\n\n**Can I fetch a job that is older than seven days?**\nThe search feed only covers the last seven days. If you already have a Jobicy job URL that is still live, mode `byUrls` can open it directly; mode `status` can check stored IDs outside the window.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "jobicy-remote-job-listings-scraper",
      "title": "Jobicy Remote Jobs Scraper — Full 7-Day Feed & Filters",
      "description": "Scrape every current Jobicy remote job — the full 7-day feed via cursor pagination, with keyword, region, industry, type, level, salary and date filters. Full descriptions, structured pay, logos, optional expiry and live status. No login or API key.",
      "version": "1.1",
      "buildTag": "latest",
      "defaultMemoryMbytes": 1024,
      "dockerfile": "./Dockerfile",
      "readme": "# Jobicy Remote Jobs Scraper — Full 7-Day Feed & Filters\n\nJobicy publishes a rolling window of remote roles, and this actor reads the whole window rather than the first page. Search by keyword, location, industry, employment type, seniority, publication date or pay, and export complete job descriptions with structured salary, company and eligibility data. No login, API key or proxy is needed.\n\n## What this actor does\n\n- Reads the complete current Jobicy feed — every listing in the rolling 7-day window, not a fixed sample.\n- Filters by keyword, 54 supported locations, 22 industries, job type, seniority, publication date and salary.\n- Returns the full plain-text description, excerpt, industries, job types, seniority, location, country eligibility and company logo.\n- Keeps structured salary values and adds annualised figures, so hourly, monthly and yearly ranges are easier to compare.\n- Optionally fetches each job page for the exact expiry date, company website and applicant countries, and can check whether listings are still active.\n- Omits empty fields rather than returning placeholders or invented data.\n\n## Output per job\n\n- `id` — Jobicy's numeric job ID\n- `jobSlug` — Jobicy listing slug\n- `title` — job title\n- `company` — hiring company\n- `companyLogo` — company logo URL\n- `companyUrl` — company website (with `includeDetails`)\n- `jobUrl` — canonical Jobicy listing URL\n- `category` — industries joined with `; ` (legacy field)\n- `industries[]` — industry labels\n- `jobType` — employment types joined with `; ` (legacy field)\n- `jobTypes[]` — employment type labels\n- `jobLevel` — Jobicy's seniority value\n- `location` — the job's remote eligibility text\n- `countries[]` — countries parsed from the eligibility text\n- `isWorldwide` — true when the role is open anywhere\n- `excerpt` — short listing summary\n- `description` — full plain-text job description\n- `salaryMin`, `salaryMax` — published salary bounds\n- `salaryCurrency`, `salaryPeriod` — pay currency and period\n- `annualSalaryMin`, `annualSalaryMax` — annualised pay, when a period is published\n- `publishedAt` — publication timestamp\n- `ageDays` — days since publication\n- `expiresAt` — listing expiry date (with `includeDetails`)\n- `applicantCountries[]` — eligible applicant countries (with `includeDetails`)\n- `listingStatus` — `active` when checked (with `onlyActive`)\n- `statusCheckedAt` — when the status was checked\n- `tags[]` — the listing's industries\n- `recordType` — `job`\n- `source` — `jobicy`\n- `scrapedAt` — when the record was collected\n\n## Output per status check\n\nMode `status` returns one record per requested job ID:\n\n- `id` — Jobicy job ID\n- `listingStatus` — `active`, `closed` or `unknown`\n- `statusCheckedAt` — when Jobicy checked the listing\n- `recordType` — `jobStatus`\n- `source` — `jobicy`\n- `scrapedAt` — when the record was collected\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `search` | `search` the live feed, fetch `byUrls`, or check `status` |\n| `keyword` | string | – | Full-text Jobicy search, 3-50 characters |\n| `geo` | string | – | Location or region slug; worldwide roles match every location. Legacy names such as `United States` are mapped; Jobicy lists Malaysia but its jobs API rejects that filter, so Malaysia is not offered. |\n| `industry` | string | – | One Jobicy category |\n| `jobType` | string | – | `Full-Time`, `Part-Time`, `Contract` or `Internship` |\n| `jobLevel` | string | – | `Entry-Level`, `Junior`, `Midweight`, `Senior`, `Director` or `Internship`; legacy `Any` keeps listings labeled Any |\n| `postedWithinDays` | integer | `0` | Keep jobs published in the last N days; 0 = no date limit |\n| `salaryDisclosedOnly` | boolean | `false` | Keep only jobs with a published salary |\n| `minAnnualSalaryUsd` | integer | `0` | Minimum annualised USD salary; other currencies are excluded |\n| `excludeKeywords` | array | `[]` | Drop jobs whose title or company contains these terms |\n| `onlyActive` | boolean | `false` | Keep only listings Jobicy reports as active |\n| `includeDetails` | boolean | `false` | Add expiry, company website and applicant countries |\n| `jobUrls` | array | `[]` | Jobicy URLs or numeric IDs (mode `byUrls` / `status`) |\n| `maxItems` | integer | `50` | Maximum job listings to return (1-5,000) |\n\nMode-scoped fields are read only in their intended mode. The daily prefill uses `search` with `maxItems` 3.\n\n### Example: all current jobs\n\n```json\n{\n  \"mode\": \"search\",\n  \"maxItems\": 100\n}\n```\n\n### Example: senior Python roles open to applicants in the USA\n\n```json\n{\n  \"mode\": \"search\",\n  \"keyword\": \"python\",\n  \"geo\": \"usa\",\n  \"jobLevel\": \"Senior\",\n  \"jobType\": \"Full-Time\",\n  \"maxItems\": 50\n}\n```\n\n### Example: paid roles with detail data\n\n```json\n{\n  \"mode\": \"search\",\n  \"industry\": \"engineering\",\n  \"salaryDisclosedOnly\": true,\n  \"minAnnualSalaryUsd\": 120000,\n  \"includeDetails\": true,\n  \"maxItems\": 30\n}\n```\n\n### Example: fetch specific listings and check stored IDs\n\n```json\n{\n  \"mode\": \"byUrls\",\n  \"jobUrls\": [\n    \"https://jobicy.com/jobs/156858-senior-software-engineer-fundraising-remote\",\n    \"156864\"\n  ],\n  \"maxItems\": 10\n}\n```\n\n```json\n{\n  \"mode\": \"status\",\n  \"jobUrls\": [\"156858\", \"156864\", \"147122\"]\n}\n```\n\n## Use cases\n\n- **Recruiters** — build a daily shortlist of fresh remote roles by function, region and seniority.\n- **Job boards and newsletters** — feed complete, structured listings into a site, digest or alerts.\n- **Compensation research** — compare published salary ranges across industries and locations.\n- **Talent-market analysis** — track remote hiring by category, type, level and country eligibility.\n- **Job seekers** — export only roles that are open to their location and still active.\n\n## FAQ\n\n**Where does the data come from?**\nJobicy's public job feed and public job pages. No Jobicy account, login or API key is required. Each run reads Jobicy live; `publishedAt` and `ageDays` show freshness.\n\n**Is this affiliated with Jobicy?**\nNo. This is an independent third-party actor that reads publicly available Jobicy listings.\n\n**How many jobs can one run return?**\nThe complete current 7-day window, up to `maxItems` (maximum 5,000). The window usually contains roughly 1,000-1,500 roles; when it is exhausted, the run says so instead of returning invented data.\n\n**Why is salary missing on some jobs?**\nOnly about half of current Jobicy listings publish structured pay. Missing salary fields are omitted, never estimated. A small number of source listings also contain unusual salary values; they are passed through unchanged for transparency.\n\n**What is the difference between `location` and `countries`?**\n`location` is Jobicy's own eligibility text. `countries[]` is the same text split into country names, and `isWorldwide` flags roles open anywhere.\n\n**Why is Malaysia not in the location list?**\nJobicy's own location taxonomy lists Malaysia, but its jobs API rejects `geo=malaysia` with HTTP 400. The actor therefore offers the 54 usable locations. If a legacy task sends Malaysia, the filter is ignored with a clear status message instead of stopping the run.\n\n**When should I enable `includeDetails`?**\nEnable it when you need the exact expiry date, company website or applicant countries. It fetches each job page and can be slower; if a page is unavailable, the job is still returned with its feed fields and the optional fields are omitted.\n\n**What does `onlyActive` do?**\nIt asks Jobicy for each listing's current status and keeps only `active` jobs. Use mode `status` when you want to check stored IDs without re-scraping the listings.\n\n**Does the actor return the employer's own application link?**\nNo. Jobicy's public feed returns the Jobicy listing URL, and the employer application step is handled on Jobicy's site. The actor never substitutes an unrelated or invented apply URL.\n\n**Can I fetch a job that is older than seven days?**\nThe search feed only covers the last seven days. If you already have a Jobicy job URL that is still live, mode `byUrls` can open it directly; mode `status` can check stored IDs outside the window.\n",
      "input": {
        "title": "Jobicy Remote Jobs Scraper Input",
        "description": "Choose the live Jobicy 7-day feed, specific job URLs, or listing-status checks.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "Search the live Jobicy feed, fetch specific job URLs/IDs, or check stored job IDs. Leave blank for search.",
            "editor": "select",
            "enumTitles": [
              "Search the live Jobicy feed",
              "Fetch specific job URLs or IDs",
              "Check stored job IDs"
            ],
            "default": "search",
            "prefill": "search",
            "enumSuggestedValues": [
              "search",
              "byUrls",
              "status"
            ]
          },
          "keyword": {
            "title": "Search Keyword",
            "type": "string",
            "description": "Full-text search across Jobicy job content (3-50 characters). Leave blank to browse. Examples: python, marketing, product designer.",
            "editor": "textfield",
            "default": "",
            "prefill": ""
          },
          "geo": {
            "title": "Location",
            "type": "string",
            "description": "Keep jobs open to this location or region. Jobicy treats worldwide roles as eligible for every location. Legacy display names such as United States or worldwide are mapped in code. Jobicy lists Malaysia in its taxonomy but its jobs API rejects that slug, so Malaysia is not offered.",
            "editor": "select",
            "default": "",
            "enumSuggestedValues": [
              "",
              "anywhere",
              "apac",
              "emea",
              "latam",
              "argentina",
              "australia",
              "austria",
              "belgium",
              "brazil",
              "bulgaria",
              "canada",
              "china",
              "costa-rica",
              "croatia",
              "cyprus",
              "czechia",
              "denmark",
              "estonia",
              "europe",
              "finland",
              "france",
              "germany",
              "greece",
              "hong-kong",
              "hungary",
              "ireland",
              "israel",
              "italy",
              "japan",
              "latvia",
              "lithuania",
              "mexico",
              "netherlands",
              "new-zealand",
              "norway",
              "philippines",
              "poland",
              "portugal",
              "romania",
              "serbia",
              "singapore",
              "slovakia",
              "slovenia",
              "south-korea",
              "spain",
              "sweden",
              "switzerland",
              "thailand",
              "turkiye",
              "united-arab-emirates",
              "uk",
              "ukraine",
              "usa",
              "vietnam"
            ],
            "enumTitles": [
              "Any location",
              "Anywhere",
              "APAC",
              "EMEA",
              "LATAM",
              "Argentina",
              "Australia",
              "Austria",
              "Belgium",
              "Brazil",
              "Bulgaria",
              "Canada",
              "China",
              "Costa Rica",
              "Croatia",
              "Cyprus",
              "Czechia",
              "Denmark",
              "Estonia",
              "Europe",
              "Finland",
              "France",
              "Germany",
              "Greece",
              "Hong Kong",
              "Hungary",
              "Ireland",
              "Israel",
              "Italy",
              "Japan",
              "Latvia",
              "Lithuania",
              "Mexico",
              "Netherlands",
              "New Zealand",
              "Norway",
              "Philippines",
              "Poland",
              "Portugal",
              "Romania",
              "Serbia",
              "Singapore",
              "Slovakia",
              "Slovenia",
              "South Korea",
              "Spain",
              "Sweden",
              "Switzerland",
              "Thailand",
              "Türkiye",
              "United Arab Emirates",
              "UK",
              "Ukraine",
              "USA",
              "Vietnam"
            ]
          },
          "industry": {
            "title": "Industry",
            "type": "string",
            "description": "Keep jobs in one Jobicy category. Leave blank for all categories.",
            "editor": "select",
            "enum": [
              "",
              "admin-support",
              "business",
              "copywriting",
              "design-multimedia",
              "supporting",
              "cybersecurity",
              "data-science",
              "admin",
              "education",
              "accounting-finance",
              "healthcare",
              "hr",
              "legal",
              "marketing",
              "management",
              "project-management",
              "qa-testing",
              "seller",
              "seo",
              "engineering",
              "technical-support",
              "web-app-design"
            ],
            "enumTitles": [
              "Any industry",
              "Admin & Virtual Assistance",
              "Business Development",
              "Content & Editorial",
              "Creative & Design",
              "Customer Support & Success",
              "Cybersecurity",
              "Data Science & Analytics",
              "DevOps & Infrastructure",
              "Education & E-learning",
              "Finance & Accounting",
              "Healthcare & Medical",
              "HR & Recruiting",
              "Legal & Compliance",
              "Marketing & Sales",
              "Product & Operations",
              "Project & Program Management",
              "QA & Testing",
              "Sales",
              "SEO",
              "Software Engineering",
              "Technical Support",
              "Web, UI & UX Design"
            ],
            "default": ""
          },
          "jobType": {
            "title": "Job Type",
            "type": "string",
            "description": "Keep one employment type. Leave blank for all types.",
            "editor": "select",
            "enum": [
              "",
              "Full-Time",
              "Part-Time",
              "Contract",
              "Internship"
            ],
            "enumTitles": [
              "Any type",
              "Full-Time",
              "Part-Time",
              "Contract",
              "Internship"
            ],
            "default": ""
          },
          "jobLevel": {
            "title": "Seniority Level",
            "type": "string",
            "description": "Keep one seniority level. Leave blank for all levels. Legacy Any is accepted and keeps listings Jobicy labels Any.",
            "editor": "select",
            "enumTitles": [
              "Any level",
              "Entry-Level",
              "Junior",
              "Midweight",
              "Senior",
              "Director",
              "Internship"
            ],
            "default": "",
            "enumSuggestedValues": [
              "",
              "Entry-Level",
              "Junior",
              "Midweight",
              "Senior",
              "Director",
              "Internship"
            ]
          },
          "postedWithinDays": {
            "title": "Posted Within (Days)",
            "type": "integer",
            "description": "Keep jobs published in the last N days. 0 means no date limit. Jobicy exposes the last 7 days.",
            "editor": "number",
            "minimum": 0,
            "maximum": 7,
            "default": 0
          },
          "salaryDisclosedOnly": {
            "title": "Only Jobs With Published Salary",
            "type": "boolean",
            "description": "Keep only listings where Jobicy publishes a salary range.",
            "default": false
          },
          "minAnnualSalaryUsd": {
            "title": "Minimum Annual Salary (USD)",
            "type": "integer",
            "description": "Keep USD listings whose annualised maximum salary meets this figure. Hourly pay is annualised at 2,080 hours; monthly pay at 12 months. 0 disables this filter.",
            "editor": "number",
            "minimum": 0,
            "maximum": 10000000,
            "default": 0
          },
          "excludeKeywords": {
            "title": "Exclude Keywords",
            "type": "array",
            "description": "Drop jobs whose title or company contains any of these terms (case-insensitive).",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "onlyActive": {
            "title": "Only Active Listings",
            "type": "boolean",
            "description": "Check each listing's current status with Jobicy and keep only active jobs.",
            "default": false
          },
          "includeDetails": {
            "title": "Include Detail-Page Fields",
            "type": "boolean",
            "description": "Fetch each job page for its exact expiry date, company website and applicant countries. Adds requests; unavailable pages are skipped.",
            "default": false
          },
          "jobUrls": {
            "title": "Job URLs or IDs",
            "type": "array",
            "description": "Jobicy job URLs or numeric job IDs. Used only with mode byUrls or status.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "maxItems": {
            "title": "Max Items",
            "type": "integer",
            "description": "Maximum job listings to return (1-5,000). Jobicy's live window usually contains about 1,000-1,500 jobs.",
            "editor": "number",
            "minimum": 1,
            "maximum": 5000,
            "default": 50,
            "prefill": 3
          }
        }
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Jobicy Remote Jobs Scraper Output",
        "description": "Jobicy remote jobs with full descriptions, industries, job types, seniority, locations, salary (and annualised USD figures), optional expiry/company website/applicant countries, and live listing status.",
        "properties": {
          "remoteJobs": {
            "type": "string",
            "title": "Jobicy Remote Jobs",
            "description": "Dataset containing the scraped Jobicy remote-job and listing-status records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Remote Jobs",
              "transformation": {
                "fields": [
                  "title",
                  "company",
                  "location",
                  "jobTypes",
                  "jobLevel",
                  "salaryMin",
                  "salaryMax",
                  "salaryCurrency",
                  "publishedAt",
                  "jobUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            },
            "statuses": {
              "title": "Job Statuses",
              "transformation": {
                "fields": [
                  "id",
                  "listingStatus",
                  "statusCheckedAt"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.1.1",
    "imageDigest": "d2bd4aefdb6f255b1a12a746ee6865cf3eec3c37dd13b15bf824e9387545c95c",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.1"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.0036455555555555555
    }
  }
}