Making job board and company data more accessible.



JobsMulti - the Ultimate Job Board API Client - Version 1.0 Release

Today we are excited to announce the release of version 1.0, the first stable release, of JobsMulti.

What is JobsMulti?

JobsMulti is the ultimate job board API client. With a few lines of code, you can grab the latest jobs from up to 13 job boards (as of this writing), with our list of supported job boards growing every month. So, instead of writing code to query each job board individually, developers can get results from multiple job boards with just one client.

The code speaks for itself, so here’s an example of using JobsMulti v.1.0:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Include as many or as few providers as you want. Just be sure to include any required keys.
$providers = [
'Careerbuilder' => [
'DeveloperKey' => '<YOUR DEVELOPER KEY>',
],
'Careercast' => [],
'Careerjet' => [
'affid' => '<YOUR AFFILIATE ID>',
],
'Dice' => [],
'Github' => [],
'Govt' => [],
'Ieee' => [],
'Indeed' => [
'publisher' => '<YOUR PUBLISHER ID>',
],
'Jobinventory' => [],
'Juju' => [
'partnerid' => '<YOUR PARTNER ID>',
],
'Stackoverflow' => [],
'Usajobs' => [
'AuthorizationKey' => '<YOUR API KEY>',
],
'Ziprecruiter' => [
'api_key' => '<YOUR API KEY>',
],
];
// Instantiate a new JobsMulti client
$client = new JobsMulti($providers);
// Set the parameters: Keyword, Location, Page
$client->setKeyword('engineering')
->setLocation('chicago, il')
->setPage(1, 10);
// And include an array of options if you'd like
$options = [
'maxAge' => 30, // Maximum age (in days) of listings
'maxResults' => 100, // Maximum number of results
'orderBy' => 'datePosted', // Field to order results by
'order' => 'desc', // Order ('asc' or 'desc')
];
// Finally, get all the jobs in a single Collection
$jobs = $client->getAllJobs($options);

More details can be found on the JobsMulti landing page and in the Readme. This project is free and open source, so if it helps you out, let us hear about it on Twitter: @jobapis.


Stack Overflow Job Board Client

Stack Overflow is widely recognized for being one of the best Q&A sites for developers. This package makes it easy to access their job listings via the site’s RSS feed and the Jobs Common project. Use of this package is similar to most other packages supported by Jobs Common:

First, create a Query object:

1
2
3
4
5
$query = new JobApis\Jobs\Client\Queries\StackoverflowQuery([
'q' => 'engineering',
'l' => 'Chicago, IL',
'pg' => '2',
]);

For a full list of supported query options, see this file.

And inject it into the StackoverflowProvider:

1
2
$client = new JobApis\Jobs\Client\Provider\StackoverflowProvider($query);
$jobs = $client->getJobs();

This will return a Collection of Job objects.

For more detailed usage and documentation, see this project’s readme, and as always, feel free to contact us if you have any questions or comments.


IEEE JobSite Client Released

The IEEE is a professional engineering organization with the largest membership of any technical organization in the world. Their job board is mostly geared towards engineers, especially computer and electrical engineers, but a variety of career paths may be represented. Unfortunately, their API is not documented, but can be accessed by appending &format=json to most search queries on the site.

Based on this knowledge and some testing I was able to create a job board API client for IEEE’s JobSite and it is now the 18th job board API client supported by our organization.

To start using the IEEE job board API client, install the package via composer:

Next, create a Query object:

1
2
3
4
5
$query = new JobApis\Jobs\Client\Queries\IeeeQuery([
'keyword' => 'engineering',
'location' => 'Chicago, IL',
'rows' => '50',
]);

For a full list of supported query options, see this file.

And inject it into the IeeeProvider:

1
2
$client = new JobApis\Jobs\Client\Provider\IeeeProvider($query);
$jobs = $client->getJobs();

This will return a Collection of Job objects.

For more detailed usage and documentation, see this project’s readme, and as always, feel free to contact us if you have any questions or comments.


Careerjet Jobs Provider Released

Today we released the first version of a Careerjet job board API client using Jobs Common v2. Jobs Multi support will be released later this week as well.

To install the package, add it to your project’s composer file:

1
composer require jobapis/jobs-careerjet

As with all Jobs Common providers, you just need to create a Query:

1
2
3
4
5
6
$query = new JobApis\Jobs\Client\Queries\CareerjetQuery([
'keywords' => 'engineering',
'location' => 'Chicago, IL',
'page' => '1',
'affid' => YOUR_AFFILIATE_ID,
]);

And inject it into the CareerjetProvider:

1
2
$client = new JobApis\Jobs\Client\Provider\CareerjetProvider($query);
$jobs = $client->getJobs();

This will return a Collection of Job objects.

For more detailed usage and documentation, see this project’s readme, and as always, feel free to contact us if you’d like to get involved.


JobsToMail User Login and Filtering Recruiter Listings

Tonight we released a basic token-based user login functionality on JobsToMail which allows users to log in and see their current searches as well as add new ones to their user account. We also released our first premium feature that allows users to filter out recruiters. This feature is currently only open to users who request access by emailing [email protected].

Both of thesse features are among several that will go into the version 1.0 release of JobsToMail expected sometime in the beginning of 2017. More details on each feature are below.

Token-based user login

Token-based logins (also known as “passwordless” logins) have trade-offs. On one hand, they can be more secure and help ensure that users don’t share accounts or use weak passwords. On the other hand, they are slightly more difficult to use, although that point is arguable. With passwordless logins, a user does not have to remember or type a password, but she does have to have access to her email address. Here’s a good blog post on the reasons for going passwordless.

How it works

The basic flow for our token-based login is as follows:

1. Click Login and enter email

Login with email

2. Check email account for the token

It may take a few seconds for the email to reach you.

Login with email

4. You will be immediately logged in

Login with email

Notes about token-based login on JobsToMail.com

  • Our tokens expire in 7 days. If you don’t use the token by that time you will have to generate a new one to log in.
  • Tokens are only good for one time use. This means you can’t share your token with others.
  • Tokens use the same construct as the confirmation links we send when new users sign up. This means that new users when confirmed are automatically logged in so they can explore their searches immediately.
  • If you have any issues, feel free to report them on github or email me directly.

Filtering recruiter posts

This feature has been requested by several of our users who are recruiters, but it takes more work to maintain than the basic functionality of JobsToMail. We are still building a list of recruiting firms and improving the filtering mechanism, so expect this feature to improve greatly, and we’re looking for testers in new locations.

If you’d like to try out the recruiter filter, please email [email protected].


Jobinventory RSS Feed Provider Released

While most of the job board clients supported by Jobs Common are for job boards with full-service APIs, Jobinventory only provides an XML RSS feed for consumption. Today we released our first version of the PHP RSS client for Jobinventory, and you can download it here on Github.

Use of the Jobinventory provider follows much the same pattern as our other job board providers.

First, create a Query object:

1
2
3
4
5
$query = new JobApis\Jobs\Client\Queries\JobinventoryQuery([
'q' => 'engineering',
'l' => 'Chicago, IL',
'limit' => '100',
]);

For a full list of supported query options, see this file.

And inject it into the JobinventoryProvider:

1
2
$client = new JobApis\Jobs\Client\Provider\JobinventoryProvider($query);
$jobs = $client->getJobs();

This will return a Collection of Job objects.

For more detailed usage and documentation, see this project’s readme, and as always, feel free to contact us if you have any questions or comments.


Adzuna Job Board Api Client Released

Our latest PHP job board client is for Adzuna a largely European job board with a private API for registered partners. You can register to use Adzuna’s API here, and get started using this API client by including the package in your project’s composer file:

1
composer require jobapis/jobs-adzuna

As with all Jobs Common providers, you just need to create a Query:

1
2
3
4
5
6
7
$query = new JobApis\Jobs\Client\Queries\AdzunaQuery([
'what' => 'engineering',
'where' => 'London, UK',
'page' => '1',
'app_id' => YOUR_APP_ID,
'app_key' => YOUR_APP_KEY,
]);

And inject it into the AdzunaProvider:

1
2
$client = new JobApis\Jobs\Client\Provider\AdzunaProvider($query);
$jobs = $client->getJobs();

This will return a Collection of Job objects.

For more detailed usage and documentation, see this project’s readme, and as always, feel free to contact us if you’d like to get involved.


Ziprecruiter Job Search Client v1.0 Release

Tonight we released a new version of our PHP Ziprecruiter API provider supporting version 2.0 of the Jobs Common project.

This release now uses the two-object pattern (Query and Provider) that all v2 providers use, and it allows for queries using all supported Ziprecruiter URL parameters.

The basic usage is the same as most of our other providers:

1. Install the package via Composer

composer require jobapis/jobs-ziprecruiter

2. Create a query object with all API parameters

1
2
3
4
$query = new JobApis\Jobs\Client\Queries\ZiprecruiterQuery([
'search' => 'engineering',
'location' => 'Chicago, IL',
]);

3. Inject the query object and get jobs

1
2
$client = new JobApis\Jobs\Client\Provider\ZiprecruiterProvider($query);
$jobs = $client->getJobs();

This will return a Collection of Job objects.

For more detailed usage and documentation, see this project’s readme


Juju job board API client now available in Jobs Common v2

In an effort to release 21 job board clients using v2 of the Jobs Common package by the end of 2016, I’m excited to announce the release of our 8th job board client - Juju Jobs.

Juju is a job search engine that aggregates from many sources to be one of the largest job providers in the United States. We previously offered support for v1 of Jobs Common, but with the new release using v2, the usage has changed:

1. Install the package via Composer

composer require jobapis/jobs-juju

2. Create a query object with all API parameters

1
2
3
4
5
$query = new JobApis\Jobs\Client\Queries\JujuQuery([
'k' => 'engineering', // Keyword
'l' => 'chicago', // Location
'h' => '0', // Highlighting off
]);

3. Inject the query object and get jobs

1
2
$client = new JobApis\Jobs\Client\Provider\JujuProvider($query);
$jobs = $client->getJobs();

This will return a Collection of Job objects.

For more detailed usage and documentation, see this project’s readme


Announcing JobsToMail, Our First Job Search Product

One of the things I hope to do with the JobApis organization is release open source products that help job seekers use our job board API clients and inspire developers who might want to use them. To that end, today I released our first open source product, JobsToMail.

What is JobsToMail?

JobsToMail is like having a personal assistant for your job search.

Just sign up at JobsToMail.com, choose the search term and location you’d like to search, and we’ll send you new job listings every day.

One of the most annoying things to do when searching for a job (either actively or passively) is checking all the job boards for new items every day. You could sign up for their email blasts, but then you could be getting dozens of emails every day, and that’s annoying. We’re making the whole process simpler by sending you job listings from several job boards (6 as of this writing) in one simple daily email.

jobstomail.com

Sign up for as many searches as you like

At this point, the project doesn’t offer much management of your job searches, but you can sign up to receive multiple search emails at one address. This allows you to easily subscribe or unsubscribe from searches that are most relevant to you.

Unsubscribe any time

Just click the unsubscribe link at the bottom of any of our emails to stop receiving emails for that search immediately. If you subscribed to multiple searches, you will need to unsubscribe from each individually.

Clone the project and run it on your own servers

If you’re a developer or you want to customize the project to meet your needs, feel free. Just clone the project on Github and set it up to run on your local computer or your own servers. The public project is currently hosted on Heroku, so getting it set up there should be a cinch.

Make a suggestion or report an issue on Github

Finally, because the project is open source, you’re welcome to submit an issue or pull request to improve the project.

I’m looking forward to hearing from users. If you find this project useful or you have ideas, just let me know.