Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alvarobernalg/infojobs

Unofficial Node.js wrapper for the Infojobs RESTful API
https://github.com/alvarobernalg/infojobs

api infojobs job-offer jobs nodejs offer offers portal query spain

Last synced: 9 days ago
JSON representation

Unofficial Node.js wrapper for the Infojobs RESTful API

Awesome Lists containing this project

README

        

# infojobs

> A simple library that allows you to access the biggest database of job offers in Spain through the [Infojobs](https://www.infojobs.net/) RESTful API.

[![Build Status](https://travis-ci.org/AlvaroBernalG/infojobs.svg?branch=master)](https://travis-ci.org/AlvaroBernalG/infojobs) [![npm version](https://badge.fury.io/js/infojobs.svg)](https://badge.fury.io/js/infojobs) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install
```
$ npm install infojobs
```

In order to be able to use this library you must first go to the [Infojobs developer site](https://developer.infojobs.net/) and create an account.

## Usage

Basic usage:
```js
const infojobs = require('infojobs')

const search = infojobs({
id: 'api_id',
secret: 'api_secret'
}) // => these credentials are obtained on https://developer.infojobs.net/

search()
.offer()
.run()
.then( response => {
console.log(response) // => by default you will receive 20 results.
}).catch(console.log)
```

You can narrow the search by passing a literal object containing a [query](https://developer.infojobs.net/documentation/operation/offer-list-1.xhtml):
```js

search()
.offer({
q: 'Java developer',
province: 'Madrid',
companyName: 'Santander Group'
})
.run()
.then( response => {
console.log(response) // => by default you receive 20 results.
}).catch(console.log)
```

Some properties accept multiple options, in that case you can pass a property array like so:
```js

search()
.offer({
q: ['Java developer', 'Analista'],
province: ['Madrid', 'Barcelona'],
companyName: 'Santander Group'
})
.run()
.then( response => {
console.log(response) //
}).catch(console.log)
```

You can retrieve a specific job offer by specifying its id using the id method:
```js
search()
.offer()
.id('jobOfferId234234234414')
.run()
.then( reponse => {
console.log(response)
}).catch(console.log)
```

Unless specified, the Infojobs API will return 20 results per query. If you want to loop through all the results
you can use the pages() function like so:

``` js
const search = infojobs(credentials)
const javaJobsInMadrid = search().offer({q: 'java', province: "Madrid"})

for await (const page of javaJobsInMadrid.pages()) {
console.log("Page => ", page) //
}
```

## API

#### infojobs(credentials[object required], config[object]) `[object infojobs]`
Initializes the library and performs the authentication.

#### offer(query[object optional]) `[object infojobs]`
You can find the list of available query fields [here](https://developer.infojobs.net/documentation/operation/offer-list-1.xhtml).

#### id(id[string optional]) `[object infojobs]`
Specifies a job id.

#### run() | start() | go() `[object Promise]`
Executes the query against the Infojobs RESTful API.

#### pages(from[number optional], until[number optional]) `[asyncIterator]`
Returns an Async Iterator that allows you to iterate through the pages.

## Requirements

Node.js version >=10.0.0.

## Contributing

All contributions are welcome.

## License
MIT © [Alvaro Bernal](https://github.com/AlvaroBernalG/)