Totaljobs Scraper: UK Jobs, Salaries & Descriptions avatar

Totaljobs Scraper: UK Jobs, Salaries & Descriptions

Pricing

from $3.00 / 1,000 serp results

Go to Apify Store
Totaljobs Scraper: UK Jobs, Salaries & Descriptions

Totaljobs Scraper: UK Jobs, Salaries & Descriptions

Extract UK job listings from TotalJobs.com. Returns title, company, salary (min/max/currency/period), full description, employment type, location, posting date, apply URL, and 30+ more fields. Search by keyword, location, or URL. Pay-per-result: $3 per 1,000 jobs.

Pricing

from $3.00 / 1,000 serp results

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

13

Total users

3

Monthly active users

8 days ago

Last modified

Share

TotalJobs Scraper - UK Jobs, Salaries and Descriptions

Extract job listings from TotalJobs.com, a UK independent job board and flagship brand of Totaljobs Group (StepStone-Xing). Search by keyword, location, or paste any TotalJobs URL. Full-detail mode delivers structured salary, HTML and Markdown descriptions, and contact extraction.

What it does

  • Searches TotalJobs via the same JSON API the website uses (no HTML scraping for SERPs)
  • SERP-only mode returns 22 fields per job including title, company, salary (min/max/currency/period), location, and snippet
  • Full-detail mode adds the complete description (text, HTML, Markdown), employment type, ISO posting dates, and extracted contact info
  • Results stream to the dataset as each job is extracted - no waiting for the full run to finish
  • Deduplicates across multiple queries by job ID
  • Strips Emotion CSS-in-JS artifacts from descriptions before delivery

Sample output

{
"_type": "job",
"id": "107247777",
"title": "Senior Software Engineer",
"job_url": "https://www.totaljobs.com/job/senior-software-engineer/mcgregor-boyall-job107247777",
"source_url": "https://www.totaljobs.com/job/senior-software-engineer/mcgregor-boyall-job107247777",
"company_name": "McGregor Boyall Associates Limited",
"company_logo_url": "https://www.totaljobs.com/CompanyLogos/c8ddb65522b549209fafb5ab49f14314.png",
"location": "London",
"country": "UK",
"postcode": "EC2A",
"salary_min": 65000,
"salary_max": 75000,
"salary_currency": "GBP",
"salary_period": "year",
"salary_text": "From £65,000 to £75,000 per annum",
"employment_type": "Full-time",
"description": "You will be joining an engineering-led team building greenfield software...",
"description_full": "You will be joining an engineering-led team building greenfield software...",
"description_html": "<p>You will be joining an engineering-led team...</p>",
"description_md": "You will be joining an engineering-led team...",
"posted_at_text": "2026-05-07T09:22:20Z",
"posted_at_datetime": "2026-05-07T09:22:20Z",
"expires_at": "2026-06-18T09:22:20Z",
"apply_url": null,
"contact_emails": [],
"contact_phones": [],
"contact_urls": [],
"search_query": "software engineer",
"scraped_at": "2026-08-22T10:00:00Z",
"source_platform": "totaljobs.com"
}

Pricing

EventPriceWhen charged
Actor start$0.001Once per run
SERP result$0.003Per job in fast mode (includeJobDetails=false)
Detail result$0.005Per job in full-detail mode (includeJobDetails=true)

SERP-only mode: $3 per 1,000 jobs. Full-detail mode: $5 per 1,000 jobs. The two events are mutually exclusive: one is charged per job, not both. Jobs whose detail page could not be loaded are billed as search results.

If job detail pages cannot be loaded during a run, the run continues with search-result data, says so in the run status, and bills those rows as search results.

New Apify accounts get $5 free monthly credit - enough for ~1,000 full-detail results at no cost.

Input

ParameterTypeDefaultDescription
searchQueriesstring[]-Job search keywords. Each runs as a separate search.
searchUrlsstring[]-TotalJobs search URLs with filters already applied.
startUrlsstring[]-Individual job page URLs for full details or alive checks.
locationstring-City, town, or postcode (keywords only, not URLs).
includeJobDetailsbooleanfalseFetch full description from each job's detail page.
includeCompanyDetailsbooleanfalseResolve employer website from description (deny-list guarded).
maxResultsPerQuerynumber5Max results per search query.
maxResultsnumber5Total cap across all queries.
sortBystringnewestSort order: newest (client-side date sort) or relevance.
maxConcurrencynumber3Parallel detail page requests.

Output fields

Identity

  • _type - always "job"
  • id - TotalJobs job ID
  • title - job title
  • job_url / source_url - canonical totaljobs.com URL

Company

  • company_name / company - employer name
  • company_logo_url - company logo from TotalJobs CDN
  • company_url - TotalJobs employer profile URL
  • company_website - external employer website (null if not in description or if matches deny-list)

Location

  • location - city or region
  • country - always "UK"
  • postcode - postcode if available

Pay

  • salary_min, salary_max - structured numbers
  • salary_currency - always "GBP"
  • salary_period - year / month / week / day / hour
  • salary_text - raw salary string from TotalJobs

Description

  • description - plain text with line breaks
  • description_full - same as description (full text)
  • description_html - HTML with style/script stripped
  • description_md - Markdown conversion

Dates

  • posted_at_text - raw ISO date from TotalJobs
  • posted_at_datetime - ISO 8601
  • expires_at - ISO 8601

Contacts

  • contact_emails - array (empty if none found)
  • contact_phones - array (empty if none found)
  • contact_urls - array, job-board URLs excluded (empty if none found)
  • apply_url - null (users apply on the TotalJobs page directly)

Meta

  • search_query - the keyword that returned this job
  • scraped_at - ISO 8601 run timestamp
  • source_platform - "totaljobs.com"
  • detail_status - "ok" when the detail page was read, "failed" when details were requested but the page failed or was empty, null when not requested

Use with AI Agents

Connect directly to Claude, GPT-4, or any MCP-compatible assistant:

https://mcp.apify.com?tools=santamaria-automations/totaljobs-scraper

Why this scraper

  • Uses the native TotalJobs JSON API - faster and more reliable than HTML scraping
  • CSS-in-JS artifacts stripped before delivery - no .job-ad-display- pollution in descriptions
  • Structured salary parsed automatically - min, max, currency, period
  • Three description formats - plain text, HTML, and Markdown - ready for any downstream use
  • company_website deny-list blocks job-board self-referential URLs (totaljobs, cwjobs, reed, indeed, linkedin, glassdoor, monster, cv-library)
  • Fleet-standard output with _type: "job", ISO dates, and array contact fields

Common use cases

  • Job market research - track salary trends and demand by keyword in the UK
  • Recruitment operations - feed job listings into ATS or CRM workflows
  • HR analytics - benchmark titles, pay bands, and location distributions
  • AI-powered job matching - description_md ready for embedding and semantic search
  • Lead generation - contact_emails and contact_urls from employer job postings

Sort order

The sortBy input controls the order of results in the dataset.

  • newest (default) - most recently posted jobs first
  • relevance - ranked by keyword match strength

The TotalJobs platform (Stepstone Group) no longer honours the server-side ?sort=date URL parameter - an A/B test in September 2026 confirmed both sort values return an identical result set (Jaccard 1.0). The actor applies client-side sort after collecting all results: when sortBy=newest, jobs are sorted by posted_at_datetime descending before being written to the dataset.

Notes

TotalJobs Group backend: TotalJobs is the flagship brand of Totaljobs Group (StepStone-Xing). CWJobs (IT specialist) and Milkround (graduate specialist) are sister brands using the same underlying job catalog. This actor covers the full inventory, cwjobs-uk-scraper filters to IT-only, and milkround-uk-scraper filters to graduate-only.

Support

Found a bug or have a question? Open an issue on the actor page or email contact@nanoscrape.com. We respond within 24 hours.