TotalJobs Scraper avatar

TotalJobs Scraper

Pricing

from $0.99 / 1,000 results

Go to Apify Store
TotalJobs Scraper

TotalJobs Scraper

Introducing the Total Jobs Scraper, a lightweight actor designed to efficiently extract job listings from Total Jobs. Fast and user-friendly. For optimal performance and to ensure reliable data collection, the use of residential proxies is strongly recommended. Start gathering job data today!

Pricing

from $0.99 / 1,000 results

Rating

5.0

(3)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

1

Bookmarked

86

Total users

18

Monthly active users

5 days ago

Last modified

Share

What does Totaljobs Scraper do?

Totaljobs Scraper collects live UK job listings from Totaljobs.com and saves them as structured records. Search by job title, skill, or UK location, or paste a Totaljobs search URL you already use. Each record includes the job title, company, location, salary text, parsed salary range, posting and expiry dates, direct job URL, company profile link, logo, listing description, result position, search totals, and listing metadata.

The Actor is built for recruiting research, salary benchmarking, hiring demand monitoring, lead generation, and job market analysis. It reads the listing data from each search results page and does not open individual job adverts. That keeps runs fast, light, and focused on the fields that are available at listing level.

Why use Totaljobs Scraper?

  • Fast listing collection - Collect search result data without opening every job advert.
  • Rich listing fields - Keep salary text and parsed salary values, posting and expiry timestamps, company data, labels, result position, search totals, and listing metadata.
  • Consistent UK job data - Collect current vacancies across roles, sectors, and locations without manual copy-paste.
  • Reliable result collection - Collect multiple result pages until your requested number of jobs is reached.
  • Flexible searches - Start from a keyword and location, or use an exact Totaljobs search URL with the filters you already selected.
  • Clean datasets - Duplicate listings are skipped, empty values are removed, and results are saved page by page so partial progress is preserved.
  • Apify platform features - Schedule repeat runs, use proxy settings, export datasets, and trigger webhooks or no-code automations.

What data can you extract from Totaljobs?

FieldTypeDescription
job_idStringTotaljobs job identifier.
harmonised_idStringStable harmonised identifier used by Totaljobs.
titleStringJob title.
companyStringHiring company or recruitment agency.
company_idNumberTotaljobs company identifier when available.
locationStringJob location text, including postcode when shown.
postcodeStringPostcode shown in the listing when available.
salaryStringSalary or rate text as advertised.
salary_minNumberParsed lower salary value when the salary text contains one.
salary_maxNumberParsed upper salary value when the salary text contains one.
salary_currencyStringParsed currency such as GBP.
salary_periodStringParsed pay period: hour, day, week, month, or year.
date_postedStringHuman-readable posting age such as 3 days ago.
date_posted_isoStringISO posting timestamp.
expiry_date_isoStringISO expiry timestamp when available.
published_from_isoStringISO publish-from timestamp.
period_posted_isoStringISO period-posted timestamp.
job_urlStringDirect Totaljobs job listing URL.
company_urlStringTotaljobs company profile or company jobs URL.
company_logoStringCompany logo URL when available.
description_snippetStringShort description shown in the search result.
description_textStringClean description text from the search result.
source_search_urlStringSearch URL that produced the record.
source_pageNumberResult page number.
search_totalNumberTotal matching jobs reported by the search page.
search_page_countNumberTotal result pages reported by the search page.
search_contextStringSearch result context reported by Totaljobs.
position_on_pageNumberPosition of the listing on the result page.
position_absoluteNumberAbsolute listing position from the search data.
fingerprint_countNumberFingerprint count from the search data.
job_posting_sequenceNumberJob posting sequence from the search data.
is_featuredBooleanWhether the listing is marked featured.
is_premiumBooleanWhether the listing is marked premium.
is_newBooleanWhether the listing is marked new.
is_sponsoredBooleanWhether the listing is marked sponsored.
is_highlightedBooleanWhether the listing is highlighted.
is_top_jobBooleanWhether the listing is marked as a top job.
is_anonymousBooleanWhether the employer is anonymous.
is_traffic_from_partnerBooleanWhether the listing traffic comes from a partner site.
is_backfilledBooleanWhether the listing is backfilled.
is_cross_postedBooleanWhether the listing is cross-posted.
is_partnership_jobBooleanWhether the listing is a partnership job.
show_partnership_labelBooleanWhether a partnership label is shown.
partner_sourceStringPartner source name when available.
work_from_homeStringWork-from-home detail when the listing provides one.
skillsArraySkills attached to the listing when available.
labelsArrayListing labels from the search result.
top_labelsArrayTop labels from the search result.
unified_salaryObjectUnified salary data when Totaljobs provides it.
unified_travel_timeObjectUnified travel-time data when available.
travel_timeObjectTravel-time data when available.
cv_to_job_scoreNumberCandidate-to-job score when available.
sectionStringResult section assigned by Totaljobs.

How to use Totaljobs Scraper

  1. Open the Actor in Apify Console.
  2. Enter a keyword such as admin, software engineer, or data analyst.
  3. Optionally add a UK location such as London, Manchester, or Leeds.
  4. Set the maximum number of jobs and an optional posting-age filter.
  5. Run the Actor and download the dataset, or connect it to your workflow.

If you already have a filtered Totaljobs search URL, paste it into startUrl and leave the keyword and location fields empty. The URL replaces the keyword and location search.

Input Parameters

ParameterTypeRequiredDefaultDescription
keywordStringNoadminJob title, skill, or search phrase.
locationStringNo-UK location to narrow the search. Leave empty for broad UK results.
startUrlStringNo-Totaljobs search URL to use instead of keyword and location.
urlStringNo-Alias for startUrl for workflows that already provide a search URL.
postedWithinStringNo-Keep jobs posted in the last 1, 3, 7, 14, or 30 days.
results_wantedIntegerNo20Maximum number of jobs to save.
max_pagesIntegerNo5Maximum search result pages to process.
proxyConfigurationObjectNoApify residential proxyProxy settings for reliable access. Totaljobs blocks many datacenter IPs.

The Actor uses keyword and location only when no valid Totaljobs URL is supplied. A supplied URL wins over the other search fields.

Usage Examples

Collect 20 admin jobs from across the UK:

{
"keyword": "admin",
"results_wanted": 20
}

Collect software engineer jobs in London:

{
"keyword": "software engineer",
"location": "London",
"results_wanted": 50,
"max_pages": 3
}

Custom Totaljobs search URL

Use a search URL with the filters already applied:

{
"startUrl": "https://www.totaljobs.com/jobs/data-analyst/in-manchester",
"results_wanted": 40,
"max_pages": 2
}

Recent jobs only

Keep only jobs posted in the last seven days:

{
"keyword": "warehouse operative",
"location": "Birmingham",
"postedWithin": "7",
"results_wanted": 30,
"max_pages": 4
}

Sample Output

{
"job_id": "108074354",
"harmonised_id": "6a9f2467-ada0-46ae-9f7e-3cfd368ae1f6",
"title": "Admin",
"company": "Job&Talent",
"company_id": 236510,
"location": "Chesterfield (S43), S43 3FG",
"salary": "Up to £13.80 per hour",
"salary_max": 13.8,
"salary_currency": "GBP",
"salary_period": "hour",
"date_posted": "17 days ago",
"date_posted_iso": "2026-10-02T13:12:49.617Z",
"expiry_date_iso": "2026-10-30T14:12:49.617Z",
"published_from_iso": "2026-10-02T13:12:49.617Z",
"period_posted_iso": "2026-10-02T13:12:49.617Z",
"job_url": "https://www.totaljobs.com/job/admin/job-talent-job108074354",
"company_url": "https://www.totaljobs.com/jobs/job%26talent?cmpId=236510&cmp=1",
"company_logo": "https://tjgliveassets.s3.eu-west-1.amazonaws.com/company-logos/68d5d7065d9743f687c6e38ba0d15a87.png",
"description_snippet": "Job&Talent is recruiting for a leading transport and logistics company in Chesterfield. They're hiring an admin staff member to coordinate daily transport activities, maintain records and communicate with drivers and customers.",
"description_text": "Job&Talent is recruiting for a leading transport and logistics company in Chesterfield. They're hiring an admin staff member to coordinate daily transport activities, maintain records and communicate with drivers and customers.",
"source_search_url": "https://www.totaljobs.com/jobs/admin",
"source_page": 1,
"search_total": 2660,
"search_page_count": 107,
"search_context": "seoRL",
"position_on_page": 1,
"position_absolute": 1,
"fingerprint_count": 0,
"job_posting_sequence": 0,
"is_featured": false,
"is_premium": false,
"is_new": false,
"is_sponsored": false,
"is_highlighted": false,
"is_top_job": false,
"is_anonymous": false,
"is_traffic_from_partner": false,
"is_backfilled": false,
"is_cross_posted": false,
"is_partnership_job": false,
"show_partnership_label": false,
"section": "main"
}

Tips for Best Results

  • Use role names that appear in real job adverts, such as data analyst, finance manager, or warehouse operative.
  • Add a location when you need a regional dataset. Leave it empty for broad UK coverage.
  • Keep test runs small. Start with 20 results before increasing the limit.
  • Use postedWithin when you need fresh listings. The Actor filters results by posting date and may need more pages to reach the requested count.
  • Increase max_pages for broad searches or when using a narrow date filter.
  • Keep the default residential proxy setting for reliable access. Direct requests from many datacenter IPs are rejected by Totaljobs. UK residential IPs are the most consistent, but other residential locations can also work.
  • Some listings do not publish salary, company logo, skills, labels, or an expiry date. Those fields are omitted instead of being saved as empty strings.

Integrations

  • Google Sheets - Review, filter, and share job datasets in spreadsheets.
  • Airtable - Build a searchable job or employer database.
  • Webhooks - Send new results to your own systems after each run.
  • Make - Build automated job monitoring workflows.
  • Zapier - Trigger notifications, CRM updates, or recruiting pipelines.
  • Apify API - Access datasets from your own applications and AI agents.

Export formats

  • JSON - For applications, data pipelines, and AI workflows.
  • CSV - For spreadsheet analysis.
  • Excel - For business reporting.
  • XML - For system integrations.

Frequently Asked Questions

Does the Actor visit each job advert?

No. The Actor reads the data provided by each Totaljobs search results page. It does not open individual job pages, which keeps runs fast and reduces load.

Can I collect full job descriptions?

No. The Actor saves the listing description text shown in the search results, not the complete advert body. This is intentional for speed and listing-level coverage. The description_snippet and description_text fields contain the available listing text.

Can I scrape a specific Totaljobs search URL?

Yes. Add the search page to startUrl. The Actor uses that URL instead of building a search from keyword and location. If both are supplied, the URL wins.

How many jobs can I collect?

Set results_wanted to the number of records you need. The Actor stops when it reaches that target, reaches the last result page, or reaches max_pages.

Does the Actor remove duplicates?

Yes. Listings are deduplicated by job identifier or job URL before they are saved.

Why are some salary fields missing?

Some Totaljobs listings do not advertise a salary, or use text that cannot be parsed into a numeric range. The original salary text is still saved when it exists.

Why do I need a residential proxy?

Totaljobs rejects many datacenter IP addresses. A residential proxy gives the run a real network identity and improves reliability. UK residential IPs are the most consistent, but residential proxies from other countries can also work. The Actor automatically uses a fallback data route when a direct request is blocked.

Can I schedule repeat runs?

Yes. Use Apify schedules to run the Actor hourly, daily, weekly, or at another interval. Each run creates a new dataset.

Can I use the data in my own application?

Yes. Use the Apify API, webhooks, or dataset exports to connect the results to your own systems.

Support

For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.

Resources

This Actor is designed for legitimate collection of publicly available job data. Users are responsible for complying with Totaljobs.com terms of service, applicable data protection laws, and any other rules that apply to their use of the data. Use collected data responsibly.