sandywp / plugins / greenhouse-job-board
Greenhouse Job Board
Plugin to pull a job board from greenhouse.io via their API.
Ready in seconds.
v2.7.3 200+ installs WP 3.0+

What you get inside
5 screens-
Shortcode in action. Notice the 'Add Greenhouse Job Board' button.
-
View the job board list.
-
Click to view description of each job.
-
Click to apply for each job.
-
View the 'Add Greenhosuse Job Board' button modal wizard. This will allow you to easily configure your board with all the settings. It will insert the…
About this plugin
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_filterattribute:[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_filterattribute:[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_filterattribute:[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_filterattribute:[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 don’t want application forms to display and simply want to display listings, just add the
hide_formsattribute - 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
Questions
- Any Requirements?
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.
- Server requirements
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.
- Can I add my own styles?
Yes, you can add your own custom CSS on the plugin options page.
- I made edits in my Greenhouse account, but I’m not seeing those edits on my website, what gives?
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.
- Can I add social share links or something relative to the job listing?
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. Here’s 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 .= '<h2>Job Subtitle</h2>'; $html .= '<a href="#facebook-share-url">Share this job with friends</a>'; return $html; }- Can I customize the job board job excerpts?
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 it’s javascript based rather than php. Simply add a javascript function to your site named:
ghjb_excerpt_filterand it will automatically be called and executed as the plugin creates the job board list. Here’s 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; }- Can I customize the fields in use on my forms?
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. Here’s 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; }- Can I have some custom tracking when the form a successful submission completes?
There is a javascript hook you can add to your theme code that will work here. The function is
ghjb_after_thanksand is called after the thank you message is processed and displayed on the page.
sandywp / also on the shelf
Try another plugin
5.0 · 200K+ installs
Simple Consent API to read and register the current consent category.
4.8 · 80K+ installs
Disable the use of the REST API on your website to site users. Now with User Role support!
3.8 · 80K+ installs
Easily send email from your WordPress site through Mailgun using the HTTP API or SMTP.
Spin up a real WordPress site in seconds.
Test plugins, build a demo, hand a client a link — then squash it and start again. No local setup, no Docker.