# JobServe Jobs Scraper (no cookies required) (`fetchclub/jobserve-jobs-scraper`) Actor

Actively Maintained - Jobs Scraper to extract job listings using keywords and filters from jobserve.com, gathering all details for each role. Works for all countries. Export results for analysis, connect via API or Python & integrate with other apps. Save hours searching. Unofficial JobServe API.

- **URL**: https://apify.com/fetchclub/jobserve-jobs-scraper.md
- **Developed by:** [FetchClub](https://apify.com/fetchclub) (community)
- **Categories:** Jobs, Automation, Developer tools
- **Stats:** 73 total users, 1 monthly users, 100.0% runs succeeded, 8 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🔥 - JobServe Jobs Scraper Apify Actor

<a href="https://ibb.co/K9QnjNR">
  <img src="https://i.ibb.co/FBfpbsN/jobserve-jobs-scraper-available-on-apify.jpg" alt="Scrape Jobs from JobServe with the Apify JobServe Scraper" border="0" style="width:100%; height:auto;" />
</a>

<br>
<br>

Effortlessly extract new job listings from the JobServe website to
expedite your search for your ideal role. Use keywords and all available
filters to refine your search. Gather essential details for each
position, including titles, descriptions, metadata, company information,
and contact details. Easily export the data into an analysis-ready
format, connect with the actor via API or Python, and integrate with
other applications to streamline your job search process. Suitable for
roles in the United States, United Kingdom, Canada, most European countries,
amongst others, covering all countries available on the website and saving you hours of searching.

No JobServe login or cookies are required.

<br>

### ❓ - What is the JobServe Jobs Scraper Used For?

We designed the JobServe Jobs Scraper to simplify the process of
downloading relevant job listings that match your search criteria from
JobServe.com. As a global job board, JobServe offers a robust
jobs-by-email service and a smart matching engine, providing
high-quality, genuine job listings across nearly all industry sectors.
With this tool, you can save hours of manual searching and quickly find
the latest roles that interest you. It's like having your own personal
JobServe API.

<br>

<a href="https://ibb.co/HBq1dcB">
  <img src="https://i.ibb.co/mb418nb/example-jobs-from-the-the-jobserve-website.png" alt="Easily scrape relevant Jobs from the JobServe website using the Apify JobServe Jobs Scraper" border="0" style="width:75%; height:auto;" />
</a>

<br>
<br>

### 🔨 - How to Use the JobServe Jobs Scraper

Using the JobServe Jobs Scraper is as straightforward as using the
JobServe website. The options from the "Power Search" filters
are replicated in the actor, allowing you to obtain precise results.

Start by entering the keyword you're interested in, then select the
country you're targeting for job roles. The remaining filter options
are optional, allowing you to refine your search as much or as little as
you prefer. Once you've set up your filters, simply click "Start" (or
"Save & Start").

The actor will return the results from the JobServe website, which you
can download in JSON, CSV, XML, Excel, HTML Table, RSS & JSONL.

<br>

### 🔢 - How Many Results Can the JobServe Scraper Collect?

You can scrape up to 2000 roles in one go with the JobServe scraper,
covering most scenarios you will face. If you want to scrape more than
2000 roles, you can split your jobs into multiple tasks, refining the
search criteria with the filters provided. You also can limit the number
of results that are scraped to a maximum number using the optional 'Max
Results' option on the input page.

For example, it takes around 2 minutes and 30 seconds to return 50
results from the JobServe website using this scraper.

<br>

### 💰 - What's the Cost of Using the JobServe Scraper?

$3.00 per 1,000 job listings

<br>

### 💎 - What Data Can the JobServe Jobs Scraper Extract?

The JobServe Jobs Scraper can extract all essential information and
meta-data for each role for your filter criteria. Below is an example of
the type of information collected, along with a short description of
what this shows.

| Field Name            | Field Description                                                                                                                |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
|   title               | Specifies the job title, e.g., 'Social Media Manager.'                                                                           |
|   location            | Shows the geographical location of the role, e.g., 'London, UK.'                                                                 |
|   industry            | Describes the industry of the role, such as 'IT' or 'Military.'                                                                  |
|   category            | Indicates if the role belongs to a special category, such as 'Bilingual,' 'Executive,' 'Graduate,' or 'Public Sector.'           |
|   start_date          | If provided, it indicates the start date of the role.                                                                            |
|   duration            | Specifies the job duration, mainly for contract roles rather than permanent ones.                                                |
|   employment_type     | Defines the employement type for the role, such as 'Permanent' or 'Contract.'                                                    |
|   description_text    | It contains the job description and details the specific requirements for the role in text format.                               |
|   description_html    | It contains the job description and details the specific requirements for the role, leaving the HTML formatting around the text. |
|   salary_range        | Information about the pay rate for the job, if provided on the JobServe website.                                                 |
|   salary_range_detail | It often includes details about the salary for the role, if available.                                                           |
|   visa_requirements   | Provides details on any visa requirements for the role, including information on sponsorship availability.                       |
|   posted_by           | The name of the company posting the role.                                                                                        |
|   posted_date         | The date the role was posted, formatted as 'Tuesday, 30 July 2024.'                                                              |
|   posted_date_time    | When the role was posted, the timestamp was formatted as '30/07/2024 11:35:23.'                                                  |
|   job_reference       | The reference number for the role is on the JobServe website.                                                                    |
|   job_link            | The unique short URL generated by JobServe for easy sharing of the role.                                                         |
|   company_name        | Company name.                                                                                                                    |
|   company_type        | Company type e.g. employment agency, company.                                                                                    |
|   company_logo        | Company logo.                                                                                                                    |
|   company_profile     | A link to the JobServe recruitment company page for the recruiter allows users to view other roles posted by the company.        |
|   recruiter_name      | Contains the name of the responsible recruiter or the company, if available.                                                     |
|   recruiter_telephone | The telephone number provided by the recruiter for the specific role.                                                            |
|   recruiter_fax       | Provides the JobServe fax number associated with the contact.                                                                    |
|   recruiter_email     | Provides the JobServe email address for the listed contact.                                                                      |

<br>

### 🪜 - How to Use the JobServe Jobs Scraper on Apify

The JobServe Jobs Scraper is designed for ease of use. Simply follow
these steps to get started and download relevant job data:

1. Create a free Apify account.

2. Open the JobServe Jobs Scraper.

3. Add your keywords and optional filters from the dropdown menus.

4. Click "Start" and wait for the scrape to complete.

5. Choose how to export your JobServe Jobs data.

<br>

<a href="https://ibb.co/DKmSFth">
  <img src="https://i.ibb.co/tCnW64g/example-results-from-the-jobserve-job-scraper-on-apify.png" alt="Download the results of your JobServe scrape into ready to analyse format" border="0" style="width:75%; height:auto;" />
</a>

<br>
<br>

### ⬇️ - Example Input for the JobServe Jobs Scraper

Below is a sample JSON input for the JobServe scraper. This input is
configured to return permanent job listings for Accountants in the UK,
posted within the past three days and meeting additional specified
criteria. You can utilise all the filters available in the Power Search
option on the JobServe website. You can set up your filters using the
JSON input or easily select your options from the dropdown lists in the
Apify visual interface.

```
{
 "website_country": "United Kingdom",
 "search_countries": ["Italy"],
 "keywords": "Accountant",
 "location": "London, Milan",
 "distance": "Within 50 miles",
 "remote_working": false,
 "industries": ["Select All"],
 "date_posted": "Within 3 days",
 "job_type": "Any",
 "job_title": "",
 "salary_rate": ["Select All"],
 "visa_eligibility": ["Any"],
 "category": ["Any"],
 "advertised_by": "Any Advertiser",
 "max_results": 1000,
 "proxy_group": "DATACENTER"
}
```

<br>

### ⬆️ - Example Output for the JobServe Jobs Scraper

Below are two sample records in JSON format for the input detailed
above. Each field has been captured, as provided on the JobServe
website. You have multiple data download options, including JSON, CSV,
XML, Excel, RSS, and JSONL. The flat structure of the JSON format makes
it easy to work with and parse for use in your workflows.

```
[
 {
    "title": "Financial Accountant",
    "location_salary": "Chiswick - £35k - 40k per annum",
    "job_type": "Permanent",
    "posted_by": "Ventula Consulting",
    "posted_date": "Monday, 5 August 2024",
    "visa_requirements": null,
    "skills_text": "Financial Accountant - Chiswick - Spanish Speaking\n \nFinancial Accountant is now required by a global blue chip healthcare company, to work closely with their Accounting director across their global portfolio of businesses within the healthcare sector.\n \nThe financial accountant will take responsibility for month end procedures and general ledger functions as-well as being the primary contact for specific international markets and build relations between the UK HQ and their South American accounting team.\n \nThe Financial accountant will also participate in special accounting projects and support the managers were directed and be able to collaborate with other departments to establish and improve processes.\n \nThe successful Financial Accountant will have:\nPart qualified ACCA/CIMA/ACA\nAccountant experience\nGeneral knowledge of SOX, US GAAP, IFRS and accounting procedures.\nFluent in Spanish is essential\nStrong Excel skills\nEducated to degree level within finance, accounting, or numeric degree\n \nThe Overview:\nUp to £40,000 per annum depending on experience\nFulltime permanent position\nHybrid working: 3/4 days in office\nChiswick based",
    "location": "Chiswick, UK",
    "industry": "Finance",
    "category": null,
    "duration": null,
    "start_date": "ASAP",
    "rate": "£35k - 40k per annum",
    "recruiter": "Ventula Consulting",
    "contact": "Lucinda Tilbury",
    "telephone": "0203757 0370",
    "fax": null,
    "email": null,
    "ref": "JSBH-4071",
    "posted_date_time": "2024-08-05 8:41:20 AM",
    "permalink": "http://www.jobserve.com/Z6YyZ",
    "recruiter_link":"https://jobserve.com/gb/en/Redirect/DirectoryUrl.jsrs?id=3282E60634&L=%2fgb%2fen%2fListings%2fRecruiters%2fVentula-Consulting%2f%3flid%3d3282E60634",
    "skills_html": "<div class=\"md_skills\" id=\"md_skills\"><strong>Financial Accountant - Chiswick - Spanish Speaking</strong><br/> <br/>Financial Accountant is now required by a global blue chip healthcare company, to work closely with their Accounting director across their global portfolio of businesses within the healthcare sector.<br/> <br/>The financial accountant will take responsibility for month end procedures and general ledger functions as-well as being the primary contact for specific international markets and build relations between the UK HQ and their South American accounting team.<br/> <br/>The Financial accountant will also participate in special accounting projects and support the managers were directed and be able to collaborate with other departments to establish and improve processes.<br/> <br/><strong>The successful Financial Accountant will have:</strong><br/><ul><li>Part qualified ACCA/CIMA/ACA</li><li>Accountant experience</li><li>General knowledge of SOX, US GAAP, IFRS and accounting procedures.</li><li>Fluent in Spanish is essential</li><li>Strong Excel skills</li><li>Educated to degree level within finance, accounting, or numeric degree</li></ul> <br/><strong>The Overview:</strong><br/><ul><li>Up to £40,000 per annum depending on experience</li><li>Fulltime permanent position</li><li>Hybrid working: 3/4 days in office</li><li>Chiswick based</li></ul><img src=\"https://www.jobserve.com/gb/en/trk-job/3FFBE58510F0D099F3FB8A021A9C86A88C5A7E924E1C86C2C14CD7BC1124CCC1B1CA432C81A25EA0BFEDE3291D16190426.png\"/></div>"
    },
    {
    "title": "Assistant Accountant",
    "location_salary": "London - £30k - £36k per annum",
    "job_type": "Permanent",
    "posted_by": "IO Associates",
    "posted_date": "Monday, 5 August 2024",
    "visa_requirements": null,
    "skills_text": "Assistant Accountant\nSalary: £30,000 - £36,000 pa\n \nLocation: London (Hybrid)\nFinitas are working with this leading private equity firm focused on Central and Eastern Europe, investing in growth-oriented companies across various sectors.\n \n \nRequirements:\nPart qualified Accountant.\nAdvanced skills in Sage and Excel.\nResponsibilities:\nApprove and pay weekly invoices\nAssist in monthly management accounts, including bank reconciliation, prepayments, and accruals\nReview costs against budget and subsidiary management accounts\nManage monthly payroll and pension submissions\nSupport cash management, projections, and employee expenses\nComplete VAT returns and assist with annual budget, reforecast, and board packs\nSupport external auditors for year-end statutory accounts\n As per the above, this role will be up to 3 days onsite.\nIf you are interested, please apply immediately as first stage interviews will be taking place immediately.\nAlternatively, feel free to reach me directly.",
    "location": "London, UK",
    "industry": "Finance",
    "category": null,
    "duration": null,
    "start_date": null,
    "rate": "£30k - £36k per annum",
    "recruiter": "IO Associates",
    "contact": "Harleen Barmi",
    "telephone": "+1 813 798 2140",
    "fax": null,
    "email": null,
    "ref": "JS-BBBH143437",
    "posted_date_time": "05/08/2024 10:57:19",
    "permalink": "http://www.jobserve.com/Z6ULV",
    "recruiter_link":"https://jobserve.com/gb/en/Redirect/DirectoryUrl.jsrs?id=6886394DC0&L=%2fgb%2fen%2fListings%2fRecruiters%2fPrecision-Resource-Group%2f%3flid%3d6886394DC0",
    "skills_html": "<div class=\"md_skills\" id=\"md_skills\"><p><strong>Assistant Accountant</strong></p><p><strong>Salary: £30,000 - £36,000 pa</strong><br/> <strong>Location: London (Hybrid)</strong></p><p>Finitas are working with this leading private equity firm focused on Central and Eastern Europe, investing in growth-oriented companies across various sectors.<br/> <br/> <strong>Requirements:</strong></p><ul><li>Part qualified Accountant.</li><li>Advanced skills in Sage and Excel.</li></ul><p><strong>Responsibilities:</strong></p><ul><li>Approve and pay weekly invoices</li><li>Assist in monthly management accounts, including bank reconciliation, prepayments, and accruals</li><li>Review costs against budget and subsidiary management accounts</li><li>Manage monthly payroll and pension submissions</li><li>Support cash management, projections, and employee expenses</li><li>Complete VAT returns and assist with annual budget, reforecast, and board packs</li><li>Support external auditors for year-end statutory accounts</li></ul><p> As per the above, this role will be up to 3 days onsite.</p><p>If you are interested, please apply immediately as first stage interviews will be taking place immediately.</p><p>Alternatively, feel free to reach me directly.</p><img src=\"https://www.jobserve.com/gb/en/trk-job/4AAB833FCF6F34A9F35BDAC309F52050EDA323B174CE05A3E5B6402D013E854778F942BEAFA47DC3ECC71E88862464DB1F8F.png\"/></div>"
  }
]
```

<br>

### 👋 - Support is Available for the JobServe Jobs Scraper

If you encounter any issues while using the actor or have questions
about its functionality, you can quickly raise an issue and expect a
prompt response. We proactively test this actor to ensure stability,
making it reliable and user-friendly. Rest assured, we understand the
value of your investment and are committed to providing a service that
meets your expectations.

<br>

### 📝 - Helpful Notes for the JobServe Scraper

When using this scraper, you can expect the number of results to match the
JobServe website 90% of the time for a given filter criteria. Occasionally,
JobServe may include a few duplicate IDs in their total count, which the scraper
will ignore to provide a clean list of roles. As a result, there might be a slight
discrepancy of 4 or 5 roles in a few hundred results. If you notice a significant
difference or believe some results are missing, please contact us, and we will
promptly address the issue.

<br>

### 👍 - Is it Legal to Scrape the JobServe Website?

Our web scrapers operate ethically, ensuring they do not collect private
user data such as personal email addresses, gender, or an individual's
location. They only gather information that users have explicitly shared
publicly. We believe that when users employ our scrapers for ethical
purposes, they are a safe tool. However, please note that your results
may still contain personal data. Such data is protected under the GDPR
in the European Union and similar regulations globally. You should avoid
scraping personal data unless you have a legitimate reason. If you're
uncertain about the legitimacy of your reason, we recommend consulting
legal counsel. For more information, you can also [read the blog post
Apify wrote on the legality of web
scraping](https://blog.apify.com/is-web-scraping-legal/).

# Actor input Schema

## `website_country` (type: `string`):

Select the Website Country. For example to search for jobs in New York, USA only, set the Website Country to USA and leve Country/Regtion unset. Enter New York surrounded by double quotes into the location input field.

## `search_countries` (type: `array`):

Select additional Regions and/or Countries to include in the job search. Jobs from these countries will be included in the search results in addition to jobs from the website country.

## `keywords` (type: `string`):

Keywords

## `location` (type: `string`):

Location(s)

## `distance` (type: `string`):

Select the Search Distance

## `remote_working` (type: `boolean`):

Show only jobs with remote working

## `industries` (type: `array`):

Select Industries

## `date_posted` (type: `string`):

Select when the job was posted

## `job_type` (type: `string`):

Select the Job Type - Any, Permanent, Contract, Contract/Permanent or Part Time/Temporary/Seasonal

## `job_title` (type: `string`):

Select the Job Title

## `salary_rate` (type: `array`):

Select the Salary/Rate

## `visa_eligibility` (type: `array`):

Select Visa Eligibility

## `category` (type: `array`):

Select Category

## `advertised_by` (type: `string`):

Select - Any Advertiser, Recruiter/Agency, Direct Employer

## `max_results` (type: `integer`):

Select the number of maximum results to scrape.

## `proxy_group` (type: `string`):

Select the Apify Proxy Group to use for the scrape

## Actor input object example

```json
{
  "website_country": "United Kingdom",
  "keywords": "Social Media",
  "location": "London, Edinburgh",
  "distance": "Within 50 miles",
  "remote_working": false,
  "industries": [
    "Select All"
  ],
  "date_posted": "Within 7 days",
  "job_type": "Any",
  "job_title": "",
  "salary_rate": [
    "Select All"
  ],
  "visa_eligibility": [
    "Any"
  ],
  "category": [
    "Any"
  ],
  "advertised_by": "Any Advertiser",
  "max_results": 10,
  "proxy_group": "DATACENTER"
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": "Social Media",
    "location": "London, Edinburgh"
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetchclub/jobserve-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": "Social Media",
    "location": "London, Edinburgh",
}

# Run the Actor and wait for it to finish
run = client.actor("fetchclub/jobserve-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": "Social Media",
  "location": "London, Edinburgh"
}' |
apify call fetchclub/jobserve-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fetchclub/jobserve-jobs-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/N2ZNj4h4QR8uNYFxi/builds/oeUELuGWCbbEPcAe3/openapi.json
