Jobsplus Malta Job Scraper
Pricing
from $0.99 / 1,000 results
Jobsplus Malta Job Scraper
Scrape job vacancies from Jobsplus Malta (jobsplus.gov.mt). Filters by keyword, industry, and job type. Returns salary ranges, closing dates, work schedule, and full descriptions. No proxy needed.
Pricing
from $0.99 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 minutes ago
Last modified
Categories
Share


Extract job vacancies from Jobsplus — Malta's official public employment service at jobsplus.gov.mt. Filter by keyword, industry, employment type, or vacancy reference. Returns structured data including salary ranges, closing dates, work schedule, and full job descriptions.
Features
- Full vacancy catalogue — access all ~2,300+ active vacancies on the platform
- Salary data — minimum and maximum amounts with currency and period (e.g. €994 – €1,000 / month)
- Closing date — application deadline in ISO format
- Work schedule — shift, normal, and other schedule types
- Keyword search — filter by job title or description keywords
- Industry filter — narrow results to a specific sector using industry codes
- Employment type filter — Full Time, Part Time, Casual, Reduced Hours, Summer Work
- Vacancy reference lookup — fetch a specific vacancy by its reference number
- Start URLs — scrape a list of specific vacancy detail pages
- No account required — all publicly listed vacancies are accessible without registration
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
keyword | string | "" | Search keyword (e.g. chef, nurse, driver) |
industry | integer | 0 | Industry code — 0 for all. See industry codes below. |
jobType | string | all | Employment type: all, fullTime, partTime, reducedHours, summerWork, casual |
vacancyRef | string | "" | Specific vacancy reference number |
closesOn | string | "" | Return vacancies closing on or before this date (DD/MM/YYYY) |
maxItems | integer | 0 | Maximum vacancies to return. 0 = no limit. |
fetchDetails | boolean | true | Fetch the detail page to obtain salary, work schedule, and closing date |
startUrls | array | [] | Specific vacancy URLs to scrape |
Industry codes (selection)
| Code | Industry |
|---|---|
0 | All industries |
613 | Computer programming activities |
614 | Computer consultancy activities |
619 | Data processing and hosting |
402 | Development of building projects |
763 | Dental practice activities |
702 | Employment placement agencies |
667 | Engineering activities |
584 | Event catering |
583 | Full-service restaurants |
580 | Hotels and similar accommodation |
764 | Medical practice activities |
771 | Nursing care activities |
739 | Police activities |
479 | Retail trade via internet |
For the full list of available industry codes, run the scraper once without an industry filter and inspect the values returned.
Output
Each vacancy is returned as one row with the following fields:
Always present
| Field | Type | Description |
|---|---|---|
id | string | Vacancy reference number |
url | string | Direct link to the vacancy detail page |
title | string | Job title |
company | null | Not publicly available without a registered account |
jobType | string | Employment type (FULL TIME, PART TIME, CASUAL, REDUCED HOURS, SUMMER WORK) |
location | string | Full location string (e.g. TAS-SLIEMA, MALTA) |
city | string | City name |
country | string | Always Malta |
countryCode | string | Always MT |
isRepost | boolean | Always false — site does not expose repost information |
publishDate | null | Publication date not provided by the site |
scrapedAt | string | ISO 8601 scrape timestamp |
Present when fetchDetails: true (default)
| Field | Type | Description |
|---|---|---|
salaryMin | number | null | Minimum salary amount |
salaryMax | number | null | Maximum salary amount |
salaryCurrency | string | null | Currency code (typically EUR) |
salaryPeriod | string | null | Period: HOUR, DAY, WEEK, MONTH, or YEAR |
salaryText | string | null | Raw salary string as shown on the site |
workSchedule | string | null | Work schedule type (e.g. SHIFT, NORMAL) |
closingDate | string | null | Application deadline in YYYY-MM-DD format |
descriptionText | string | null | Full job description as plain text |
Example output
{"id": "443249","url": "https://jobsplus.gov.mt/vacancy/vacancy-details?id=443249","title": "CHEF","company": null,"jobType": "FULL TIME","location": "TAS-SLIEMA, MALTA","city": "TAS-SLIEMA","country": "Malta","countryCode": "MT","salaryMin": 994.57,"salaryMax": 1000.00,"salaryCurrency": "EUR","salaryPeriod": "MONTH","salaryText": "€994.57 - €1,000.00 month","workSchedule": "SHIFT","closingDate": "2026-05-22","publishDate": null,"descriptionText": "Responsible for preparing and cooking high-quality meals, designing menus, managing kitchen operations, and ensuring food safety and hygiene standards.","isRepost": false,"scrapedAt": "2026-04-24T12:00:00.000Z"}
Usage examples
Get all IT vacancies:
{ "industry": 613 }
Get all part-time vacancies with keyword:
{ "keyword": "sales", "jobType": "partTime" }
Fetch a specific vacancy by reference:
{ "vacancyRef": "443249" }
Daily feed — last 50 new vacancies:
{ "maxItems": 50, "fetchDetails": true }
Scrape specific vacancy pages:
{"startUrls": [{ "url": "https://jobsplus.gov.mt/vacancy/vacancy-details?id=443249" },{ "url": "https://jobsplus.gov.mt/vacancy/vacancy-details?id=443260" }]}
Performance and pricing
- ~2,300 vacancies available on the platform at any time
- Full catalogue scrape completes in approximately 15–20 minutes
- $0.99 per 1,000 results — no proxy costs, no external API fees
Notes
- Company names are not publicly visible on Jobsplus without a registered account. The
companyfield is alwaysnull. - Vacancy publication dates are not exposed by the platform. The
publishDatefield is alwaysnull. - All salary amounts are in EUR — Malta uses the Euro.
- Vacancies are typically active for one month from publication.
isRepostis alwaysfalsebecause Jobsplus does not currently expose repost metadata. The field is retained for cross-actor schema consistency so pipelines combining multiple scrapers do not break. If Jobsplus adds repost information in future, the field will reflect it automatically.companyis alwaysnullbecause employer names are hidden behind a registered account on Jobsplus. The field is retained for cross-actor schema consistency.