Making job board and company data more accessible.



Latest News:

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.


CareerCast API v1.0 Release Announcement

The latest job board now supporting version 2.0 of the Jobs Common project is the re-released Careercast API client, which just reached version 1.0 today.

This re-release offers most of the same functionality as the version 0 release, but defaults to JSON responses instead of XML. This allows for much richer data from the Careercast API.

Unfortunately, Careercast’s API is not official or documented, so the setters are limited, and it appears that pagination doesn’t work.

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

1. Install the package via Composer

composer require jobapis/jobs-careercast

2. Create a query object with all API parameters

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

3. Inject the query object and get jobs

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

This will return a Collection of Job objects.

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


USAJobs API Client now available

I’ve added a new PHP client for USAJobs, and released it to work with v2 of the Jobs-Common project.

USAJobs is one of the sources for the Government Jobs API, but their API has jobs that aren’t necessarily collected by the DigitalGov service, so if you’re really interested in using government jobs in your application, this could be a great addition.

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

1. Install the package via Composer

composer require jobapis/jobs-usajobs

2. Create a query object with all API parameters

1
2
3
4
5
$query = new JobApis\Jobs\Client\Queries\UsajobsQuery([
'Keyword' => 'engineering',
'LocationName' => 'Chicago, IL',
'AuthorizationKey' => YOUR_API_KEY,
]);

3. Inject the query object and get jobs

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

This will return a Collection of Job objects.

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


Querying multiple job board APIs at once

Today marks the first pre-release of Jobs-Multi, a package intented to help you access multiple job board APIs in PHP with less work.

Where Jobs-Common standardizes the output of each job board, Jobs-Multi helps standardize the input, giving users access to three setters that enable you to build multiple Queries and then retrieve all the results at the same time.

What does this mean in practice? With Jobs-Multi you can do things like:

1
2
3
4
5
6
7
8
9
$client = new JobsMulti([
'Dice' => [],
'Govt' => [],
'Github' => [],
]);
$jobs = $client->setKeyword('training')
->setLocation('chicago, il')
->setPage(1, 10)
->getAllJobs();

That final $jobs variable contains an array of all jobs matching the provided criteria from Dice, Government Jobs, and Github in one go.

You can access more providers and you also have the option to query each one individually. See the jobs-multi repo on Github for more details.