A versioning policy is necessary in order to make backwards-incompatible (or "breaking") changes to the API while making sure client code is not susceptible to breakage because of those changes.
At skeeled, we use semantic versioning as standard to define versions and HTTP content negotiation to enable API endpoint level versioning.
Following the semantic versioning standard, we define which type of changes trigger a Major, Minor and Patch version change as follows:
Note: Patch versions are usually changed when a backwards compatible bugfix is made
In summary, Major versions are only updated when changes that can break client code are made. Minor/patch versions are updated when a non breaking change is made.
In summary, HTTP content negotiation allows the client to specify which media type (or content type/format) it wants the server to handle the request/response content. It can be used to change the request/response body format (JSON, XML, etc) but it can also be used to request specific versions through custom media types values.
At skeeled, media types are used to version the data format used by the API. Internally, the version portion of the media type is matched against a known set of versions for that endpoint and the correct request/response body is expected/served.
NOTE: skeeled API only accepts/returns data in the standard format JSON.
Using custom media types, API clients can choose which version to use, they can protect their implementation from breaking when a new version is released and they can better manage API versions through deprecation/migration cycles.
All skeeled media types look like this:
application/vnd.skeeled[.version]+json
where the version part is optional
The most basic media types the API supports are:
application/json
application/vnd.skeeled+json
Neither of these specify a version, so you will always get the current default one.
Important: The default version of the API may change in the future. It is important that you specify a version if stability is important to you.
You can specify a version like so:
application/vnd.skeeled.v1.0.0+json
application/vnd.skeeled.v0.3.14+json
Since semantic versioning is used, you can specify a partial version identifier. For instance, if only the Major version is used (eg: application/vnd.skeeled.v1+json
), the API will serve the latest version that matches the Major version 1, including the latest minor/patches.
You can check the used version through every response's headers. Look for the X-Skeeled-Media-Type
header:
# Default version
$ curl https://app.skeeled.com/v2/version -I
> HTTP/1.1 200 OK
> X-Skeeled-Media-Type: application/vnd.skeeled.v1.0.0+json
# Version doesn't exist
$ curl https://app.skeeled.com/v2/version -I \
$ -H "Accept: application/vnd.skeeled.v0.0.100+json"
> HTTP/1.1 200 OK
> X-Skeeled-Media-Type: application/vnd.skeeled.v1.0.0+json
# Version exists
$ curl https://app.skeeled.com/v2/version -I \
$ -H "Accept: application/vnd.skeeled.v0.9.11+json"
> HTTP/1.1 200 OK
> X-Skeeled-Media-Type: application/vnd.skeeled.v0.9.11+json
As you can see from the examples, the following rules are applied:
At skeeled, old versions are maintained and continue available for a specific period of time. The current version of the API is the reference and older versions are marked as deprecated.
When any type of deprecation happens, clients will be contacted with details about what was deprecated, suggested changes and a timeline regarding when that version or endpoint will be completely removed from the API.
On the skeeled OpenAPI description, you can find deprecated endpoints or versions by looking for the deprecated: true
key/value. It should exist in the operation level (endpoint definition) or content/schema level (content definition) as detailed below.
When a new version of the API is released, skeeled starts a cycle of communication with our clients (owner/admins) so that they can prepare and migrate to the new version as soon as possible:
Note: Only clients that currently use skeeled Public API will receive these communications
Endpoint deprecation can happen if:
This means that endpoint is marked to be removed completely from skeeled API and it's usage should be discontinued as soon as possible.
When a endpoint is marked as deprecated:
deprecated: true
is added on the operation level in the OpenAPI description. Docs'/example/{id}':
get:
summary: Operation example with multiple versions
description: dummy
operationId: exampleById
deprecated: true
tags:
- test
parameters:
- name: id
in: path
required: true
description: id
schema:
type: string
responses:
'200':
description: Dummy response
content:
application/vnd.skeeled.v1.0.0+json:
schema:
$ref: '#/components/schemas/ExampleSchema'
Endpoint versions are deprecated when a new version is available for that endpoint. The same endpoint can be available in multiple versions at a given time as described here.
When a new version of an endpoint is made available, regarding the older version:
deprecated: true
is added on the schema level in the OpenAPI description. Docs$ref
instead and the schema it points to is being used by other operations, the schema should be copied to its place and marked as deprecated there (see example)'/example/{id}':
get:
summary: Operation example with multiple versions
description: dummy
operationId: exampleById
tags:
- test
parameters:
- name: id
in: path
required: true
description: id
schema:
type: string
responses:
'200':
description: Dummy response
content:
application/vnd.skeeled.v1.0.0+json:
schema:
$ref: '#/components/schemas/ExampleSchema'
application/vnd.skeeled.v0.3.14+json:
schema:
type: object
deprecated: true
properties:
id:
type: integer
format: int64
name:
type: string
required:
- id
- name
Please refer here to find a complete changelog of our API: Download
Get all applications that are currently available
skip | integer Default: 0 The page that the user wants to return |
limit | integer Default: 50 The number of results per page the user wants to return |
status | string Enum: "rejected" "applied" "hired" Filter by applicant status |
minHiredDate | string <date> Filter applications that marked as hired and the hired date is greater than the provided value (inclusive) |
maxHiredDate | string <date> Filter applications that marked as hired and the hired date is lesser than the provided value (inclusive) |
minCreationDate | string <date> Filter applications created after the provided value (inclusive) |
maxCreationDate | string <date> Filter applications before after the provided value (inclusive) |
{- "data": [
- {
- "_id": "58dedf700000000000000000",
- "opening": "589125000000000000000000",
- "_companyId": "56fdabf00000000000000000",
- "_visibility": "SCREENED",
- "status": "rejected",
- "source": {
- "type": "posting",
- "_typeId": "589276800000000000000000",
- "postingType": "EXTERNAL"
}, - "stage": {
- "_id": "5e2703b5b38205288bb6f142",
- "name": "Rejected",
- "type": "REJECTED"
}, - "personal": {
- "email": "random@random.com",
- "name": {
- "first": "John",
- "last": "Doe"
}, - "nationality": "FR",
- "address": {
- "country": "LU",
- "city": "luxembourg"
}, - "phone": "111111111"
}, - "profile": {
- "educations": [
- {
- "skills": [
- "Finance"
], - "_id": "5f720fce28fba6f3ae532af5",
- "school": "Random school",
- "city": "City",
- "grade": "100",
- "from": "2011-01-01T00:00:00.000Z",
- "to": "2012-01-01T00:00:00.000Z",
- "isced": {
- "code": "9999"
}, - "country": "FR",
- "degree": "master"
}
], - "experiences": [
- {
- "skills": [
- "Banking know-how",
- "Financing",
- "Finance"
], - "_id": "5f720fce28fba63194532af6",
- "roles": [ ],
- "title": "Trader",
- "description": "Experience description",
- "company": "Short term Interest rates",
- "from": "2018-01-01T00:00:00.000Z",
- "to": "1900-01-01T00:00:00.000Z",
- "country": "PT",
- "department": "global markets",
- "city": "Porto"
}
], - "languages": [
- {
- "code": "fr",
- "read": "C2",
- "write": "C2",
- "speak": "C2"
}, - {
- "code": "en",
- "read": "C2",
- "write": "C2",
- "speak": "C2"
}
], - "openQuestions": [ ],
- "cvFile": "/files/123123123.pdf",
- "attachments": [ ],
- "capabilities": {
- "extraSkills": [
- "Finance",
- "Oracle"
], - "drivingLicenses": [ ]
}
}, - "attributes": {
- "personalStatus": {
- "name": "rejected candidates",
- "colorCode": "#eb1212",
- "_id": "5ba3bde00e066d001a72742a",
- "orderIndex": 3
}, - "ratings": [ ],
- "tags": [ ]
}, - "chronology": {
- "applied": "2020-09-29T07:42:31.282Z"
}, - "screening": {
- "score": 1,
- "rejected": true
}, - "meta": {
- "timezone": "Europe/Luxembourg",
- "language": "en"
}
}, - {
- "_id": "5c7b19000000000000000000",
- "_companyId": "5c2aad800000000000000000",
- "source": {
- "type": "posting",
- "_typeId": "5c7876000000000000000000",
- "postingType": "EXTERNAL"
}, - "status": "applied",
- "_visibility": "SCREENED",
- "opening": "5c538c000000000000000000",
- "stage": {
- "_id": "5e2703b5b38205288bb6f145",
- "name": "New",
- "type": "ENTRY_POINT"
}, - "personal": {
- "email": "johndoe@random.com",
- "name": {
- "first": "John",
- "last": "Doe"
}, - "nationality": "PT",
- "address": {
- "country": "PT",
- "city": "Porto"
}, - "phone": "123123123123123132"
}, - "profile": {
- "educations": [
- {
- "degree": "master",
- "field": "Finance Internationale",
- "school": "Random School",
- "city": "Test",
- "country": "FR",
- "from": "2018-01-01T00:00:00.000Z",
- "to": "1900-01-01T00:00:00.000Z",
- "_id": "5c588e99879b9c0019c1742b",
- "skills": [ ],
- "merits": [ ],
- "fieldsOfStudy": [
- "99"
], - "isced": {
- "code": "9999",
- "unknown": "Finance Internationale"
}
}
], - "experiences": [
- {
- "title": "Work experience in a bank",
- "company": "Dummy",
- "country": "LU",
- "from": "2020-01-01T00:00:00.000Z",
- "to": "2021-01-01T00:00:00.000Z",
- "_id": "5c588e99879b9c0019c17427",
- "skills": [
- "Accountant"
], - "roles": [ ]
}
], - "languages": [
- {
- "code": "pt",
- "read": "C2",
- "write": "C2",
- "speak": "C2"
}, - {
- "code": "fr",
- "read": "C2",
- "write": "C2",
- "speak": "C2"
}
], - "openQuestions": [ ],
- "attachments": [ ],
- "capabilities": {
- "extraSkills": [ ],
- "drivingLicenses": [ ]
}
}, - "attributes": {
- "personalStatus": {
- "orderIndex": 3,
- "_id": "5ba3bde00e066d001a72742a",
- "colorCode": "#eb1212",
- "name": "rejected candidates"
}, - "ratings": [ ],
- "tags": [ ]
}, - "chronology": {
- "activated": "2019-02-05T09:01:33.575Z",
- "applied": "2019-02-05T09:01:33.575Z"
}, - "screening": {
- "score": 3
}, - "meta": {
- "privacyProtection": {
- "timesKept": 1,
- "keptHistory": [
- "2020-01-05T23:22:15.452Z"
]
}, - "timezone": "Europe/Luxembourg",
- "language": "fr"
}
}
], - "pagination": {
- "skip": 0,
- "limit": 50,
- "total": 2
}
}
Source an applicant by providing applicant basic information and a CV file.
required | object |
required | object |
{- "personal": {
- "name": {
- "first": "John",
- "last": "Doe"
}, - "phone": "+910000000",
- "email": "john_doe@example.com"
}, - "profile": {
- "cvFile": {
- "base64": "JVBERi0yLjANCg0KMSAwIG9iag0KPDwNCiAgL1R5cGUgL0NhdGFsb2cNCiAgL01ldGFkYXRhIDIgMCBSDQogIC9QYWdlcyAzIDAgUg0KPj4NCmVuZG9iag0KDQoyIDAgb2JqDQo8PA0KICAvTGVuZ3RoIDIzNTENCiAgL1R5cGUgL01ldGFkYXRhDQogIC9TdWJ0eXBlIC9YTUwNCj4+DQpzdHJlYW0NCjx4OnhtcG1ldGEgeG1sbnM6eD0nYWRvYmU6bnM6bWV0YS8nIHg6eG1wdGs9J0luc2VydCBYTVAgdG9vbCBuYW1lIGhlcmUuJz4NCiAgPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjJz4NCiAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iPg0KICAgICAgPHBkZjpQcm9kdWNlcj5EYXRhbG9naWNzIC0gZXhhbXBsZSBwcm9kdWNlciBwcm9ncmFtIG5hbWUgaGVyZTwvcGRmOlByb2R1Y2VyPg0KICAgICAgPHBkZjpDb3B5cmlnaHQ+Q29weXJpZ2h0IDIwMTcgUERGIEFzc29jaWF0aW9uPC9wZGY6Q29weXJpZ2h0Pg0KICAgICAgPHBkZjpLZXl3b3Jkcz5QREYgMi4wIHNhbXBsZSBleGFtcGxlPC9wZGY6S2V5d29yZHM+DQogICAgPC9yZGY6RGVzY3JpcHRpb24+DQogICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4NCiAgICAgIDx4YXA6Q3JlYXRlRGF0ZT4yMDE3LTA1LTI0VDEwOjMwOjExWjwveGFwOkNyZWF0ZURhdGU+DQogICAgICA8eGFwOk1ldGFkYXRhRGF0ZT4yMDE3LTA3LTExVDA3OjU1OjExWjwveGFwOk1ldGFkYXRhRGF0ZT4NCiAgICAgIDx4YXA6TW9kaWZ5RGF0ZT4yMDE3LTA3LTExVDA3OjU1OjExWjwveGFwOk1vZGlmeURhdGU+DQogICAgICA8eGFwOkNyZWF0b3JUb29sPkRhdGFsb2dpY3MgLSBleGFtcGxlIGNyZWF0b3IgdG9vbCBuYW1lIGhlcmU8L3hhcDpDcmVhdG9yVG9vbD4NCiAgICA8L3JkZjpEZXNjcmlwdGlvbj4NCiAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPg0KICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4NCiAgICAgIDxkYzp0aXRsZT4NCiAgICAgICAgPHJkZjpBbHQ+DQogICAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5BIHNpbXBsZSBQREYgMi4wIGV4YW1wbGUgZmlsZTwvcmRmOmxpPg0KICAgICAgICA8L3JkZjpBbHQ+DQogICAgICA8L2RjOnRpdGxlPg0KICAgICAgPGRjOmNyZWF0b3I+DQogICAgICAgIDxyZGY6U2VxPg0KICAgICAgICAgIDxyZGY6bGk+RGF0YWxvZ2ljcyBJbmNvcnBvcmF0ZWQ8L3JkZjpsaT4NCiAgICAgICAgPC9yZGY6U2VxPg0KICAgICAgPC9kYzpjcmVhdG9yPg0KICAgICAgPGRjOmRlc2NyaXB0aW9uPg0KICAgICAgICA8cmRmOkFsdD4NCiAgICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkRlbW9uc3RyYXRpb24gb2YgYSBzaW1wbGUgUERGIDIuMCBmaWxlLjwvcmRmOmxpPg0KICAgICAgICA8L3JkZjpBbHQ+DQogICAgICA8L2RjOmRlc2NyaXB0aW9uPg0KICAgICAgPGRjOnJpZ2h0cz4NCiAgICAgICAgPHJkZjpBbHQ+DQogICAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5Db3B5cmlnaHQgMjAxNyBQREYgQXNzb2NpYXRpb24uIExpY2Vuc2VkIHRvIHRoZSBwdWJsaWMgdW5kZXIgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIDQuMCBJbnRlcm5hdGlvbmFsIGxpY2Vuc2UuPC9yZGY6bGk+DQogICAgICAgIDwvcmRmOkFsdD4NCiAgICAgIDwvZGM6cmlnaHRzPg0KICAgIDwvcmRmOkRlc2NyaXB0aW9uPg0KICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhhcFJpZ2h0cz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3JpZ2h0cy8iPg0KICAgICAgPHhhcFJpZ2h0czpNYXJrZWQ+VHJ1ZTwveGFwUmlnaHRzOk1hcmtlZD4NCiAgICA8L3JkZjpEZXNjcmlwdGlvbj4NCiAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIj4NCiAgICAgIDxjYzpsaWNlbnNlIHJkZjpyZXNvdXJjZT0iaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL3NhLzQuMC8iIC8+DQogICAgPC9yZGY6RGVzY3JpcHRpb24+DQogICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eGFwTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iPg0KICAgICAgPHhhcE1NOkRvY3VtZW50SUQ+dXVpZDozZWVmMjE2Ni04MzMyLWFiYjQtM2QzMS03NzMzNDU3ODg3M2Y8L3hhcE1NOkRvY3VtZW50SUQ+DQogICAgICA8eGFwTU06SW5zdGFuY2VJRD51dWlkOjk5MWJjY2U3LWVlNzAtMTFhMy05MWFhLTc3YmJlMjE4MWZkODwveGFwTU06SW5zdGFuY2VJRD4NCiAgICA8L3JkZjpEZXNjcmlwdGlvbj4NCiAgPC9yZGY6UkRGPg0KPC94OnhtcG1ldGE+DQplbmRzdHJlYW0NCmVuZG9iag0KDQozIDAgb2JqDQo8PA0KICAvVHlwZSAvUGFnZXMNCiAgL0tpZHMgWzQgMCBSXQ0KICAvQ291bnQgMQ0KPj4NCmVuZG9iag0KDQo0IDAgb2JqDQo8PA0KICAvVHlwZSAvUGFnZQ0KICAvUGFyZW50IDMgMCBSDQogIC9NZWRpYUJveCBbMCAwIDYxMiAzOTZdDQogIC9Db250ZW50cyBbNSAwIFIgNiAwIFJdDQogIC9SZXNvdXJjZXMgPDwNCiAgICAvRm9udCA8PCAvRjEgNyAwIFIgPj4NCiAgPj4NCj4+DQplbmRvYmoNCg0KNSAwIG9iag0KPDwgL0xlbmd0aCA3NDQgPj4NCnN0cmVhbQ0KJSBTYXZlIHRoZSBjdXJyZW50IGdyYXBoaWMgc3RhdGUNCnEgDQoNCiUgRHJhdyBhIGJsYWNrIGxpbmUgc2VnbWVudCwgdXNpbmcgdGhlIGRlZmF1bHQgbGluZSB3aWR0aC4NCjE1MCAyNTAgbQ0KMTUwIDM1MCBsDQpTDQoNCiUgRHJhdyBhIHRoaWNrZXIsIGRhc2hlZCBsaW5lIHNlZ21lbnQuDQo0IHcgJSBTZXQgbGluZSB3aWR0aCB0byA0IHBvaW50cw0KWzQgNl0gMCBkICUgU2V0IGRhc2ggcGF0dGVybiB0byA0IHVuaXRzIG9uLCA2IHVuaXRzIG9mZg0KMTUwIDI1MCBtDQo0MDAgMjUwIGwNClMNCltdIDAgZCAlIFJlc2V0IGRhc2ggcGF0dGVybiB0byBhIHNvbGlkIGxpbmUNCjEgdyAlIFJlc2V0IGxpbmUgd2lkdGggdG8gMSB1bml0DQoNCiUgRHJhdyBhIHJlY3RhbmdsZSB3aXRoIGEgMS11bml0IHJlZCBib3JkZXIsIGZpbGxlZCB3aXRoIGxpZ2h0IGJsdWUuDQoxLjAgMC4wIDAuMCBSRyAlIFJlZCBmb3Igc3Ryb2tlIGNvbG9yDQowLjUgMC43NSAxLjAgcmcgJSBMaWdodCBibHVlIGZvciBmaWxsIGNvbG9yDQoyMDAgMzAwIDUwIDc1IHJlDQpCDQoNCiUgRHJhdyBhIGN1cnZlIGZpbGxlZCB3aXRoIGdyYXkgYW5kIHdpdGggYSBjb2xvcmVkIGJvcmRlci4NCjAuNSAwLjEgMC4yIFJHDQowLjcgZw0KMzAwIDMwMCBtDQozMDAgNDAwIDQwMCA0MDAgNDAwIDMwMCBjDQpiDQoNCiUgUmVzdG9yZSB0aGUgZ3JhcGhpYyBzdGF0ZSB0byB3aGF0IGl0IHdhcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgc3RyZWFtDQpRDQoNCmVuZHN0cmVhbQ0KZW5kb2JqDQoNCjYgMCBvYmoNCjw8IC9MZW5ndGggMTY2ID4+DQpzdHJlYW0NCiUgQSB0ZXh0IGJsb2NrIHRoYXQgc2hvd3MgIkhlbGxvIFdvcmxkIg0KJSBObyBjb2xvciBpcyBzZXQsIHNvIHRoaXMgZGVmYXVsdHMgdG8gYmxhY2sgaW4gRGV2aWNlR3JheSBjb2xvcnNwYWNlDQpCVA0KICAvRjEgMjQgVGYNCiAgMTAwIDEwMCBUZA0KICAoSGVsbG8gV29ybGQpIFRqDQpFVA0KZW5kc3RyZWFtDQplbmRvYmoNCg0KNyAwIG9iag0KPDwNCiAgL1R5cGUgL0ZvbnQNCiAgL1N1YnR5cGUgL1R5cGUxDQogIC9CYXNlRm9udCAvSGVsdmV0aWNhDQogIC9GaXJzdENoYXIgMzMNCiAgL0xhc3RDaGFyIDEyNg0KICAvV2lkdGhzIDggMCBSDQogIC9Gb250RGVzY3JpcHRvciA5IDAgUg0KPj4NCmVuZG9iag0KDQo4IDAgb2JqDQpbIDI3OCAzNTUgNTU2IDU1NiA4ODkgNjY3IDIyMiAzMzMgMzMzIDM4OSA1ODQgMjc4IDMzMyAyNzggMjc4IDU1Ng0KICA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiAyNzggMjc4IDU4NCA1ODQgNTg0IDU1NiAxMDE1DQogIDY2NyA2NjcgNzIyIDcyMiA2NjcgNjExIDc3OCA3MjIgMjc4IDUwMCA2NjcgNTU2IDgzMyA3MjIgNzc4IDY2Nw0KICA3NzggNzIyIDY2NyA2MTEgNzIyIDY2NyA5NDQgNjY3IDY2NyA2MTEgMjc4IDI3OCAyNzggNDY5IDU1NiAyMjINCiAgNTU2IDU1NiA1MDAgNTU2IDU1NiAyNzggNTU2IDU1NiAyMjIgMjIyIDUwMCAyMjIgODMzIDU1NiA1NTYgNTU2DQogIDU1NiAzMzMgNTAwIDI3OCA1NTYgNTAwIDcyMiA1MDAgNTAwIDUwMCAzMzQgMjYwIDMzNCA1ODQgXQ0KZW5kb2JqDQoNCiUgVGhpcyBGb250RGVzY3JpcHRvciBjb250YWlucyBvbmx5IHRoZSByZXF1aXJlZCBlbnRyaWVzIGZvciBQREYgMi4wDQolIGZvciB1bmVtYmVkZGVkIHN0YW5kYXJkIDE0IGZvbnRzIHRoYXQgY29udGFpbiBMYXRpbiBjaGFyYWN0ZXJzDQo5IDAgb2JqDQo8PA0KICAvVHlwZSAvRm9udERlc2NyaXB0b3INCiAgL0ZvbnROYW1lIC9IZWx2ZXRpY2ENCiAgL0ZsYWdzIDMyDQogIC9Gb250QkJveCBbIC0xNjYgLTIyNSAxMDAwIDkzMSBdDQogIC9JdGFsaWNBbmdsZSAwDQogIC9Bc2NlbnQgNzE4DQogIC9EZXNjZW50IC0yMDcNCiAgL0NhcEhlaWdodCA3MTgNCiAgL1N0ZW1WIDg4DQogIC9NaXNzaW5nV2lkdGggMCAgDQo+Pg0KZW5kb2JqDQoNCiUgVGhlIG9iamVjdCBjcm9zcy1yZWZlcmVuY2UgdGFibGUuIFRoZSBmaXJzdCBlbnRyeQ0KJSBkZW5vdGVzIHRoZSBzdGFydCBvZiBQREYgZGF0YSBpbiB0aGlzIGZpbGUuDQp4cmVmDQowIDEwDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMTIgMDAwMDAgbg0KMDAwMDAwMDA5MiAwMDAwMCBuDQowMDAwMDAyNTQzIDAwMDAwIG4NCjAwMDAwMDI2MTUgMDAwMDAgbg0KMDAwMDAwMjc3OCAwMDAwMCBuDQowMDAwMDAzNTgzIDAwMDAwIG4NCjAwMDAwMDM4MDcgMDAwMDAgbg0KMDAwMDAwMzk2OCAwMDAwMCBuDQowMDAwMDA0NTIwIDAwMDAwIG4NCnRyYWlsZXINCjw8DQogIC9TaXplIDEwDQogIC9Sb290IDEgMCBSDQogIC9JRCBbIDwzMWM3YThhMjY5ZTRjNTliYzNjZDdkZjBkYWJiZjM4OD48MzFjN2E4YTI2OWU0YzU5YmMzY2Q3ZGYwZGFiYmYzODg+IF0NCj4+DQpzdGFydHhyZWYNCjQ4NDcNCiUlRU9GDQo=",
- "name": "dummy.pdf",
- "type": "application/pdf"
}
}
}
{- "message": "Conflict"
}
Get all published publications
skip | integer Default: 0 The page that the user wants to return |
limit | integer Default: 50 The number of results per page the user wants to return |
type | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" The posting type the user wants to filter |
{- "data": [
- {
- "languages": [
- "en",
- "fr"
], - "_id": "5f912bfb8836ff607713d0e3",
- "type": "EXTERNAL",
- "url": {
- "embedded": {
}
}, - "information": {
- "address": {
- "country": "LU",
- "city": "Luxembourg",
- "timezone": "Europe/Luxembourg"
}, - "contract": {
- "employmentType": "full_time",
- "type": "permanent_contract",
- "hoursPerWeek": 40
}, - "title": {
- "en": "Legacy Web Supervisor",
- "fr": "Legacy Web Supervisor"
}, - "description": {
- "en": "<h1>dummy text</h1>",
- "fr": "<h1>dummy text</h1>"
}
}, - "requirements": {
- "experience": {
- "onetCode": "13-2072.00",
- "industry": "banking",
- "years": {
- "min": 3,
- "operator": "+"
}
}, - "education": {
- "isced": {
- "code": "9999"
}, - "degree": "master"
}, - "languages": {
- "list": [
- {
- "code": "en",
- "read": "C1",
- "write": "C1",
- "speak": "C1"
}, - {
- "code": "fr",
- "write": "C1",
- "speak": "C1",
- "read": "C1"
}, - {
- "code": "lb",
- "speak": "C1",
- "write": "C1",
- "read": "C1"
}
], - "optional": [ ]
}
}
}, - {
- "languages": [
- "en"
], - "_id": "5ca3467159d241000b74374f",
- "type": "EXTERNAL",
- "url": {
- "embedded": {
}
}, - "information": {
- "title": {
- "en": "Central Assurance Technician"
}, - "description": {
- "en": "<p>We are always on the lookout for talented Pilots. If you know someone working for Jetfly, and are interested in joining us, please apply here!</p>"
}, - "address": {
- "city": "Leudelange",
- "postCode": "3372",
- "street": "11 rue Jean Fischbach",
- "country": "LU",
- "timezone": "Europe/Luxembourg"
}, - "contract": {
- "type": "permanent_contract",
- "employmentType": "full_time"
}
}, - "requirements": {
- "education": {
- "isced": {
- "code": "9999"
}, - "degree": "high_school"
}, - "experience": {
- "onetCode": "53-2011.00",
- "industry": "aviation_aerospace",
- "years": {
- "min": 0,
- "operator": "+"
}
}, - "languages": {
- "list": [
- {
- "code": "en",
- "read": "C1",
- "write": "C1",
- "speak": "C1"
}
], - "optional": [ ]
}
}
}
], - "pagination": {
- "skip": 0,
- "limit": 50,
- "total": 2
}
}
Get all countries supported by skeeled
lang | string Default: "en" Enum: "en" "fr" "es" "nl" "de" "pt" "lb" Language to select the results in |
object Example: sort[_id]=-1 |
[- {
- "_id": "57036aa35a210a55b10d2d36",
- "code": "AF",
- "name": "Afghanistan",
- "timezones": [
- "Asia/Kabul"
], - "isoAlpha3": "AFG"
}
]
Get all employment types supported by skeeled
lang | string Default: "en" Enum: "en" "fr" "es" "nl" "de" "pt" "lb" Language to select the results in |
object Example: sort[_id]=-1 |
[- {
- "_id": "5707ce6d5b8baa7e39723ba1",
- "code": "apprentice",
- "name": "Apprentice"
}
]
Get all languages supported by skeeled
lang | string Default: "en" Enum: "en" "fr" "es" "nl" "de" "pt" "lb" Language to select the results in |
object Example: sort[_id]=-1 |
[- {
- "_id": "57036aba5a210a55b10d2eda",
- "code": "ab",
- "name": "Abkhazian"
}
]
Get all degree levels supported by skeeled
lang | string Default: "en" Enum: "en" "fr" "es" "nl" "de" "pt" "lb" Language to select the results in |
object Example: sort[_id]=-1 |
[- {
- "_id": "5936719cf516f614731e42dd",
- "code": "plus_bac_5",
- "name": "> Bac +5"
}
]
Get all industries supported by skeeled
lang | string Default: "en" Enum: "en" "fr" "es" "nl" "de" "pt" "lb" Language to select the results in |
object Example: sort[_id]=-1 |
[- {
- "_id": "57036ab65a210a55b10d2e47",
- "code": "accounting",
- "name": "Accounting"
}
]
Get all fields of study supported by skeeled
lang | string Default: "en" Enum: "en" "fr" "es" "nl" "de" "pt" "lb" Language to select the results in |
object Example: sort[_id]=-1 |
[- {
- "_id": "5acc8c2c4482e75b995673c3",
- "code": "08",
- "name": "Agriculture, forestry, fisheries and veterinary",
- "level": 0
}
]
Get all contract types supported by skeeled
lang | string Default: "en" Enum: "en" "fr" "es" "nl" "de" "pt" "lb" Language to select the results in |
object Example: sort[_id]=-1 |
[- {
- "_id": "5ae344fd78cc9e235c80206b",
- "code": "fixed_term_contract",
- "name": "Fixed Term contract"
}
]
Get all ONETs supported by skeeled
lang | string Default: "en" Enum: "en" "fr" "es" "nl" "de" "pt" "lb" Language to select the results in |
object Example: sort[_id]=-1 |
[- {
- "_id": "5f18504d212b0e676e933a62",
- "code": "13-2011.01",
- "name": "Accountants",
- "parent": "5f18504d212b0e676e9339fb"
}
]
[- {
- "_id": "5f912bfb8836ff607713d0e3",
- "email": "example1@test.com",
- "status": "active"
}, - {
- "_id": "6f912bfb8836ff607713f013",
- "email": "example2@test.com",
- "status": "pending"
}
]