Your personal job-search assistant

Overview

JobApis.com JobsToMail

Your personal job-search assistant

Latest Version Software License Build Status Coverage Status Quality Score Total Downloads

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 project. Users can sign up to receive jobs for free at 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 using the Jobs Multi and Jobs Common packages. The frontend uses Bootstrap v4 and Gulp.

Mission

JobApis makes job board and company data more accessible through open source software. To learn more, visit JobApis.com, or contact us at [email protected].

Setup

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:

Local installation

The recommended installation method is Composer.

  1. Use composer to create a new project:
composer create-project jobapis/jobs-to-mail
  1. Copy .env.example to .env and customize it with your environmental variables.

  2. Run npm install && gulp to build the frontend.

  3. Run the built-in web server to serve the application: php artisan serve.

  4. Visit the local application at localhost:8000.

  5. Once at least one user has signed up, you can run the job collection and email command: php artisan jobs:email.

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

  1. Use the one-click Deploy to Heroku button: 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

Additional Requirements

  1. Use composer to create a new project:
composer create-project jobapis/jobs-to-mail
  1. Copy .env.example to .env and customize it with your environmental variables.

  2. Run npm install && gulp to build the frontend.

  3. 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;
    }
}
  1. Ensure that PHP-FPM is running, and ensure that your site is running at your domain.

  2. Create a cron job to run the job collection and notification process nightly: php artisan jobs:email.

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 protected]

Testing

Tests are run using PHPUnit. We also employ Faker to help with producing fake data and Mockery 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

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:

  • 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

Contributions are welcomed and encouraged! Please see JobApis' contribution guidelines for details, or create an issue in Github if you have any questions.

Legal

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

This package uses the Apache 2.0 license. Please see the License File for more information.

Copyright

Copyright 2016, Karl L. Hughes.

Comments
  • List job boards being searched on homepage

    List job boards being searched on homepage

    I got some feedback from a user who said it would be helpful to know which job boards are being searched when signing up. I haven't put a ton of thought into this, but maybe we could add a box on the homepage with icons and names of sites that are being searched?

    design/styling 
    opened by karllhughes 8
  • Unable to Installs jobs-to-mail

    Unable to Installs jobs-to-mail

    Hello,

    I tried to install jobs-to-mail by following the instructions on your README.MD, and it went well for the 1st few libraries / packaged and then failed. I've pasted the entire log below.

    Can someone tell me what I am doing wrong?

    Environment: WAMP, Composer for Windows, Windows Server 2012,

    Install Log:

    (Markdown is messing up the log, changing - to bullet lists etc. Sorry about that)

    ME@MYDEVWINSERVER-2012 MINGW64 /c/wamp64/www/php/Web $ composer create-project jobapis/jobs-to-mail Installing jobapis/jobs-to-mail (1.0.0)

    • Installing jobapis/jobs-to-mail (1.0.0) Downloading: 100% Created project in C:\wamp64\www\php\Web\jobs-to-mail

    php -r "file_exists('.env') || copy('.env.example', '.env');" Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Package operations: 83 installs, 0 updates, 0 removals

    • Installing nikic/php-parser (v3.0.2) Downloading: 100%
    • Installing classpreloader/classpreloader (3.1.0) Downloading: 100%
    • Installing doctrine/inflector (v1.1.0) Downloading: 100%
    • Installing guzzlehttp/promises (v1.3.1) Downloading: 100%
    • Installing psr/http-message (1.0.1) Downloading: 100%
    • Installing guzzlehttp/psr7 (1.3.1) Downloading: 100%
    • Installing jakub-onderka/php-console-color (0.1) Downloading: 100%
    • Installing symfony/polyfill-util (v1.3.0) Downloading: 100%
    • Installing symfony/polyfill-php56 (v1.3.0) Downloading: 100%
    • Installing jeremeamia/superclosure (2.3.0) Downloading: 100%
    • Installing guzzlehttp/guzzle (6.2.2) Downloading: 100%
    • Installing jobapis/jobs-common (2.1.1) Downloading: 100%
    • Installing jobapis/jobs-ziprecruiter (1.0.0) Downloading: 100%
    • Installing jobapis/jobs-usajobs (0.2.0) Downloading: 100%
    • Installing jobapis/jobs-stackoverflow (0.1.0) Downloading: 100%
    • Installing jobapis/jobs-juju (2.0.0) Downloading: 100%
    • Installing jobapis/jobs-jobinventory (0.1.0) Downloading: 100%
    • Installing jobapis/jobs-indeed (1.0.0) Downloading: 100%
    • Installing jobapis/jobs-ieee (0.1.0) Downloading: 100%
    • Installing jobapis/jobs-govt (1.0.0) Downloading: 100%
    • Installing jobapis/jobs-github (1.0.0) Downloading: 100%
    • Installing jobapis/jobs-dice (1.0.1) Downloading: 100%
    • Installing jobapis/jobs-careerjet (0.1.0) Downloading: 100%
    • Installing jobapis/jobs-careercast (1.0.1) Downloading: 100%
    • Installing jobapis/jobs-careerbuilder (2.0.3) Downloading: 100%
    • Installing jobapis/jobs-multi (1.0.1) Downloading: 100%
    • Installing league/csv (8.1.2) Downloading: 100%
    • Installing league/flysystem (1.0.32) Downloading: 100%
    • Installing psr/log (1.0.2) Downloading: 100%
    • Installing monolog/monolog (1.22.0) Downloading: 100%
    • Installing mtdowling/cron-expression (v1.1.0) Downloading: 100%
    • Installing symfony/polyfill-mbstring (v1.3.0) Downloading: 100%
    • Installing symfony/translation (v3.1.8) Downloading: 100%
    • Installing nesbot/carbon (1.21.0) Downloading: 100%
    • Installing symfony/var-dumper (v3.1.8) Downloading: 100%
    • Installing symfony/debug (v3.1.8) Downloading: 100%
    • Installing symfony/console (v3.1.8) Downloading: 100%
    • Installing jakub-onderka/php-console-highlighter (v0.3.2) Downloading: 100%
    • Installing dnoegel/php-xdg-base-dir (0.1) Downloading: 100%
    • Installing psy/psysh (v0.8.0) Downloading: 100%
    • Installing paragonie/random_compat (v2.0.4) Downloading: 100%
    • Installing ramsey/uuid (3.5.2) Downloading: 100%
    • Installing vlucas/phpdotenv (v2.4.0) Downloading: 100%
    • Installing symfony/routing (v3.1.8) Downloading: 100%
    • Installing symfony/process (v3.1.8) Downloading: 100%
    • Installing symfony/http-foundation (v3.1.8) Downloading: 100%
    • Installing symfony/event-dispatcher (v3.2.1) Downloading: 100%
    • Installing symfony/http-kernel (v3.1.8) Downloading: 100%
    • Installing symfony/finder (v3.1.8) Downloading: 100%
    • Installing swiftmailer/swiftmailer (v5.4.4) Downloading: 100%
    • Installing laravel/framework (v5.3.28) Downloading: 100%
    • Installing s-ichikawa/laravel-sendgrid-driver (1.1.4) Downloading: 100%
    • Installing fzaninotto/faker (v1.6.0) Downloading: 100%
    • Installing hamcrest/hamcrest-php (v1.2.2) Downloading: 100%
    • Installing mockery/mockery (0.9.7) Downloading: 100%
    • Installing webmozart/assert (1.2.0) Downloading: 100%
    • Installing phpdocumentor/reflection-common (1.0) Downloading: 100%
    • Installing phpdocumentor/type-resolver (0.2.1) Downloading: 100%
    • Installing phpdocumentor/reflection-docblock (3.1.1) Downloading: 100%
    • Installing phpunit/php-token-stream (1.4.9) Downloading: 100%
    • Installing symfony/yaml (v3.2.1) Downloading: 100%
    • Installing sebastian/version (2.0.1) Downloading: 100%
    • Installing sebastian/resource-operations (1.0.0) Downloading: 100%
    • Installing sebastian/recursion-context (2.0.0) Downloading: 100%
    • Installing sebastian/object-enumerator (2.0.0) Downloading: 100%
    • Installing sebastian/global-state (1.1.1) Downloading: 100%
    • Installing sebastian/exporter (2.0.0) Downloading: 100%
    • Installing sebastian/environment (2.0.0) Downloading: 100%
    • Installing sebastian/diff (1.4.1) Downloading: 100%
    • Installing sebastian/comparator (1.2.2) Downloading: 100%
    • Installing phpunit/php-text-template (1.2.1) Downloading: 100%
    • Installing doctrine/instantiator (1.0.5) Downloading: 100%
    • Installing phpunit/phpunit-mock-objects (3.4.3) Downloading: 100%
    • Installing phpunit/php-timer (1.0.8) Downloading: 100%
    • Installing phpunit/php-file-iterator (1.4.2) Downloading: 100%
    • Installing sebastian/code-unit-reverse-lookup (1.0.0) Downloading: 100%
    • Installing phpunit/php-code-coverage (4.0.4) Downloading: 100%
    • Installing phpspec/prophecy (v1.6.2) Downloading: 100%
    • Installing myclabs/deep-copy (1.5.5) Downloading: 100%
    • Installing phpunit/phpunit (5.7.4) Downloading: 100%
    • Installing squizlabs/php_codesniffer (2.7.1) Downloading: 100%
    • Installing symfony/css-selector (v3.1.8) Downloading: 100%
    • Installing symfony/dom-crawler (v3.1.8) Downloading: 100% league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to use S3 storage with AWS SDK v 2) league/flysystem suggests installing league/flysystem-aws-s3-v3 (Allows you to use S3 storage with AWS SDK v 3) league/flysystem suggests installing league/flysystem-azure (Allows you to use Windows Azure Blob storage) league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem adapter decorator for metada ta caching) league/flysystem suggests installing league/flysystem-copy (Allows you to use Copy.com storage) league/flysystem suggests installing league/flysystem-dropbox (Allows you to use Dropbox storage) league/flysystem suggests installing league/flysystem-eventable-filesystem (Allows you to use EventableFiles ystem) league/flysystem suggests installing league/flysystem-rackspace (Allows you to use Rackspace Cloud Files) league/flysystem suggests installing league/flysystem-sftp (Allows you to use SFTP server storage via phpsec lib) league/flysystem suggests installing league/flysystem-webdav (Allows you to use WebDAV storage) league/flysystem suggests installing league/flysystem-ziparchive (Allows you to use ZipArchive adapter) monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoD B) monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server) monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required)) monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server) monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server) monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver) monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server us ing php-amqplib) monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome) monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar) monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server) monolog/monolog suggests installing sentry/sentry (Allow sending log messages to a Sentry server) symfony/translation suggests installing symfony/config () symfony/var-dumper suggests installing ext-symfony_debug () psy/psysh suggests installing ext-pcntl (Enabling the PCNTL extension makes PsySH a lot happier :)) psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.) psy/psysh suggests installing ext-posix (If you have PCNTL, you'll want the POSIX extension as well.) psy/psysh suggests installing ext-readline (Enables support for arrow-key history navigation, and showing an d manipulating command history.) psy/psysh suggests installing hoa/console (A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit.) paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.) ramsey/uuid suggests installing ext-libsodium (Provides the PECL libsodium extension for use with the Sodium RandomGenerator) ramsey/uuid suggests installing ext-uuid (Provides the PECL UUID extension for use with the PeclUuidTimeGene rator and PeclUuidRandomGenerator) ramsey/uuid suggests installing ircmaxell/random-lib (Provides RandomLib for use with the RandomLibAdapter) ramsey/uuid suggests installing moontoast/math (Provides support for converting UUID to 128-bit integer (in string form).) ramsey/uuid suggests installing ramsey/uuid-console (A console application for generating UUIDs with ramsey/ uuid) ramsey/uuid suggests installing ramsey/uuid-doctrine (Allows the use of Ramsey\Uuid\Uuid as Doctrine field t ype.) symfony/routing suggests installing doctrine/annotations (For using the annotation loader) symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader) symfony/routing suggests installing symfony/dependency-injection (For loading routes from a service) symfony/routing suggests installing symfony/expression-language (For using expression matching) symfony/event-dispatcher suggests installing symfony/dependency-injection () symfony/http-kernel suggests installing symfony/browser-kit () symfony/http-kernel suggests installing symfony/class-loader () symfony/http-kernel suggests installing symfony/config () symfony/http-kernel suggests installing symfony/dependency-injection () laravel/framework suggests installing aws/aws-sdk-php (Required to use the SQS queue driver and SES mail dri ver (~3.0).) laravel/framework suggests installing doctrine/dbal (Required to rename columns and drop SQLite columns (~2. 4).) laravel/framework suggests installing league/flysystem-aws-s3-v3 (Required to use the Flysystem S3 driver (~ 1.0).) laravel/framework suggests installing league/flysystem-rackspace (Required to use the Flysystem Rackspace dr iver (~1.0).) laravel/framework suggests installing pda/pheanstalk (Required to use the beanstalk queue driver (~3.0).) laravel/framework suggests installing predis/predis (Required to use the redis cache and queue drivers (~1.0 ).) laravel/framework suggests installing pusher/pusher-php-server (Required to use the Pusher broadcast driver (~2.0).) laravel/framework suggests installing symfony/psr-http-message-bridge (Required to use psr7 bridging feature s (0.2.).) sebastian/global-state suggests installing ext-uopz () phpunit/php-code-coverage suggests installing ext-xdebug (>=2.4.0) phpunit/phpunit suggests installing ext-xdebug (*) phpunit/phpunit suggests installing phpunit/php-invoker (~1.1) Generating autoload files

    Illuminate\Foundation\ComposerScripts::postInstall php artisan optimize

    Notice: date_default_timezone_set(): Timezone ID '' is invalid in C:\wamp64\www\php\Web\jobs-to-mail\vendor\ laravel\framework\src\Illuminate\Foundation\Bootstrap\LoadConfiguration.php on line 45 Generating optimized class loader The compiled class file has been removed.

    php artisan migrate --force

    Notice: date_default_timezone_set(): Timezone ID '' is invalid in C:\wamp64\www\php\Web\jobs-to-mail\vendor\ laravel\framework\src\Illuminate\Foundation\Bootstrap\LoadConfiguration.php on line 45

    [Illuminate\Database\QueryException]
    could not find driver (SQL: select * from information_schema.tables where table_schema = public and table_ name = mi grations)

    [PDOException] could not find driver

    Script php artisan migrate --force handling the post-install-cmd event returned with error code 1

    opened by theShiva 7
  • [WIP] one click heroku deploy button

    [WIP] one click heroku deploy button

    This PR is related to #18

    I added some basic configuration for deploy the website to heroku. There are still some environment variables that I am not sure if I should add to the initial process. Without some third party API keys, the new instance kind of not that useful. If there are some demo API keys can be provided as default value, this might be more useful than now. @karllhughes

    opened by soleo 3
  • Token table migration fails with MySQL database

    Token table migration fails with MySQL database

    The "create_tokens_table" migration fails if you're using a MySql/MariaDB database. It is trying to create an unsigned uuid field, but the field is of type CHAR in MySQL, so can't be unsigned.

    I'm happy to create a pull request to remove the unsigned designator from the migration if it's helpful.

    opened by maxleaver 2
  • Premium user tier

    Premium user tier

    I'm exploring what features would be premium. Likely the following features will be "premium":

    • Creating more than 3 searches
    • Downloading a CSV of job searches
    • Filtering recruiter job listings.

    I'd love input on this. I understand that not all users will want to pay so I want to keep a free tier no matter what, but in order to help fund the website I need to find some way to make a few bucks.

    new feature 
    opened by karllhughes 2
  • Replace Token Generation With random_compat or PHP7 random_bytes

    Replace Token Generation With random_compat or PHP7 random_bytes

    There was a long discussion about openssl_random_pseudo_bytes(). Ref https://github.com/paragonie/random_compat/issues/5

    In PHP7, @SammyK created a cryptographically secure version of generating random bytes https://secure.php.net/manual/en/function.random-bytes.php. openssl_random_pseudo_bytes should be used as the last resort for generating random bytes, not the first option.

    For earlier PHP version, https://packagist.org/packages/paragonie/random_compat would be a good replacement.

    security 
    opened by soleo 2
  • suggest 24pullrequests participation

    suggest 24pullrequests participation

    @karllhughes

    https://24pullrequests.com is a pretty cool event which encourage users to contribute to open source projects every year in December. It wouldn't hurt to get some help from others. I made a project suggestion on 24pullrequests. I'd encourage you to do it from your account and see how effective it could be.

    opened by soleo 1
  • Document process for server setup

    Document process for server setup

    We currently have a documented process for setting this project up locally and via Heroku, but it would be great to add general Linux VM setup instructions as well.

    documentation 
    opened by karllhughes 1
  • Version 1.2 release

    Version 1.2 release

    Fixed

    • Reference to outdated bootstrap variable.
    • Instructions for Docker installation.
    • Extra volume in Docker compose file.

    Added

    • NPM package-lock.json file.
    • Support for Monster RSS feed and Jobs2Careers.
    • Source to list of jobs for each day.
    • max_searches field to each user that allows more searches.

    Changed

    • Switched Jobs Hub advert out for new email to upgrade link.
    • Using config mail.from.address for admin email universally.
    • Upgraded to Laravel 5.5, PHP 7.1.
    • Upgraded several dependencies to new major versions.
    opened by karllhughes 0
  • Version 1.0 Release

    Version 1.0 Release

    1.0.0 - 2016-12-31

    Added

    • User Logins via email/token.
    • Ability for Users to confirm emails once and create multiple Searches.
    • Storing daily email data in notifications DB table.
    • Users can download their daily jobs as a CSV.
    • New links to email footer to manage job search subscriptions.
    • New page to view a user's searches.
    • Filtering out recruiter listings:
      • recruiters database table, seeder, model.
      • Boolean value for filtering recruiters from results of a search.
      • New filter to remove recruiter listings if preferred.
    • New database table/model for Searches.
    • jobs:email command now uses Search model instead of User model for queries.
    • Moved job/collection-related filters into their own folder.
    • Added JS dependencies: Jquery, Bootstrap, Tether.
    • Support for new job boards.
    • Added timezone to .env
    • Premium interest page and form.
    • Added images of providers on home page.
    • Upgraded to JobsMulti v1.0.
    • Support for PHP 7.1.
    • One-click Heroku deploy.

    Fixed

    • Plaintext email job listings were showing up as blank.
    • Moved unsubscribe endpoint to /users/:id/unsubscribe.
    • Removed uuid unsigned constraint from token table migration.
    opened by karllhughes 0
  • Premium interest page

    Premium interest page

    This PR adds a new page for users to sign up for Premium accounts. Currently it doesn't actually update their account, it just sends me an email letting me know the user is interested in Premium.

    Later I'll add a payment form and give users the ability to upgrade accounts on their own https://github.com/jobapis/jobs-to-mail/issues/16

    new feature 
    opened by karllhughes 0
  • Adding in Greenhouse.io & hire.withgoogle.com

    Adding in Greenhouse.io & hire.withgoogle.com

    Sorry, I'm new to open source projects but wanted to jump in on this one as I'm currently active job hunting.

    I have found when I do google searches like "site:hire.withgoogle.com" and "site:greenhous.io" along with a position and a location in the query, I can yield those employers that are utilizing those services. Often times, Google is indexing them rather slowly and the jobs will be taken off.

    My thought is that there is a way to web crawl and web scrape those two sites on a weekly basis or something for new job postings by their respective employer clientele.

    Thoughts? Thanks for reading!

    opened by rpmullig 1
  • Add list of searches to home page

    Add list of searches to home page

    I'd like to show users what kind of results they can expect by linking to a few curated searches on the home page. I don't want to show just any searches, but maybe hand-select some by flagging them in the database.

    I don't have a fully-fleshed out spec here, just a thought.

    new feature 
    opened by karllhughes 0
  • Show example of what an email looks like on the home page

    Show example of what an email looks like on the home page

    Might help convince people whether signing up is worth it. We could show a specific email or the latest results from a few of the searches conducted maybe?

    It would also make the home page a bit more dynamic/interesting.

    new feature 
    opened by karllhughes 0
  • Add browser tests with Laravel Dusk

    Add browser tests with Laravel Dusk

    One way to prevent regression in this app as the codebase and feature set grows is to add browser (or acceptance) tests. I think Laravel Dusk makes sense given our stack.

    Initial test cases

    • User can submit email to log in, email sent to user
    • User can log in with valid token
    • User can create account and search with email and search term
    • Logged in user can create search
    • Logged in user can remove search
    • Logged in user can see most recently collected jobs for a search
    tests 
    opened by karllhughes 0
Releases(1.2.0)
  • 1.2.0(Dec 30, 2017)

    1.2.0 - 2017-12-30

    Fixed

    • Reference to outdated bootstrap variable.
    • Instructions for Docker installation.
    • Extra volume in Docker compose file.
    • Styling updates for bootstrap 4 beta.

    Added

    • NPM package-lock.json file.
    • Support for Monster RSS feed and Jobs2Careers.
    • Source to list of jobs for each day.
    • max_searches field to each user that allows more searches.

    Changed

    • Switched Jobs Hub advert out for new email to upgrade link.
    • Using config mail.from.address for admin email universally.
    • Upgraded to Laravel 5.5, PHP 7.1.
    • Upgraded several dependencies to new major versions.

    Removed

    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Apr 18, 2017)

    1.1.0 - 2017-04-18

    Added

    • New "notification" page to view all jobs collected on a day for a specific search term.
    • Added recruiters to database seeder.
    • Indication when job posted by known recruiter.
    • Artisan command to delete notifications > 7 days old: php artisan notifications:delete.
    • Added Docker files, instructions to readme.

    Changed

    • Only returning jobs from the past 48 hours to cut down on repeated results.
    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Dec 31, 2016)

    1.0.0 - 2016-12-31

    Added

    • User Logins via email/token.
    • Ability for Users to confirm emails once and create multiple Searches.
    • Storing daily email data in notifications DB table.
    • Users can download their daily jobs as a CSV.
    • New links to email footer to manage job search subscriptions.
    • New page to view a user's searches.
    • Filtering out recruiter listings:
      • recruiters database table, seeder, model.
      • Boolean value for filtering recruiters from results of a search.
      • New filter to remove recruiter listings if preferred.
    • New database table/model for Searches.
    • jobs:email command now uses Search model instead of User model for queries.
    • Moved job/collection-related filters into their own folder.
    • Added JS dependencies: Jquery, Bootstrap, Tether.
    • Support for new job boards.
    • Added timezone to .env
    • Premium interest page and form.
    • Added images of providers on home page.
    • Upgraded to JobsMulti v1.0.
    • Support for PHP 7.1.
    • One-click Heroku deploy.

    Fixed

    • Plaintext email job listings were showing up as blank.
    • Moved unsubscribe endpoint to /users/:id/unsubscribe.
    • Removed uuid unsigned constraint from token table migration.
    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Oct 14, 2016)

    0.4.0 - 2016-10-14

    Added

    • Support for Ziprecruiter job board.
    • Automatically run migrations after composer install.
    • Logging errors from collections.
    • Model factories for database seed operations.
    • Command line argument to run collection job for single email.

    Fixed

    • Bug in Careerbuilder API via Jobs-Multi upgrade.
    • Removing HTML highlighting characters from Juju job results.
    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Oct 7, 2016)

    0.3.0 - 2016-10-06

    Added

    • Date posted to email when valid DateTime object is included in result.
    • Support for Juju job board.
    • Improvements to date sorting in email:
      • Setting max age for results
      • Fixing date comparison by ensuring all results use DateTime
      • Setting max results

    Fixed

    • Queue worker on Heroku doesn't work with timeout. Adjusting procfile appropriately.
    • Command now queues jobs asynchronously.
    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Sep 30, 2016)

    0.2.0 - 2016-09-29

    Added

    • Keyword and location parameters to jobs email.
    • Heroku and Composer project setup instructions.
    • Terms and privacy policy.

    Fixed

    • Old references were loading bootstrap 3 instead of 4.

    Security

    • Use random_bytes() instead of openssl_random_pseudo_bytes() for secure token generation.
    Source code(tar.gz)
    Source code(zip)
  • 0.1.0(Sep 25, 2016)

    0.1.0 - 2016-09-25

    Added

    • Initial pre-release.
    • Features:
      • User can enter valid email with keyword and location
      • User can confirm email
      • Job collection and email command line job
      • One-click unsubscribe

    Fixed

    • Nothing

    Removed

    • Nothing

    Security

    • Nothing
    Source code(tar.gz)
    Source code(zip)
Owner
JobApis
Making job board and company data more accessible.
JobApis
A fully featured full text search engine written in PHP

TNTSearch TNTSearch is a full-text search (FTS) engine written entirely in PHP. A simple configuration allows you to add an amazing search experience

TNT Studio 2.9k Jan 8, 2023
SphinxQL Query Builder generates SphinxQL, a SQL dialect, which is used to query the Sphinx search engine. (Composer Package)

Query Builder for SphinxQL About This is a SphinxQL Query Builder used to work with SphinxQL, a SQL dialect used with the Sphinx search engine and it'

FoolCode 318 Oct 21, 2022
Sphinx Search library provides SphinxQL indexing and searching features

Sphinx Search Sphinx Search library provides SphinxQL indexing and searching features. Introduction Installation Configuration (simple) Usage Search I

Ripa Club 62 Mar 14, 2022
A search package for Laravel 5.

Search Package for Laravel 5 This package provides a unified API across a variety of different full text search services. It currently supports driver

Mark Manos 354 Nov 16, 2022
A php trait to search laravel models

Searchable, a search trait for Laravel Searchable is a trait for Laravel 4.2+ and Laravel 5.0 that adds a simple search function to Eloquent Models. S

Nicolás López Jullian 2k Dec 27, 2022
Driver for Laravel Scout search package based on https://github.com/teamtnt/tntsearch

TNTSearch Driver for Laravel Scout - Laravel 5.3 - 8.0 This package makes it easy to add full text search support to your models with Laravel 5.3 to 8

TNT Studio 1k Dec 27, 2022
Unmaintained: Laravel Searchy makes user driven searching easy with fuzzy search, basic string matching and more to come!

!! UNMAINTAINED !! This package is no longer maintained Please see Issue #117 Here are some links to alternatives that you may be able to use (I do no

Tom Lingham 533 Nov 25, 2022
Kirby docs search workflow for Alfred

Kirby Docs search workflow for Alfred 4 An ultra-fast Kirby Docs search workflow for Alfred 4 Installation Download the latest version Install the wor

Adam Kiss 30 Dec 29, 2022
Build and execute an Elasticsearch search query using a fluent PHP API

PACKAGE IN DEVELOPMENT, DO NOT USE YET Build and execute ElasticSearch queries using a fluent PHP API This package is a lightweight query builder for

Spatie 94 Dec 14, 2022
A TYPO3 extension that integrates the Apache Solr search server with TYPO3 CMS. dkd Internet Service GmbH is developing the extension. Community contributions are welcome. See CONTRIBUTING.md for details.

Apache Solr for TYPO3 CMS A TYPO3 extension that integrates the Apache Solr enterprise search server with TYPO3 CMS. The extension has initially been

Apache Solr for TYPO3 126 Dec 7, 2022
A site search engine

THIS PACKAGE IS IN DEVELOPMENT, DO NOT USE IN PRODUCTION YET A site search engine This package can crawl your entire site and index it. Support us We

Spatie 219 Nov 8, 2022
Support search in flarum by sonic

flarum-sonic Support search by Sonic Install Sonic following this guide Install the extension: composer require ganuonglachanh/sonic Change info in a

null 18 Dec 21, 2022
Search among multiple models with ElasticSearch and Laravel Scout

For PHP8 support use php8 branch For Laravel Framework < 6.0.0 use 3.x branch The package provides the perfect starting point to integrate ElasticSear

Sergey Shlyakhov 592 Dec 25, 2022
This is an open source demo of smart search feature implemented with Laravel and Selectize plugin

Laravel smart search implementation See demo at: http://demos.maxoffsky.com/shop-search/ Tutorial at: http://maxoffsky.com/code-blog/laravel-shop-tuto

Maksim Surguy 215 Sep 8, 2022
Laravel package to search through multiple Eloquent models. Supports sorting, pagination, scoped queries, eager load relationships and searching through single or multiple columns.

Laravel Cross Eloquent Search This Laravel package allows you to search through multiple Eloquent models. It supports sorting, pagination, scoped quer

Protone Media 844 Dec 25, 2022
This modules provides a Search API Backend for Elasticsearch.

Search API ElasticSearch This modules provides a Search API Backend for Elasticsearch. This module uses the official Elasticsearch PHP Client. Feature

null 1 Jan 20, 2022
Laravel Searchable - This package makes it easy to get structured search from a variety of sources

This package makes it easy to get structured search from a variety of sources. Here's an example where we search through some model

Spatie 1.1k Dec 31, 2022
Search products, categories, brands or tags with ElasticSearch

ElasticSearch for Shopaholic This plugin allows you to use ElasticSearch as search engine for Shopaholic. Benefits Easy to install, easy to use Opened

Biz-Mark 4 Feb 18, 2022
Illusionist Searcher - Generates database queries based on search syntax

Illusionist Searcher Generates database queries based on search syntax. English | 中文 ✨ Features Zero configuration Compatible with laravel/scout and l

A doer with magic 2 Feb 24, 2022