In which the sync code is tediously yet necessarily rewritten for little gain (Week 7)

This is what a company page looks like on Job Garden

One of those “two steps forwards, one step back” kind of weeks.

Behind the scenes, Job Garden automatically syncs with the hiring system of all companies I want to promote. It gets all the open roles in a database, and shares them on my personal job board.

My favourite hiring system to sync with is Workable. Workable is what is called, in the jargon, an Applicant Tracking System. It is not a job board in its own right, but it links with dozens of third party job boards (like Job Garden) and manages the recruitment process end-to-end. To make this easy, Workable shares the data about each open job in a machine-readable format called JSON-LD. This is good. Here’s the spec for how a job opening is encoded in JSON-LD.

It’s nerdy but stuff like JSON-LD matters because it’s how the web always used to work: enlightened companies and individuals shared open, nicely structured data, and that meant people could build tons of handy new tools (yes, like Job Garden) without having to ask. This “permissionless innovation” is how come so much cool stuff got built for the web.

Lots of cool stuff = lots of people.

But lots of people = a gold rush of companies that aren’t so enlightened, and don’t share data. They make walled gardens instead, keeping data private, enriching themselves at the expense of the ecology that made them possible in the first place.

JSON-LD is rare in that it’s an enlightened way to share data, plus it’s modern, plus it’s relatively common. Not common enough, however, as I’ll get onto in a moment.

Of the startups I endorse, most use Workable. Hooray for Workable and their embrace of JSON-LD. Some don’t, but even they use alternate Applicant Tracking Systems that also happen to be kind enough to share job openings in JSON-LD. So to date my work has been easy.

But then ScreenCloud (which is growing great guns by the way) switched systems to one called Bamboo. I don’t blame them; Bamboo covers ScreenCloud’s HR needs too, and Workable doesn’t do that.

Bamboo doesn’t support JSON-LD. Boo, hiss, etc. Actually it’s entirely their perogative, as much as I would like it to be otherwise. But I still want to promote jobs at ScreenCloud (seriously, they are growing great). So I went to extend my syncing code.

But the way Bamboo works doesn’t match the way my code likes to sync with the other systems it knows about.

Long story short I ended up tearing down a whole bunch of code just to rebuild it with almost identical functionality but with slightly different foundations. And that’s what happened in Week 7.


Number of hiring page systems supported by the Job Garden sync code, last week: 3.

Number of hiring page systems supported by the Job Garden sync code, this week: 4.

Phew.


My rule is to have something new that you can see every Tuesday, no matter how small it is.

So this week there’s a little addition to the company page. (When Job Garden syncs with a company’s Applicant Tracking System, it makes its own page which lists the jobs and has links to the company’s website and Twitter. You can see it in the screenshot at the top of this story. The screenshot shown is the mobile view.)

New: right at the bottom is says the date and time when the list of jobs last synced.


A realisation about where Job Garden fits in:

The only people who look at job boards are active job seekers (there’s a bit of recruiter jargon for you). That’s great, but by automatically sharing jobs on my Twitter feed, I can reach passive job seekers. This is a different pool, and so I’m connecting my endorsed startups to potential candidates they might never have reached otherwise.

Ta-da.