Building a WordPress Job Board

June 29, 2016 / Projects

A couple weeks a go I put built a customer success job board for Trustfuel.

Our priority was to create the a place to find and post support, account and customer success jobs. Because I still needed to iron out a few features with the CRM application, my main constraint was time. I had to concept and build this thing in about three days.

For companies, job postings would be free. It would allow us to get warm leads on companies looking to expand their customer success team. If the company were already a prospect or customer, we could steer them to the board as a gesture of good will. For job searchers, we’d be introducing our brand to new CSMs and people in the field.

Choosing a Technology

One of the most difficult things to do was figure out what technology to build the job board with. Meteor, Rails, WordPress, a static site generator?

My initial thought was to build the application using Meteor. I mentioned trying to become a better JavaScript engineer in my yearly review. Plus, I had some experience working with Meteor from building Fantasy News.

Unfortunately, Meteor has a fatal drawback that makes it unsuitable for a job board—it’s nearly invisible to search engines. My primary way to build traffic for this job board was by targeting customer success jobs. The landscape for job keywords is competitive. Indeed, Monster and LinkedIn rank for almost every job type. Trying to rank with a JavaScript-based front-end is trying to do so with one hand tied behind your back.

How about building the job board with Rails? If you’re building lists, it’s hard to go wrong with Rails. Plus, I had some experience. I started building a rails-based job board during a cold weekend this winter.

Rails wasn’t going to work either, I only had a couple of days to put this thing together. Even with the progress I had made on my rails-based job board, I wasn’t comfortable enough committing with a short timeline.

The same was true for using a static site generator like Craft. I’ve been dying to work on a project with one, but had no idea how long it would take to get working.

Putting the Job board together

I wanted to learn something new, but I was less confident that I could build something functional with Rails or Meteor on a short timeline. A WordPress job board it was!

WordPress is something I know well, plus there are some strong benefits to using it. It’s excellent for SEO out of the box (which any job site needs). There is an excellent plugin ecosystem. Yoast adds finer control over post titles and meta information. Advanced Custom Fields (ACF) allows me to add extra fields into the CMS.

We collect job postings through Pardot, which is a marketing automation tool. We ask users for the Job Title, Company, City/State, Description, How to Apply and the poster’s work email.

This form sends me an email and adds the user’s information to our qualified leads list. Anyone posting a customer success job is part of growing company, right?

I was skeptical of Pardot initially. Like Salesforce (now, its parent company), Pardot is powerful, but difficult to use. One of it’s powers is being able to track customers across several web properties. This means if someone posts a job and then comes to or downloads our guide to NPS, we know it’s the same person.

The CMS side is simple thanks to Advanced Custom Fields. Job posts are just WordPress posts. The post title is the keyword-dense job title and location. “Customer Success Manager in San Francisco, CA” for example. The post index is the homepage and contains the post title and the date of publication.

There’s an ACF field for the company name. The post content is the job description. There’s an additional ACF text area field for How to Apply. I belive most people will have links, but decided to go with the text area field incase someone had specific instructions. “Mail your resume to” or something of the sort.

What else?

I found a WordPress plugin called Auto Prune Posts, which removes posts after a specific period of time. I didn’t want to manually check every single job posting to see if it is available. The plugin automatically removes posts after 30 days. It has some poor reviews, but I’ve had no issues with it so far.

Because of job listings always going up and coming down, I had to alter the 404 page. The key for a 404 page is to try and make it as useful as possible. I added the index to the 404 page and added, “Whoops! We cant find that page. That job has likely been filled. Here are the latest openings:”

Areas for improvement

If this job board works, there will be things I’ll need to add.

The primary one is filtering by location. I chose to leave this out, because I have no idea how many people will be posting their jobs. If we have a handful a week, it’s not worth it.

Another thing I should do is add an ACF checkbox for jobs that are remote. Maybe it adds some sort of label to the job post and index.

For a first pass, I’m quite happy with how this WordPress job board turned out. The design is a bit rough and it’s still a manual process, but I can’t think of a way to make it simpler.