PHPackages                             jobapis/jobs-common - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. jobapis/jobs-common

ActiveLibrary[API Development](/categories/api)

jobapis/jobs-common
===================

Making it simple to integrate your application with job api providers.

2.1.2(9y ago)4459.3k↓50%1620Apache-2.0PHPPHP &gt;=5.5.0

Since Jun 7Pushed 3y ago9 watchersCompare

[ Source](https://github.com/jobapis/jobs-common)[ Packagist](https://packagist.org/packages/jobapis/jobs-common)[ Docs](http://jobapis.com)[ RSS](/packages/jobapis-jobs-common/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (6)Versions (16)Used By (20)

Jobs Common
===========

[](#jobs-common)

Standardizing job board API clients
-----------------------------------

[](#standardizing-job-board-api-clients)

[![Latest Version](https://camo.githubusercontent.com/12e4e33ae2e8e814c8950c4d6f760ae68ea2133b07b33c4b7923828e241db9be/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f6a6f62617069732f6a6f62732d636f6d6d6f6e2e7376673f7374796c653d666c61742d737175617265)](https://github.com/jobapis/jobs-common/releases)[![Software License](https://camo.githubusercontent.com/83a69279c9f2ed137be556c08d1ceaf2161ae96eeb88f8caade8ef619f2d6c27/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d415041434845253230322e302d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)[![Build Status](https://camo.githubusercontent.com/25a93356a9f1afaff90c891bf5018dc815e9fdd11206d99b7eadb724b05ce7e2/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6a6f62617069732f6a6f62732d636f6d6d6f6e2f6d61737465722e7376673f7374796c653d666c61742d7371756172652631)](https://travis-ci.org/jobapis/jobs-common)[![Coverage Status](https://camo.githubusercontent.com/4b6ce086948b5dd7a224256bbe99fce10ea721dcb84e05d1e8867827b63386d5/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f6a6f62617069732f6a6f62732d636f6d6d6f6e2e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/jobapis/jobs-common/code-structure)[![Quality Score](https://camo.githubusercontent.com/33e2ccd20dfcfb4f080ac61a810d57ad1c1d8813c29c223b2a23f049ebc736be/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f6a6f62617069732f6a6f62732d636f6d6d6f6e2e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/jobapis/jobs-common)[![Total Downloads](https://camo.githubusercontent.com/b78adbaa0cb5649dfac2d93134fa3526c356391800c0298d4991e0aaf9dd7d4c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a6f62617069732f6a6f62732d636f6d6d6f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jobapis/jobs-common)

This package makes it makes it easy to integrate job board APIs into your application. Whether you want to aggregate job board data, or supplement your site's job listings with listings from third party providers, or anything else you can dream up, this package (and the api clients listed below) can help.

This package is compliant with [PSR-1](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md), [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md), [PSR-4](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md), and [PSR-7](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-7-http-message.md). If you notice compliance oversights, please send a patch via pull request.

Requirements
------------

[](#requirements)

The following versions of PHP are supported.

- PHP 5.5
- PHP 5.6
- PHP 7.0
- HHVM

Usage
-----

[](#usage)

This package is not meant to be used on its own, but rather it is used by the providers listed below to access job board APIs and gather results in a standard data format. For details on creating your own job board provider, read on!

Providers
---------

[](#providers)

Each job board supported has a provider that must extend this package's [AbstractProvider](https://github.com/jobapis/jobs-common/blob/master/src/Provider/AbstractProvider.php), and implement the declared abstract methods.

The following providers are available:

### Official providers

[](#official-providers)

There are many job board services we support officially.

GatewayComposer PackageMaintainer[Authentic Jobs](https://github.com/jobapis/jobs-authenticjobs)jobapis/jobs-authenticjobs[Steven Maguire](https://github.com/stevenmaguire)[CareerBuilder](https://github.com/jobapis/jobs-careerbuilder)jobapis/jobs-careerbuilder[Karl Hughes](https://github.com/karllhughes)[Careercast](https://github.com/jobapis/jobs-careercast)jobapis/jobs-careercast[Karl Hughes](https://github.com/karllhughes)[Dice](https://github.com/jobapis/jobs-dice)jobapis/jobs-dice[Karl Hughes](https://github.com/karllhughes)[Elance](https://github.com/jobapis/jobs-elance)jobapis/jobs-elance[Steven Maguire](https://github.com/stevenmaguire)[Github Jobs](https://github.com/jobapis/jobs-github)jobapis/jobs-github[Steven Maguire](https://github.com/stevenmaguire)[Govt](https://github.com/jobapis/jobs-govt)jobapis/jobs-govt[Karl Hughes](https://github.com/karllhughes)[Indeed](https://github.com/jobapis/jobs-indeed)jobapis/jobs-indeed[Steven Maguire](https://github.com/stevenmaguire)[Jobs2Careers](https://github.com/jobapis/jobs-jobs2careers)jobapis/jobs-jobs2careers[Karl Hughes](https://github.com/karllhughes)[Muse](https://github.com/jobapis/jobs-muse)jobapis/jobs-muse[Karl Hughes](https://github.com/karllhughes)[JuJu](https://github.com/jobapis/jobs-juju)jobapis/jobs-juju[Karl Hughes](https://github.com/karllhughes)[SimplyHired](https://github.com/jobapis/jobs-simplyhired)jobapis/jobs-simplyhired[Karl Hughes](https://github.com/karllhughes)[ZipRecruiter](https://github.com/jobapis/jobs-ziprecruiter)jobapis/jobs-ziprecruiter[Karl Hughes](https://github.com/karllhughes)### Third party providers

[](#third-party-providers)

If you would like to support other providers, please make them available as a Composer package, then link to them below.

These providers allow integration with other providers not supported by `jobs-common`. They may require an older version so please help them out with a pull request if you notice this.

GatewayComposer PackageMaintainer[Job Crank](http://www.jobcrank.com/)yourname/jobs-jobcrank[You!](https://github.com)### Build your own providers

[](#build-your-own-providers)

New providers can be created by cloning the layout of an existing package. When choosing a name for your package, please don’t use the `joabpis` vendor prefix, as this implies that it is officially supported.

You should use your own username as the vendor prefix, and prepend `jobs-` to the package name to make it clear that your package works with Jobs Common. For example, if your GitHub username were prometheus, and you were implementing the Dice.com job listing API, a good name for your composer package would be `prometheus/jobs-dice`.

#### Implementing your own provider

[](#implementing-your-own-provider)

If you are working with a job board service not supported out-of-the-box or by an existing package, it is quite simple to implement your own. Simply extend `JobApis\Jobs\Client\Providers\AbstractProvider` and `JobApis\Jobs\Client\Queries\AbstractQuery` and implement the required abstract methods in each:

```
// JobApis\Jobs\Client\Providers\AbstractProvider

abstract public function createJobObject($payload);

abstract public function getDefaultResponseFields();

abstract public function getListingsPath();

// JobApis\Jobs\Client\Queries\AbstractQuery

abstract public function getBaseUrl();

abstract public function getKeyword();
```

Each of these abstract methods contain a docblock defining their expectations and typical behavior. Once you have extended these classes, you can simply follow the example above using your new `Provider`.

Each job object that is created will automatically set `source` and `query` based on the criteria passed into the provider. If you would like to customize this `source` value, your provider must implement a `getSource` method that returns a string to identify your provider's source.

For an example of each of the concrete classes you'll need to implement, see the `/tests/fixtures` folder in this repository.

#### Make your provider official

[](#make-your-provider-official)

If you want to transfer your provider to the `jobapis` GitHub organization and add it to the list of officially supported providers, please open a pull request on the jobapis/jobs-common package. Before new providers will be accepted, they must have 100% unit test code coverage, and follow the conventions and code style used in other Jobs Client providers.

Install
-------

[](#install)

Via Composer

```
$ composer require jobapis/jobs-common
```

Testing
-------

[](#testing)

```
$ ./vendor/bin/phpunit
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](https://github.com/jobapis/jobs-common/blob/master/CONTRIBUTING.md) for details.

Credits
-------

[](#credits)

- [Karl Hughes](https://github.com/karllhughes)
- [Steven Maguire](https://github.com/stevenmaguire)
- [All Contributors](https://github.com/jobapis/jobs-common/contributors)

License
-------

[](#license)

The Apache 2.0. Please see [License File](https://github.com/jobapis/jobs-common/blob/master/LICENSE) for more information.

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity41

Moderate usage in the ecosystem

Community30

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 72.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~42 days

Recently: every ~21 days

Total

15

Last Release

3398d ago

Major Versions

1.0.4 → 2.0.0-beta2016-09-02

### Community

Maintainers

![](https://www.gravatar.com/avatar/8f48fe8aced156a4651617032e4d126d7e3f696e46539688b3bda792d28ee0b4?d=identicon)[karllhughes](/maintainers/karllhughes)

---

Top Contributors

[![karllhughes](https://avatars.githubusercontent.com/u/1103622?v=4)](https://github.com/karllhughes "karllhughes (137 commits)")[![stevenmaguire](https://avatars.githubusercontent.com/u/1851973?v=4)](https://github.com/stevenmaguire "stevenmaguire (52 commits)")[![chadidi](https://avatars.githubusercontent.com/u/9916806?v=4)](https://github.com/chadidi "chadidi (1 commits)")

---

Tags

objectapi clientjobsjob boards

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/jobapis-jobs-common/health.svg)

```
[![Health](https://phpackages.com/badges/jobapis-jobs-common/health.svg)](https://phpackages.com/packages/jobapis-jobs-common)
```

###  Alternatives

[crowdin/crowdin-api-client

PHP client library for Crowdin API v2

611.5M5](/packages/crowdin-crowdin-api-client)[jobapis/jobs-ziprecruiter

Making it simple to integrate your application with ZipRecruiter Jobs API.

134.9k1](/packages/jobapis-jobs-ziprecruiter)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
