TotalJobs Scraper
Pricing
from $0.99 / 1,000 results
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
Maintained by CommunityActor stats
1
Bookmarked
86
Total users
18
Monthly active users
5 days ago
Last modified
Categories
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?
| Field | Type | Description |
|---|---|---|
job_id | String | Totaljobs job identifier. |
harmonised_id | String | Stable harmonised identifier used by Totaljobs. |
title | String | Job title. |
company | String | Hiring company or recruitment agency. |
company_id | Number | Totaljobs company identifier when available. |
location | String | Job location text, including postcode when shown. |
postcode | String | Postcode shown in the listing when available. |
salary | String | Salary or rate text as advertised. |
salary_min | Number | Parsed lower salary value when the salary text contains one. |
salary_max | Number | Parsed upper salary value when the salary text contains one. |
salary_currency | String | Parsed currency such as GBP. |
salary_period | String | Parsed pay period: hour, day, week, month, or year. |
date_posted | String | Human-readable posting age such as 3 days ago. |
date_posted_iso | String | ISO posting timestamp. |
expiry_date_iso | String | ISO expiry timestamp when available. |
published_from_iso | String | ISO publish-from timestamp. |
period_posted_iso | String | ISO period-posted timestamp. |
job_url | String | Direct Totaljobs job listing URL. |
company_url | String | Totaljobs company profile or company jobs URL. |
company_logo | String | Company logo URL when available. |
description_snippet | String | Short description shown in the search result. |
description_text | String | Clean description text from the search result. |
source_search_url | String | Search URL that produced the record. |
source_page | Number | Result page number. |
search_total | Number | Total matching jobs reported by the search page. |
search_page_count | Number | Total result pages reported by the search page. |
search_context | String | Search result context reported by Totaljobs. |
position_on_page | Number | Position of the listing on the result page. |
position_absolute | Number | Absolute listing position from the search data. |
fingerprint_count | Number | Fingerprint count from the search data. |
job_posting_sequence | Number | Job posting sequence from the search data. |
is_featured | Boolean | Whether the listing is marked featured. |
is_premium | Boolean | Whether the listing is marked premium. |
is_new | Boolean | Whether the listing is marked new. |
is_sponsored | Boolean | Whether the listing is marked sponsored. |
is_highlighted | Boolean | Whether the listing is highlighted. |
is_top_job | Boolean | Whether the listing is marked as a top job. |
is_anonymous | Boolean | Whether the employer is anonymous. |
is_traffic_from_partner | Boolean | Whether the listing traffic comes from a partner site. |
is_backfilled | Boolean | Whether the listing is backfilled. |
is_cross_posted | Boolean | Whether the listing is cross-posted. |
is_partnership_job | Boolean | Whether the listing is a partnership job. |
show_partnership_label | Boolean | Whether a partnership label is shown. |
partner_source | String | Partner source name when available. |
work_from_home | String | Work-from-home detail when the listing provides one. |
skills | Array | Skills attached to the listing when available. |
labels | Array | Listing labels from the search result. |
top_labels | Array | Top labels from the search result. |
unified_salary | Object | Unified salary data when Totaljobs provides it. |
unified_travel_time | Object | Unified travel-time data when available. |
travel_time | Object | Travel-time data when available. |
cv_to_job_score | Number | Candidate-to-job score when available. |
section | String | Result section assigned by Totaljobs. |
How to use Totaljobs Scraper
- Open the Actor in Apify Console.
- Enter a keyword such as
admin,software engineer, ordata analyst. - Optionally add a UK location such as London, Manchester, or Leeds.
- Set the maximum number of jobs and an optional posting-age filter.
- 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
keyword | String | No | admin | Job title, skill, or search phrase. |
location | String | No | - | UK location to narrow the search. Leave empty for broad UK results. |
startUrl | String | No | - | Totaljobs search URL to use instead of keyword and location. |
url | String | No | - | Alias for startUrl for workflows that already provide a search URL. |
postedWithin | String | No | - | Keep jobs posted in the last 1, 3, 7, 14, or 30 days. |
results_wanted | Integer | No | 20 | Maximum number of jobs to save. |
max_pages | Integer | No | 5 | Maximum search result pages to process. |
proxyConfiguration | Object | No | Apify residential proxy | Proxy 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
Basic keyword search
Collect 20 admin jobs from across the UK:
{"keyword": "admin","results_wanted": 20}
Keyword and location search
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, orwarehouse operative. - Add a location when you need a regional dataset. Leave it empty for broad UK coverage.
- Keep test runs small. Start with
20results before increasing the limit. - Use
postedWithinwhen you need fresh listings. The Actor filters results by posting date and may need more pages to reach the requested count. - Increase
max_pagesfor 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
Legal Notice
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.