Plugins
0

Greenhouse Job Board

LICENSE TYPE: INFINITE

Description

Plugin to pull a job board from greenhouse.io via their API and display it on your WordPress site. Use a shortcode with your URL Token to pull the data. Find your URL token on this page when you are logged into your greenhouse account. Place [greenhouse url_token="your_url_token"] in your page or post.

Requirements:

  • Must have a greenhouse account.
  • Enter your URL Token & API key.

Initial Setup:

  • For ease of use, setup your URL Token within Settings->Greenhouse. (NOTE: you can also set this inline with shortcode attributes.)
  • Add shortcode or use the wizard to add a job board to any page or post.

Know the code!

  • To post your job board on a page, simply add the shortcode: [greenhouse]. By default, this will display all of the postings you currently have, along with the forms for applying. These forms are actually hosted at Greenhouse.io.

Current Features of the [greenhouse] shortcode:

Filter the jobs displayed. These filters can be combined to create complex filters.

Department Filtering

  • Want to filter results by department? Show only one deparment or a couple? Exclude a whole department?
  • Add the department_filter attribute: [greenhouse department_filter="Value1|Value2"]
  • supports single or multiple values, pipe-delimited
  • supports either using the department name OR the department id as the value.
  • supports negated values Excludes department(s) and display others. (example: department_filter="-Value3|-Value4")

Job Filtering

  • Want to filter results by job? display only specific jobs? Exclude specific jobs?
  • Add the job_filter attribute: [greenhouse job_filter="Value1|Value2"]
  • supports single or multiple values, pipe-delimited
  • supports either using the job title OR the job id as the value.
  • supports negated values Excludes this job and show others. (example: job_filter="-Value3|-Value4")

Office Filtering

  • Want to filter results by office? Show only jobs from a specific office or exclude a specific office?
  • Add the office_filter attribute: [greenhouse office_filter="Value1|Value2"]
  • supports single or multiple values, pipe-delimited
  • supports either using the office name OR the office id as the value.
  • supports negated values Excludes office(s) and only display jobs from elsewhere. (example: office_filter="-Value3")

Location Filtering

  • Want to filter results by location? Show only jobs from a specific location or exclude a specific location?
  • Add the location_filter attribute: [greenhouse location_filter="Value1|Value2"]
  • supports single or multiple values, pipe-delimited
  • supports location text value, since there is no id associated to locations in greenhouse.
  • supports negated values Excludes location(s) and only display jobs from elsewhere. (example: location_filter="-Value3")

Hiding Forms

  • If you dont want application forms to display and simply want to display listings, just add the hide_forms attribute
  • ex. [greenhouse hide_forms="true"]

Sort Jobs

  • Want to sort the jobs listed in your job board?
  • Add the orderby attribute to the shortcode.
  • Values allowed: title, date, id, department, office, location and random.
  • For example: [greenhouse orderby="title"]
  • Need to customize the order more?
  • There is an order attribute as well, supported values: DESC (default) and ASC.
  • There is a sticky option as well, force a single job to the top or bottom of the board.
  • Sticky attribute format: top or bottom followed by a pipe | and then the id for the job to stick.
  • For example: [greenhouse orderby="department" order="ASC" sticky="top|18590"]

Group Jobs

  • Want to group the jobs listed in your job board by department, office or location?
  • Add the group attribute to the shortcode.
  • Values accepted: department, office or location.
  • By default the group name will be used as a headline to seperate each group.
  • To omit group headlines, include shortcode attribute: group_headline=false.
  • For example: [greenhouse group="department" group_headline="false"

Coming Soon

Roadmap

  • Add filter hooks for customizing output
  • Cleaner, smarter interface
  • Widget
  • Templating for your own layout

Screenshots

Installation

This section describes how to install the plugin and get it working.

e.g.

  1. Upload greenhouse-job-board.php to the /wp-content/plugins/ directory
  2. Activate the plugin through the Plugins menu in WordPress
  3. Place [greenhouse url_token="your_url_token"] in your page or post.

FAQ

Yes, this plugin requires that you have a greenhouse.io account. You will need to enter your url token as well as your API key.

If you desire inline forms rather than iframe forms, to submit applications to the greenhouse API the web server must support cURL since it is used for the proxy data submission as to not expose your API key to the public.

Yes, you can add your own custom CSS on the plugin options page.

This plugin connects to Greenhouse to retreive data and saves it locally in your WordPress database for a while so your site will load faster and not have to wait for Greenhouse API everytime your job board loads. Go to the settings page and check your cache expiration setting to see how long this temporary or transient data will be stored locally, and also notice the checkbox option to clear the cache. To force fresh data to your site, check this box and save changes.

Yes, there is a php filter in place for after the job title on the full job listing template. It is called: ghjb_single_job_template_after_title. Place a function with this name into your theme functions file or your theme plugin php and you may add content following the title of each job. Note that this refers to the full job display and not the job list display. Heres a simple example usage:
add_action(ghjb_single_job_template_after_title, add_note_to_single_job_template, 10, 1);

function add_note_to_single_job_template ($html){     $html .= '

Job Subtitle

'; $html .= 'Share this job with friends'; return $html; }

You can add your own content or edit the job excerpt on the job board via a javascript hook. This works much in the same way as a WordPress hook, but its javascript based rather than php. Simply add a javascript function to your site named: ghjb_excerpt_filter and it will automatically be called and executed as the plugin creates the job board list. Heres an example use to trim the excerpt to 100 characters and add an ellipsis.:
//greenhouse job board plugin js filters
function ghjb_excerpt_filter(content) {

    var short_content_start = 0;     var short_content_end = 100;      var new_content = content.substring(short_content_start, short_content_end) + ' …';      return new_content; } 

You can customize the inline forms, but not the iframe forms. There is a hook available for use via javascript to filter the fields on inline forms called ghjb_questions_filter. Call it in your theme or plugin javascript. It will receive as parameter the array of questions as returned by the greenhouse api for each job and your filter must return a similarly formatted array of questions, but you may rearrange the fields or change labels field types, etc. Heres an example use that customizes some fields:
function ghjb_questions_filter( questions ) {

    //find field indexes     var remove_index, coverletter_index, resume_index;     for ( var i = 0; i < questions.length; i++){         if ( questions[i].label === 'Resume' ) {             resume_index = i;         }         if ( questions[i].label === 'Cover Letter' ) {             coverletter_index = i;         }         if ( questions[i].label === 'Remove Me' ) {             remove_index = i;         }     }      //remove field     questions.splice(remove_index,1);      //set default file_input type to textarea rather than file upload     questions[coverletter_index].fields.reverse();      //change label     questions[coverletter_index].label = "Updated Cover Letter Label";      //move to last field     var coverletter_question = questions.splice(coverletter_index, 1);     questions.push ( coverletter_question[0] );     var resume_question = questions.splice(resume_index, 1);     questions.push ( resume_question[0] );      //return customized questions array     return questions; } 

There is a javascript hook you can add to your theme code that will work here. The function is ghjb_after_thanks and is called after the thank you message is processed and displayed on the page.

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

Most Viewed Posts
Menu