Skip to content

Unofficial Node.js wrapper for the Infojobs RESTful API

License

Notifications You must be signed in to change notification settings

AlvaroBernalG/infojobs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jul 21, 2019
80a0bb3 · Jul 21, 2019

History

54 Commits
Sep 13, 2017
Jul 19, 2019
Apr 26, 2018
Apr 27, 2018
Aug 21, 2017
Aug 21, 2017
Jul 19, 2019
Jul 19, 2019
Jul 21, 2019
Jul 19, 2019

Repository files navigation

infojobs

A simple library that allows you to access the biggest database of job offers in Spain through the Infojobs RESTful API.

Build Status npm version JavaScript Style Guide

Install

$ npm install infojobs

In order to be able to use this library you must first go to the Infojobs developer site and create an account.

Usage

Basic usage:

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:

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:

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:

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:

  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.

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