iCIMS Jobs Scraper
Pricing
Pay per event
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
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?
| Field | Description |
|---|---|
title | Public requisition title |
requisitionId | Employer's iCIMS requisition identifier |
category | Job category or function |
country | Country shown by the employer |
state | State or province |
city | City or advertised site |
location | Combined city, state, and country |
description | Clean text from the full job description |
descriptionHtml | Source HTML for formatting-aware workflows |
duties | Duties, responsibilities, or overview section when labeled |
qualifications | Qualifications or requirements section when labeled |
additionalInformation | Additional information section when labeled |
visaSponsorship | Employer's public visa sponsorship field |
travelRequirements | Public travel requirement |
employer | Employer override or tenant-derived name |
tenant | iCIMS portal subdomain |
canonicalUrl | Clean public requisition URL |
applyUrl | Direct iCIMS application URL |
sourceUrl | Exact URL fetched by the Actor |
scrapedAt | UTC extraction timestamp |
Optional fields are omitted when an employer does not publish them.
How to scrape iCIMS jobs
- Open the Actor in Apify Console.
- Add one or more public
https://*.icims.comURLs. - Set Maximum jobs to the number of requisitions you need.
- Keep Fetch full job details enabled.
- Optionally enter an employer display name.
- Click Start.
- 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
| Parameter | Type | Required | Default | Purpose |
|---|---|---|---|---|
startUrls | array | Yes | sample portal | Tenant roots, searches, or direct job URLs |
maxItems | integer | No | 20 | Maximum unique requisitions to save |
includeDetails | boolean | No | true | Required for normalized full-detail output |
employerName | string | No | tenant | Stable employer display name |
proxyConfiguration | object | No | direct | Optional 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.comhttps://careers-example.icims.com/jobs/searchhttps://careers-example.icims.com/jobs/search?searchKeyword=engineerhttps://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 tier | Price 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: 5before a large collection. - 🏷️ Set
employerNamewhen 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 osfrom apify_client import ApifyClientclient = 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:
- runs daily or weekly;
- stores the latest job rows;
- compares tenant and requisition ID against the previous snapshot;
- 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.
includeDetailsmust 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.
Is scraping iCIMS jobs legal?
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.
Related job scrapers
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.