iCIMS Jobs Scraper avatar

iCIMS Jobs Scraper

Pricing

Pay per event

Go to Apify Store
iCIMS Jobs Scraper

iCIMS Jobs Scraper

Extract public iCIMS employer jobs with full requisition details, locations, qualifications, visa and travel fields, descriptions, and direct apply URLs.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Extract public jobs from iCIMS employer career portals into clean, integration-ready data.

iCIMS Jobs Scraper accepts a career portal, search page, or individual requisition URL and returns normalized job records with full descriptions, qualifications, location, visa sponsorship, travel requirements, and direct application links.

  • 🔎 Discover every job exposed by a public iCIMS search page
  • 📄 Fetch full requisition details instead of returning thin search cards
  • 🏢 Process multiple employers in one run
  • 🔁 Deduplicate jobs by iCIMS tenant and requisition ID
  • 📤 Export to JSON, CSV, Excel, XML, RSS, or an API

Use it for repeatable hiring feeds without maintaining employer-specific HTML scripts.

What does iCIMS Jobs Scraper do?

The Actor turns public iCIMS career pages into structured job data.

It follows search pagination, discovers requisition pages, extracts common iCIMS fields, and stores one job per dataset row. You can also submit a direct job URL when you only need one requisition.

The scraper is HTTP-first. It reads server-rendered iCIMS pages without launching a browser, which keeps runs fast and cost-efficient.

Who is it for?

Job aggregators

Collect current vacancies from employers that use iCIMS and merge them into a searchable job index.

Recruiter intelligence teams

Track which departments, locations, and role families are expanding at target companies.

Labor-market analysts

Build recurring snapshots of openings by category, city, state, country, and requisition identity.

Sales and B2B research teams

Use hiring activity as an account signal for staffing, software, consulting, relocation, or benefits outreach.

Developers and data engineers

Feed normalized job records into a warehouse, webhook, automation, or internal search product.

Why use this iCIMS job extractor?

  • Public inputs: no iCIMS login or employer credentials are required for public portals.
  • Full records: detail pages provide richer data than search cards alone.
  • Stable identity: tenant plus requisition ID supports monitoring and deduplication.
  • Flexible URLs: use tenant roots, search URLs with filters, or direct job pages.
  • Fail-loud safety: invalid targets and total extraction failures do not silently produce successful empty runs.
  • Low overhead: direct HTTP avoids browser startup and heavy page resources.

What iCIMS job data can I extract?

FieldDescription
titlePublic requisition title
requisitionIdEmployer's iCIMS requisition identifier
categoryJob category or function
countryCountry shown by the employer
stateState or province
cityCity or advertised site
locationCombined city, state, and country
descriptionClean text from the full job description
descriptionHtmlSource HTML for formatting-aware workflows
dutiesDuties, responsibilities, or overview section when labeled
qualificationsQualifications or requirements section when labeled
additionalInformationAdditional information section when labeled
visaSponsorshipEmployer's public visa sponsorship field
travelRequirementsPublic travel requirement
employerEmployer override or tenant-derived name
tenantiCIMS portal subdomain
canonicalUrlClean public requisition URL
applyUrlDirect iCIMS application URL
sourceUrlExact URL fetched by the Actor
scrapedAtUTC extraction timestamp

Optional fields are omitted when an employer does not publish them.

How to scrape iCIMS jobs

  1. Open the Actor in Apify Console.
  2. Add one or more public https://*.icims.com URLs.
  3. Set Maximum jobs to the number of requisitions you need.
  4. Keep Fetch full job details enabled.
  5. Optionally enter an employer display name.
  6. Click Start.
  7. Open the dataset to preview, filter, or export the records.

A small first run with five jobs is enough to verify a new employer portal.

Input

{
"startUrls": [
{
"url": "https://globalcareers-sas.icims.com/jobs/search?ss=1&in_iframe=1"
}
],
"maxItems": 20,
"includeDetails": true,
"employerName": "SAS",
"proxyConfiguration": {
"useApifyProxy": false
}
}

Input fields

ParameterTypeRequiredDefaultPurpose
startUrlsarrayYessample portalTenant roots, searches, or direct job URLs
maxItemsintegerNo20Maximum unique requisitions to save
includeDetailsbooleanNotrueRequired for normalized full-detail output
employerNamestringNotenantStable employer display name
proxyConfigurationobjectNodirectOptional Apify Proxy settings

Search URL query parameters are preserved, so employer-provided keyword and location filters continue to work.

Supported URL formats

The Actor accepts public HTTPS hosts ending in .icims.com.

https://careers-example.icims.com
https://careers-example.icims.com/jobs/search
https://careers-example.icims.com/jobs/search?searchKeyword=engineer
https://careers-example.icims.com/jobs/12345/example-role/job

A tenant root is normalized to /jobs/search?ss=1&in_iframe=1. Non-iCIMS domains are rejected.

Output example

{
"title": "Sr Finance Business Partner (Individual Contributor level)",
"requisitionId": "2026-42328",
"category": "Information Technology",
"country": "United States",
"state": "North Carolina",
"city": "Cary HQ",
"location": "Cary HQ, North Carolina, United States",
"description": "Summary of Duties: Works as an Individual Contributor...",
"duties": "Works as an Individual Contributor and reports to a Director...",
"qualifications": "Position requires a Bachelor's degree...",
"visaSponsorship": "No",
"travelRequirements": "None",
"employer": "SAS",
"tenant": "careers-sas",
"canonicalUrl": "https://careers-sas.icims.com/jobs/42328/example/job?hub=9",
"applyUrl": "https://careers-sas.icims.com/jobs/42328/example/job?mode=apply&apply=yes...",
"sourceUrl": "https://careers-sas.icims.com/jobs/42328/example/job?hub=9&in_iframe=1",
"scrapedAt": "2026-07-18T00:00:00.000Z"
}

The default dataset contains one entity type: job requisitions.

How much does it cost to scrape iCIMS jobs?

This Actor uses pay-per-event pricing. A $0.005 start charge covers run setup, then each saved job is charged at the rate for your Apify plan.

Apify tierPrice per saved job
FREE$0.000095582
BRONZE$0.000083115
SILVER$0.00006483
GOLD$0.000049869
PLATINUM$0.000033246
DIAMOND$0.000023272

Your exact estimate appears in Apify Console before a run. Control spend with maxItems; start with five jobs when testing a portal, then scale after reviewing the output.

The free Apify plan can be used for small evaluations within the credits available on your account.

Pagination and deduplication

Search pages expose paginator links. The Actor follows the next-page link only when more jobs are needed.

Each output key combines:

<iCIMS tenant>:<requisition ID>

This prevents duplicate rows when multiple submitted search pages point to the same requisition during one run.

For monitoring across runs, use the same key in your database or automation.

Tips for reliable extraction

  • 🎯 Submit the employer's iCIMS search page rather than a marketing-site wrapper.
  • 🧪 Test a new portal with maxItems: 5 before a large collection.
  • 🏷️ Set employerName when you want a polished company name in every row.
  • 🔗 Preserve employer filter parameters in your submitted search URL.
  • 🌐 Use a proxy only if a portal restricts your current region or network.
  • 🕐 Schedule recurring runs at a frequency appropriate for the employer's hiring activity.

Integrations

Google Sheets and Excel

Export the dataset to CSV or XLSX for recruiter research, reporting, or manual review.

Webhooks and automation

Trigger Make, Zapier, n8n, or a custom webhook when a scheduled run finishes. Compare requisition keys to identify newly opened or removed jobs.

Data warehouses

Load JSON records into BigQuery, Snowflake, PostgreSQL, or object storage. Use scrapedAt for snapshot partitions.

Recruiting and sales systems

Map employer, title, category, and location into an ATS, CRM, lead-scoring model, or account intelligence workflow.

API usage with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/icims-jobs-scraper').call({
startUrls: [{ url: 'https://globalcareers-sas.icims.com/jobs/search' }],
maxItems: 20,
includeDetails: true,
employerName: 'SAS',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/icims-jobs-scraper').call(run_input={
'startUrls': [{'url': 'https://globalcareers-sas.icims.com/jobs/search'}],
'maxItems': 20,
'includeDetails': True,
'employerName': 'SAS',
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

API usage with cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~icims-jobs-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{"url": "https://globalcareers-sas.icims.com/jobs/search"}],
"maxItems": 20,
"includeDetails": true,
"employerName": "SAS"
}'

Fetch results from the run's default dataset after it succeeds.

Use iCIMS Jobs Scraper with MCP

Connect the Actor to Claude Code:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/icims-jobs-scraper"

For Claude Desktop, Cursor, or VS Code, add this MCP server configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/icims-jobs-scraper"
}
}
}

Example prompts:

  • “Extract the first 25 jobs from this iCIMS employer portal.”
  • “Return titles, requisition IDs, locations, and apply URLs as a table.”
  • “Compare this week's requisition IDs with last week's dataset.”

Scheduling an iCIMS job monitor

Create an Apify schedule with the same employer URLs and a stable dataset destination or downstream webhook.

A typical monitor:

  1. runs daily or weekly;
  2. stores the latest job rows;
  3. compares tenant and requisition ID against the previous snapshot;
  4. sends newly discovered jobs to Slack, email, a CRM, or a warehouse.

Choose a cadence that respects the target site and your business need.

Error handling

The run fails with a clear message when:

  • a URL is invalid or outside public iCIMS domains;
  • a page cannot be fetched after bounded retries;
  • a search page exposes no iCIMS job links;
  • a detail page lacks required job identity fields;
  • the complete run would otherwise emit zero jobs.

A single temporary request is retried, but the Actor does not hide total extraction failures behind an empty successful dataset.

Limitations

  • Employer-specific iCIMS themes can rename or omit optional labels.
  • The Actor extracts public postings only; candidate dashboards and login-only jobs are not supported.
  • includeDetails must remain enabled in the current release.
  • Employers may move applications to another system after an iCIMS redirect.
  • Description section splitting depends on visible labels such as “Qualifications:” or “Requirements:”. The full description remains available even when sections cannot be split.

The Actor extracts information published on public employer career pages. Public availability does not remove your responsibilities.

You should:

  • follow applicable laws and contractual obligations;
  • respect employer terms and reasonable request rates;
  • avoid collecting candidate, applicant, or login-protected personal data;
  • use job data for a legitimate purpose;
  • apply retention and privacy controls appropriate to your jurisdiction.

This documentation is not legal advice.

FAQ

Does this Actor need an iCIMS account?

No. It is designed for publicly visible employer career portals and requisition pages.

Can I scrape several employers at once?

Yes. Add multiple iCIMS URLs to startUrls. maxItems applies to the combined run.

Can I scrape one known job URL?

Yes. Submit the direct /jobs/{id}/{slug}/job URL and set maxItems to 1.

Why did my portal return no jobs?

Confirm that the URL opens an iCIMS /jobs/search page rather than an employer marketing wrapper. Try the URL with ?ss=1&in_iframe=1, or enable an Apify proxy if the employer restricts your network.

Why is an optional output field missing?

Employers control which iCIMS fields they publish. Missing optional values are omitted rather than represented by misleading placeholders.

How do I detect new jobs?

Schedule repeated runs and compare the combination of tenant and requisitionId with your previous dataset.

Build a broader hiring-data workflow with other Automation Lab Actors:

Use the source-specific Actor that matches each employer's career system, then normalize the resulting datasets in your downstream pipeline.

Support

If a public iCIMS portal uses a layout that is not recognized, open an issue from the Actor page and include:

  • the public portal or requisition URL;
  • the input used;
  • the run ID;
  • which fields or records you expected.

Do not include private applicant credentials or personal candidate information.