StepStone Group Jobs Feed
Pricing
Pay per event
StepStone Group Jobs Feed
Search Totaljobs, CWJobs, and Jobsite and export normalized UK vacancy records for recurring hiring intelligence.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Search Totaljobs, CWJobs, and Jobsite and export normalized UK vacancy records for hiring intelligence, salary research, recruiting operations, and recurring job-market monitoring.
The Actor turns public search results or supplied job URLs into consistent records with vacancy identity, title, employer, location, displayed salary, recognized skills, work mode, publication date, description, job URL, and source portal. It is also useful when analysts need current job position examples from supported StepStone Group job boards without manually copying search pages.
What does this Actor do?
StepStone Group Jobs Feed supports two input routes:
- Search one supported portal by job keyword and optional location.
- Supply one or more supported search, result, or individual job URLs.
Search pages produce normalized vacancy summaries. An individual job URL uses the page's public JobPosting structured data to return the full public description and exact publication timestamp when available.
Supported portals are:
- Totaljobs (
www.totaljobs.com) - CWJobs (
www.cwjobs.co.uk) - Jobsite (
www.jobsite.co.uk)
Other StepStone Group properties are not currently supported. The Actor fails clearly on an unsupported hostname instead of returning misleading empty data.
Who is this StepStone jobs feed for?
- Recruiting teams comparing active demand for roles across UK job boards.
- Labor-market analysts building repeatable vacancy and salary datasets.
- Sales and staffing teams identifying employers currently hiring.
- Job-board operators collecting normalized source links for downstream review.
- Data engineers feeding current vacancy records into spreadsheets, warehouses, or BI tools.
- AI application builders supplying compact, typed job records to research agents and RAG workflows.
Why use it?
- One schema across three related UK portals.
- Stable job IDs support deduplication and scheduled comparisons.
- Keyword/location search and explicit-URL inputs cover discovery and targeted extraction.
- Residential HTTP extraction avoids shipping a heavyweight browser.
- Pagination and result limits are bounded and predictable.
- Missing source values remain
nullor empty arrays rather than being invented. - Every row retains its source portal and source URL for traceability.
What job data can you extract?
| Field | Meaning |
|---|---|
jobId | Stable numeric identifier from the source listing |
title | Public vacancy title |
employer | Displayed employer name, when available |
location | Displayed location or postcode |
salary | Salary text shown by the portal |
skills | Recognized technical/business skills named in listing text |
workMode | remote, hybrid, on-site, or null when not stated |
postedText | Source publication-age text, such as 2 days ago |
datePosted | Exact structured date or an ISO approximation from relative age text |
description | Search-result summary, or full public text for an individual job URL |
applyUrl | Canonical public job/application page |
sourcePortal | TOTALJOBS, CWJOBS, or JOBSITE |
sourceUrl | Search or job URL used for extraction |
scrapedAt | ISO timestamp of extraction |
Search StepStone job board listings
For a standard portal search, provide portal, query, and optionally location:
{"portal": "TOTALJOBS","query": "software engineer","location": "London","maxItems": 10,"maxPages": 2}
The Actor builds the matching public search URL, follows pagination, deduplicates by jobId, and stops at maxItems.
Extract supplied search or job URLs
Use startUrls when you already have a StepStone job board URL:
{"startUrls": [{ "url": "https://www.totaljobs.com/jobs/cyber-security/in-london" },{ "url": "https://www.jobsite.co.uk/jobs/cyber-security/in-london" }],"maxItems": 30,"maxPages": 1}
When startUrls is present, portal, query, and location are ignored. The same global result limit and stable-ID deduplication apply across every URL.
An individual URL matching /job/...-job123456789 returns one structured detail record rather than treating the page as a search result.
Input parameters
| Input | Type | Default | Description |
|---|---|---|---|
portal | string | TOTALJOBS | Portal for generated keyword searches: TOTALJOBS, CWJOBS, or JOBSITE |
query | string | prefilled | Job title, skill, or phrase; required unless startUrls is supplied |
location | string | — | Optional UK city, region, or postcode |
startUrls | array | [] | Supported search/result URLs or individual job URLs |
maxItems | integer | 10 | Unique jobs to save, from 1 to 500 |
maxPages | integer | 5 | Search pages per URL, from 1 to 50 |
The source requires a UK residential proxy route. The Actor configures that route automatically. A run fails with a clear message if compatible proxy access is unavailable.
Example output
This representative record was produced by the current parser from a public Totaljobs search; the description is shortened here for readability:
{"jobId": "107835239","title": "Country Software Engineer","employer": "IKEA","location": "North West London (NW10), NW10 0JQ","salary": "starting salary £50,600 per annum","skills": [],"workMode": null,"postedText": "2 days ago","datePosted": "2026-08-13T14:17:26.105Z","description": "Join us as our Country Software Engineer...","applyUrl": "https://www.totaljobs.com/job/country-software-engineer/ikea-job107835239","sourcePortal": "TOTALJOBS","sourceUrl": "https://www.totaljobs.com/jobs/software-engineer/in-london","scrapedAt": "2026-08-15T14:17:26.105Z"}
Dates derived from text such as 2 days ago are approximations based on extraction time. Individual job pages can provide an exact structured publication date.
How much does it cost to extract StepStone Group job listings?
The Actor uses pay-per-event pricing:
- one
startevent per run; - one
itemevent for each normalized job record saved.
At the BRONZE tier, the run start costs $0.005 and each job costs $0.0012. For example:
| Saved jobs | Example total |
|---|---|
| 10 | $0.017 |
| 25 | $0.035 |
| 100 | $0.125 |
Higher-volume platform tiers use lower per-job prices. Actual active pricing is always shown in Apify Console before a run. Failed, duplicate, rejected, or empty records do not incur an item event.
Residential proxy and compute usage are paid by the Actor under PPE pricing; users are charged through the declared events rather than a separate proxy line item.
Getting started
- Open the Actor in Apify Console.
- Keep
TOTALJOBSor selectCWJOBS/JOBSITE. - Enter a real job keyword such as
data engineer. - Optionally enter a UK location such as
London. - Set a small
maxItemsvalue for the first run. - Click Start.
- Open the Jobs dataset view.
- Download JSON, CSV, Excel, XML, or RSS, or consume the dataset through the API.
The prefilled software-engineer search is designed to return useful current results.
Recurring hiring-intelligence workflow
A practical scheduled workflow is:
- Run one stable query per role/location/portal.
- Retain
jobId,datePosted,salary, andsourcePortalin your data warehouse. - Compare the current run with the previous snapshot by
sourcePortal + jobId. - Mark newly observed IDs as openings and missing IDs as candidates for expiry review.
- Aggregate employer, salary, location, skill, and work-mode changes in BI dashboards.
The Actor itself does not claim to identify expired jobs or persist cross-run state. Snapshot comparison belongs in your storage or automation workflow.
Export to spreadsheets and data pipelines
After a run, use Apify integrations or dataset URLs to:
- append new records to Google Sheets;
- send results to Make or Zapier;
- load JSON/CSV into BigQuery, Snowflake, PostgreSQL, or object storage;
- trigger n8n workflows for employer monitoring;
- feed normalized vacancies to salary and workforce dashboards.
Use sourcePortal and jobId together as the downstream identity key.
Run through the API
Set APIFY_TOKEN in your environment. Do not put tokens in source control.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~stepstone-group-jobs-feed/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"portal":"CWJOBS","query":"data engineer","location":"London","maxItems":10}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/stepstone-group-jobs-feed').call({portal: 'CWJOBS',query: 'data engineer',location: 'London',maxItems: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/stepstone-group-jobs-feed').call(run_input={'portal': 'JOBSITE','query': 'cyber security','location': 'London','maxItems': 10,})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
Use with MCP and AI agents
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/stepstone-group-jobs-feed"
Claude Desktop setup
Add this server object to Claude Desktop's MCP configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/stepstone-group-jobs-feed"}}}
Cursor setup
Add the same apify server URL under Cursor Settings → Tools & MCP → New MCP Server.
VS Code setup
Add the same apify server URL to your workspace MCP server configuration, then enable it from VS Code's MCP tools view.
Example prompts:
- “Search CWJobs for data engineer vacancies in London and summarize displayed salary ranges.”
- “Collect 30 cyber security jobs from the supplied Totaljobs and Jobsite URLs, then group them by employer.”
- “Return job position examples for software engineering and cite each public application URL.”
Agents should treat datePosted as approximate when postedText is relative.
Tips for reliable runs
- Start with 10–25 results while confirming a query.
- Use the portal's public search URL in
startUrlswhen you need filters not exposed as dedicated inputs. - Keep
maxPagesproportional tomaxItems; each search page normally contains about 25 cards. - Schedule at a responsible interval rather than repeatedly polling unchanged pages.
- Deduplicate historical exports by
sourcePortal + jobId. - Preserve
sourceUrlfor audits and parser troubleshooting.
Limits and failure behavior
- Only the three documented hostnames are accepted.
- Search summaries may be truncated by the source.
- Skills and work mode are conservative text-derived fields;
[]/nullmeans not confidently stated. - Salary is source text, not a normalized currency/period calculation.
- Relative posting dates are approximated at extraction time.
- Listings can be changed or removed after extraction.
- Residential proxy access is required because direct/datacenter requests are blocked by the source.
- A challenge page, unsupported content type, exhausted retry sequence, or malformed input fails the run rather than silently returning zero records.
- The Actor does not log in, submit applications, contact employers, or access private candidate data.
Responsible and legal use
The Actor accesses public vacancy pages without login. Web-scraping rules vary by jurisdiction and use case. You are responsible for checking applicable laws, portal terms, robots directives, contractual restrictions, and data-retention requirements.
Use reasonable schedules and limits. Do not use output for discrimination, spam, deceptive outreach, automated application submission, or attempts to identify private individuals. Preserve source attribution and honor removal requests in downstream systems.
FAQ
Does this support every StepStone Group portal?
No. Current verified support is Totaljobs, CWJobs, and Jobsite. Unsupported domains fail validation.
Is this a StepStone job app or an official API?
No. It is an independent Actor that converts publicly visible job-board pages into structured dataset records. It is not affiliated with StepStone Group and does not interact with a mobile job app.
Can I scrape a single job posting?
Yes. Supply its supported public /job/...-job<ID> URL in startUrls. The Actor reads public JobPosting structured data when present.
Why is the description shorter in search output?
Search pages expose a listing summary. Use an individual supported job URL when you need the full public description for one vacancy.
Why did my run fail with a proxy message?
These portals block ordinary direct/datacenter routes. The Actor requires Apify's GB residential proxy path. Confirm the run is on Apify and retry only after compatible proxy access is available.
Why did a query return no rows?
Open the generated search on the selected portal and confirm that the role/location currently has results. Also check spelling and reduce location specificity. A genuine empty search exits successfully; a challenge or invalid response fails.
Can I monitor new and removed jobs?
Schedule consistent inputs and compare exported snapshots by sourcePortal + jobId. Cross-run change tracking is not stored automatically by this Actor.
Related automation-lab Actors
- Company Career Page Jobs Scraper for supported employer-owned career pages.
- Pracuj.pl Jobs Scraper for Polish vacancy and salary intelligence.
- NHS Jobs Scraper for UK healthcare vacancies.
These products cover different sources; they are not automatic fallbacks for this Actor.