Caterer.com Scraper – UK Hospitality Jobs, Salaries & Details
Pricing
from $1.00 / 1,000 job results
Caterer.com Scraper – UK Hospitality Jobs, Salaries & Details
Scrape UK hospitality jobs from Caterer.com, including chef, hotel, restaurant, bar, and events roles. Search by keyword, location, filters, or URLs. Returns salary, employer, logo, location, skills, and 35+ fields, with optional full description, GPS, and company profile.
Pricing
from $1.00 / 1,000 job results
Rating
0.0
(0)
Developer
AbotAPI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Caterer.com Hospitality Jobs Scraper
Scrape UK hospitality jobs from Caterer.com at scale: chef, restaurant, hotel, bar, and events roles. Search by keyword, location, and filters, or paste search URLs to paginate. Every job comes back with 35+ structured fields straight from the listing, and an optional detail pass adds the full description, GPS coordinates, structured address, employment type, valid-through date, and company profile.
Why this scraper
- 35+ fields per job from the listing page alone, no detail fetch required: title, parsed salary, employer, logo, location, posting source, skills, snippet, and more.
- Two ways to run: build a search from keyword + location + filters, or paste any Caterer.com search URL and walk it forward.
- Real server-side filters: job type, advertiser type (direct employer vs agency), minimum salary by period (year / day / hour), posted-within window, and sort order.
- Parsed salary: the free-text salary string is split into min, max, currency, and period (year / day / hour), including hourly rates common in hospitality.
- Optional full details: GPS lat/lng, structured address, full description, employment type, valid-through date, and company profile.
- Cost control built in: a residential request budget cap and a single clear result limit so a run never overspends.
- Send results straight into Notion, Linear, Airtable, or Apify via optional MCP connectors.
Data you get
Sample shape, values are illustrative placeholders, not from a live listing.
| Field | Example |
|---|---|
| jobId | 100000001 |
| title | Head Chef |
| jobUrl | https://www.caterer.com/job/head-chef/sample-agency-job100000001 |
| applyUrl | https://www.caterer.com/job/head-chef/sample-agency-job100000001 |
| sourceSite | Caterer.com |
| datePosted | 2026-01-01T00:00:00.000Z |
| employer.name | Sample Restaurant Group |
| employer.logoUrl | https://www.caterer.com/CompanyLogos/00000000000000000000000000000000.png |
| location.text | Soho, Central London (W1) |
| location.postalCode | W1 |
| location.latitude | 51.5000 |
| location.longitude | -0.1300 |
| salary.rawText | From £14 to £18 per hour |
| salary.min | 14 |
| salary.max | 18 |
| salary.currency | GBP |
| salary.period | hour |
| skills | Menu planning, Food safety |
| textSnippet | We are looking for an experienced head chef to lead our kitchen team. |
| isSponsored | false |
| description (detail) | Full job description text appears here when fetchDetails is enabled. |
| employmentType (detail) | FULL_TIME |
| industry (detail) | Catering, Catering-Chef |
| validThrough (detail) | 2026-02-01T00:00:00.000Z |
| location.locality (detail) | Soho |
| location.region (detail) | London |
| location.country (detail) | GB |
How to use
Basic search in one city:
{"mode": "search","locations": ["London"],"keywords": "chef","maxListings": 20,"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "GB" }}
Search with filters (permanent chef roles, at least £30,000/year, posted in the last 7 days, newest first):
{"mode": "search","locations": ["Manchester", "Leeds"],"keywords": "chef","jobType": "permanent","minSalary": 30000,"salaryType": "annual","postedWithin": 7,"sortBy": "date","maxListings": 100,"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "GB" }}
Full details (adds description, GPS, employment type, company profile):
{"mode": "search","locations": ["London"],"keywords": "restaurant manager","fetchDetails": true,"maxListings": 50,"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "GB" }}
Paginate pasted URLs (filter fields are ignored in URL mode):
{"mode": "url","urls": ["https://www.caterer.com/jobs/chef/in-london","https://www.caterer.com/jobs/in-edinburgh"],"maxPages": 5,"maxListings": 200,"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "GB" }}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| mode | string | search | search builds URLs from filters; url paginates URLs you paste. |
| locations | array | ["London"] | Towns, cities, counties, or regions (search mode). One search per location. |
| keywords | string | (empty) | Role, skill, or employer to search for. Empty lists all hospitality jobs in the location. |
| jobType | string | any | any / permanent / contract / temporary / part-time / work-from-home. |
| companyType | string | any | any / employer (direct) / agency. |
| minSalary | integer | (empty) | Lowest salary to include, paired with the salary period. |
| salaryType | string | annual | annual / daily / hourly. |
| postedWithin | string | 0 | 0 (any) / 1 / 3 / 7 / 14 days. |
| sortBy | string | relevance | relevance / date / salary-desc / salary-asc / distance. |
| urls | array | (example) | Caterer.com search URLs to paginate (url mode). |
| fetchDetails | boolean | false | Fetch detail pages to add description, GPS, employment type, valid-through, company profile. |
| maxListings | integer | 20 | Total jobs to collect across all searches. The main limit. 0 = unlimited. |
| maxPages | integer | 0 | Optional page cap per search (25 jobs/page). 0 = no page limit; the run stops at maxListings. |
| maxResidentialRequests | integer | 0 | Safety cap on residential requests per run. 0 = unlimited. |
| proxy | object | Residential GB | Connection settings. |
Output example
Sample shape, values are illustrative placeholders, not from a live listing.
{"rowType": "job","scrapedAt": "2026-01-01T00:00:00.000Z","jobId": 100000001,"jobUrl": "https://www.caterer.com/job/head-chef/sample-agency-job100000001","applyUrl": "https://www.caterer.com/job/head-chef/sample-agency-job100000001","sourceSite": "Caterer.com","title": "Head Chef","datePosted": "2026-01-01T00:00:00.000Z","employer": {"id": 1000000,"name": "Sample Restaurant Group","url": "https://www.caterer.com/jobs/sample-restaurant-group?cmpId=1000000","logoUrl": "https://www.caterer.com/CompanyLogos/00000000000000000000000000000000.png","isAnonymous": false},"location": {"text": "Soho, Central London (W1)","postalCode": "W1","locality": "Soho","region": "London","country": "GB","latitude": 51.5000,"longitude": -0.1300},"salary": { "rawText": "From £14 to £18 per hour", "min": 14, "max": 18, "currency": "GBP", "period": "hour" },"skills": ["Menu planning", "Food safety"],"textSnippet": "We are looking for an experienced head chef to lead our kitchen team.","isSponsored": false,"description": "Full job description text appears here when fetchDetails is enabled.","employmentType": ["FULL_TIME"],"industry": "Catering, Catering-Chef","validThrough": "2026-02-01T00:00:00.000Z","directApply": true,"applyType": "DirectApply","detailFetched": true}
Send results into your apps (MCP connectors)
Optionally pipe results into the apps you already use. Authorize a connector once under Apify, Settings, Integrations, then select it in the input. Set notionParentPageUrl for Notion. Each connector receives a condensed, human-readable summary per item (title plus key fields), not the full JSON; the complete record always stays in the Apify dataset. Supported: Notion, Linear, Airtable, Apify.
Plan requirement
Caterer.com accepts Apify Residential with country GB most reliably, which is the prefilled default. Listing pages occasionally work on Datacenter but are frequently refused, and full job details (fetchDetails) always need Residential GB. Datacenter and non-GB residential are refused on job pages. Apify Residential is available on the Starter plan and above. On the free plan a run may return few or no results; set proxy.apifyProxyGroups to ["RESIDENTIAL"] with apifyProxyCountry "GB" after upgrading.