PHPackages                             jobapis/jobs-to-mail - 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. [Mail &amp; Notifications](/categories/mail)
4. /
5. jobapis/jobs-to-mail

ActiveProject[Mail &amp; Notifications](/categories/mail)

jobapis/jobs-to-mail
====================

Your personal job-search assistant.

1.2.0(8y ago)1015833[13 issues](https://github.com/jobapis/jobs-to-mail/issues)Apache 2.0PHPPHP &gt;=7.1.0

Since Sep 25Pushed 7y ago9 watchersCompare

[ Source](https://github.com/jobapis/jobs-to-mail)[ Packagist](https://packagist.org/packages/jobapis/jobs-to-mail)[ RSS](/packages/jobapis-jobs-to-mail/feed)WikiDiscussions master Synced 4w ago

READMEChangelog (7)Dependencies (11)Versions (10)Used By (0)

[![JobApis.com](https://camo.githubusercontent.com/99f7a7ebb7ad8bf37b4df3ddc41ba43c190f949ae5ef1f5d1befef590212b36e/68747470733a2f2f692e696d6775722e636f6d2f39564f416b725a2e706e67)](https://www.jobapis.com) JobsToMail
========================================================================================================================================================================================================================

[](#-jobstomail)

#### Your personal job-search assistant

[](#your-personal-job-search-assistant)

[![Latest Version](https://camo.githubusercontent.com/f960918770a6921ac6e65a06b545b85f20b6bde5469da7cd1e575dc9519cabae/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f6a6f62617069732f6a6f62732d746f2d6d61696c2e7376673f7374796c653d666c61742d737175617265)](https://github.com/jobapis/jobs-to-mail/releases)[![Software License](https://camo.githubusercontent.com/83a69279c9f2ed137be556c08d1ceaf2161ae96eeb88f8caade8ef619f2d6c27/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d415041434845253230322e302d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](license.md)[![Build Status](https://camo.githubusercontent.com/ff62965490d8c820429332181e1a0ec7d00880c908ec5e8d03ed5af97af6f43d/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6a6f62617069732f6a6f62732d746f2d6d61696c2f6d61737465722e7376673f7374796c653d666c61742d7371756172652631)](https://travis-ci.org/jobapis/jobs-to-mail)[![Coverage Status](https://camo.githubusercontent.com/58a4257e5fd471796d31d5354f422c83d42d4ad50666b78ed5fb3825144efe57/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f6a6f62617069732f6a6f62732d746f2d6d61696c2e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/jobapis/jobs-to-mail/code-structure)[![Quality Score](https://camo.githubusercontent.com/bf926fb0e1d7ccf152fe50845de916991843e2af1539a17c8030e53da2e8ab08/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f6a6f62617069732f6a6f62732d746f2d6d61696c2e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/jobapis/jobs-to-mail)[![Total Downloads](https://camo.githubusercontent.com/33a12734c457bff3736aa82363dedb7dff42e7f4d7634908d547fe468d73bc63/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a6f62617069732f6a6f62732d746f2d6d61696c2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jobapis/jobs-to-mail)

About
-----

[](#about)

JobsToMail is an open source web application that allows users to sign up to receive emails with jobs from one of several job boards supported by the [JobApis](https://www.jobapis.com/) project. Users can sign up to receive jobs for free at [jobs-to-mail.herokuapp.com](https://jobs-to-mail.herokuapp.com/) or use the setup instructions below to run the application on their own server.

This application is built on [Laravel 5.5](http://laravel.com/) using the [Jobs Multi](https://github.com/jobapis/jobs-multi) and [Jobs Common](https://github.com/jobapis/jobs-common) packages. The frontend uses [Bootstrap v4](http://v4-alpha.getbootstrap.com/) and [Gulp](http://gulpjs.com/).

### Mission

[](#mission)

[JobApis](https://www.jobapis.com) makes job board and company data more accessible through open source software. To learn more, visit [JobApis.com](https://www.jobapis.com), or contact us at .

Setup
-----

[](#setup)

### Requirements

[](#requirements)

This application is only designed to work with PHP 7.0+ and Postgres 9.5+. Some backwards compatibility may be possible, but is not officially supported at this time.

Installation requires the following:

- [PHP 7.1+](http://php.net/releases/7_1_0.php)
- [Postgresql 9.5](https://www.postgresql.org/)
- [Composer](https://getcomposer.org/)
- [Node 6.0+](https://nodejs.org/en/blog/release/v6.0.0/)
- [NPM](https://www.npmjs.com/)
- [Gulp](https://github.com/gulpjs/gulp-cli)
- A web server ([Nginx](https://nginx.org/en/) recommended)

### Local installation

[](#local-installation)

The recommended installation method is [Composer](https://getcomposer.org/).

1. Use composer to [create a new project](https://getcomposer.org/doc/03-cli.md#create-project):

```
composer create-project jobapis/jobs-to-mail

```

2. Copy `.env.example` to `.env` and customize it with your environmental variables.
3. Run `npm install && gulp` to build the frontend.
4. Run the built-in web server to serve the application: `php artisan serve`.
5. Visit the local application at `localhost:8000`.
6. Once at least one user has signed up, you can run the job collection and email command: `php artisan jobs:email`.

### Docker installation

[](#docker-installation)

After you've got Docker installed and running:

1. Install composer dependencies: `docker run --rm -v $(pwd):/app composer:latest install`
2. Copy `.env.example` to `.env` and customize it with your environmental variables.
3. Run `docker-compose build` and then `docker-compose up -d` to get the services running.
4. Run `npm install && node node_modules/.bin/gulp` to build the frontend.
5. Run migrations: `docker exec jobstomail_web_1 php artisan migrate`.
6. Run the collect and email command: `docker exec jobstomail_web_1 php artisan jobs:email`.

You can run tests with `docker exec jobstomail_web_1 vendor/bin/phpunit`.

### Heroku installation

[](#heroku-installation)

1. Use the one-click Deploy to Heroku button: [![Deploy](https://camo.githubusercontent.com/4eea217b02568cc464752586784ae247b22e99fea520a15b6f919b15934ba8ca/68747470733a2f2f7777772e6865726f6b7563646e2e636f6d2f6465706c6f792f627574746f6e2e737667)](https://heroku.com/deploy)
2. After it's deployed, you should be able to visit your app and see the home page.
3. Set an application key by running `heroku run "php artisan key:generate --show" --app=j2m` and adding the key that is displayed to your app's config variables.
4. Add a job in Heroku Scheduler to run `php artisan jobs:email` every night. This will ensure that users receive their emails.

### Server installation

[](#server-installation)

#### Additional Requirements

[](#additional-requirements)

- A server running [Linux Ubuntu 16.04+](http://releases.ubuntu.com/16.04/)
- [PHP-FPM](https://php-fpm.org/)
- [NGINX](https://www.nginx.com/resources/wiki/)

1. Use composer to [create a new project](https://getcomposer.org/doc/03-cli.md#create-project):

```
composer create-project jobapis/jobs-to-mail

```

2. Copy `.env.example` to `.env` and customize it with your environmental variables.
3. Run `npm install && gulp` to build the frontend.
4. Point NGINX to serve to the `/public` directory. Your NGINX config block should look something like this:

```
server {
    listen       80;
    server_name  yourdomain.com;

    root   /home/user/jobs-to-mail/public;
    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

```

5. Ensure that PHP-FPM is running, and ensure that your site is running at your domain.
6. Create a [cron job](https://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/) to run the job collection and notification process nightly: `php artisan jobs:email`.

Command Line
------------

[](#command-line)

After users sign up for a job search, the only thing needed to collect jobs and send them emails is the following command:

```
php artisan jobs:email

```

This command will loop through each user, collect jobs based on their search criteria, and then email them when their list has been compiled.

Because this job search can take a long time, it is best to use a worker and run the job in the background (via cron job). Instructions for setting this up in Heroku are above, but if you have trouble, you can post a question to the Issues tab in the Github repository.

You can also run this job for only one email address in your system when testing or debugging:

```
php artisan jobs:email --email=karl@jobstomail.com

```

Testing
-------

[](#testing)

Tests are run using [PHPUnit](https://phpunit.de/). We also employ [Faker](https://github.com/fzaninotto/Faker) to help with producing fake data and [Mockery](http://docs.mockery.io/en/latest/) to mock dependencies in unit tests.

- Run all tests

```
vendor/bin/phpunit

```

Code coverage reports are automatically generated, and can be found in the `/build` directory after running the test suite.

Seeding data
------------

[](#seeding-data)

If you're doing local development, you may find it handy to seed the database with some test data. Using [Laravel's seed commands you can do just that](https://laravel.com/docs/5.5/seeding):

- Truncate and seed the database tables

```
php artisan db:seed

```

- Seed only

```
php artisan db:seed --class=TestingDatabaseSeeder

```

- Truncate only

```
php artisan db:seed --class=DatabaseTruncater

```

*Note: Truncation is permanent, so be careful running this in your production environment.*

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

[](#contributing)

Contributions are welcomed and encouraged! Please see [JobApis' contribution guidelines](https://www.jobapis.com/contributing/) for details, or create an issue in Github if you have any questions.

Legal
-----

[](#legal)

### Disclaimer

[](#disclaimer)

This package is not affiliated with or supported by any job boards and we are not responsible for any use or misuse of this software.

### License

[](#license)

This package uses the Apache 2.0 license. Please see the [License File](https://www.jobapis.com/license/) for more information.

### Copyright

[](#copyright)

Copyright 2016, [Karl L. Hughes](https://www.github.com/karllhughes).

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 96.6% 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 ~57 days

Recently: every ~110 days

Total

9

Last Release

3104d ago

Major Versions

0.4.0 → 1.0.x-dev2016-12-31

PHP version history (2 changes)0.1.0PHP &gt;=7.0.0

1.2.0PHP &gt;=7.1.0

### 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 (252 commits)")[![soleo](https://avatars.githubusercontent.com/u/635858?v=4)](https://github.com/soleo "soleo (8 commits)")[![maxleaver](https://avatars.githubusercontent.com/u/2152576?v=4)](https://github.com/maxleaver "maxleaver (1 commits)")

---

Tags

emailjob-boardjob-searchjobspersonal-assistantphpjob boardsemails

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

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

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

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.5M925](/packages/statamic-cms)[grumpydictator/firefly-iii

Firefly III: a personal finances manager.

23.8k69.4k](/packages/grumpydictator-firefly-iii)[spatie/laravel-failed-job-monitor

Get notified when a queued job fails

1.0k2.7M4](/packages/spatie-laravel-failed-job-monitor)[statamic-rad-pack/runway

Eloquently manage your database models in Statamic.

135212.4k7](/packages/statamic-rad-pack-runway)[firefly-iii/data-importer

Firefly III Data Import Tool.

8005.8k](/packages/firefly-iii-data-importer)[iwasherefirst2/laravel-multimail

A package to send mails easily from multiple mail accounts with Laravel

6395.1k](/packages/iwasherefirst2-laravel-multimail)

PHPackages © 2026

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