Freelancing • Entrepreneurship • Remote Work • Productivity

API

Collect Remote Jobs From 20+ Job Boards Using Zapier and Airtable

Api - Zapier - Airtable

There are a couple of remote job boards providing access to their database. Unfortunately, “their” is a crucial keyword here. Connecting one API will usually always get you jobs from just one source. Today, we will show you how you can automatically collect remote jobs into Airtable from multiple sources. Without coding.

To cover the majority of available remote gigs, you want to fetch data from multiple resources. These can be remote job boards, career pages, tweets, subreddits, or even Facebook groups.

Sounds like a pain, doesn’t it?

Luckily, there is a handy solution. Remote Weekly is a remote jobs delivery platform, which, coincidentally, offers API access. Remote Weekly’s data are aggregated from dozens of different resources. This means that connecting this single API will get you remote jobs from all over the internet.

1. Get API access

First things first. You need a data source.

To access the Remote Weekly API, you will need an access token. An access token is your unique, private identification string. To obtain it, all you need to do is sign-up for a free 7-day trial with the “Get API access” button below.

Simply sign-up, and they will email the token to your Inbox.

2. Prepare Airtable Base

If you don’t have an Airtable account, sign-up. When done, create a new base. We will call ours “Copywriting Jobs” because that’s what we will collect for the purpose of this tutorial.

Airtable welcome screen with your data on it - (collecting remote jobs series)
Create a new Base

Have an empty Base? Perfect. Now it’s time to design it. The Remote Weekly API offers a lot of data. But let’s just keep things simple for now. Add these 7 columns.

Title ➔ Primary field, single-line text
Company ➔ Single-line text
Location / HQ ➔ Single-line text
Salary ➔ Single-line text
Description ➔ Long text
Apply ➔ Button with "Open URL" action and formula equal to the "Link" column [image]
Link ➔ URL

The result will look something like this. Still kinda sad, right? No worries!

Collecting Remote Jobs, Step 1: Screenshot with empty Airtable Base
Our empty Base with the right columns

3. Create New Zap

Alrighty. Now it’s time to create a Zapier account. That is if you already haven’t done so.

When done, log in. And click the Make a Zap button.

Collecting Remote Jobs, Step 2: Make a Zap
Make a Zap

And now the proper fun begins. We need to create a 3-step workflow (Zap). Follow our instructions.

Step 1 – Trigger

Importing all the remote jobs once wouldn’t really be so helpful. That’s why we will set up a trigger action – let’s run the import every hour.

Choose Schedule by Zapier for the “app & event” field, then pick Every Hour. Test and save, nothing more to do here.

Zapier Trigger - Every hour
Zapier Trigger – Every hour
Zapier Trigger - Run on weekends: YES
Zapier Trigger – Run on weekends: YES
Zapier Trigger - Test OK
Zapier Trigger – Test OK

Step 2 – Run Javascript

Whoa, whoa, whoa. Hold your horses here, mister. I thought this tutorial was labeled #no-code! I want this to collect remote jobs for me without any coding mambo jumbo.

The reason we are using a little piece of code here is simple. The alternative for iterating through all the remote jobs our API offers would be to use Google Sheets as an intermediary. Considering we try to push records into Airtable, using another database just to make things work sounds a bit dull.

No worries though, it’s just one piece of code that you can literally copy and paste without any changes to it. It’s safe.

Add a new step (+) and pick Code by Zapier. Pick Javascript as Action Event and continue.

Step 2 - Action: Code by Zapier (Run Javascript)
Step 2 – Action: Code by Zapier (Run Javascript)

Next, we will need 4 rows of input data. Meaning you have to click the (+) button on the right 3 times. When done, fill in these values 👇🏽

url ➔ https://v1.remoteweekly.ai/api/jobs/
position ➔ copywriter
token ➔ Token you got in the first step
interval ➔ 1

Note: For this tutorial, we are collecting copywriting jobs. However, you can go ahead and change the value to any other supported job.

Next on the list is the scary part – the code. Simply copy and paste the following into the Code input 👇🏽

/*
 * Fetch jobs from Remote Weekly API
 * @version 0.0.1
 */

const url = `${inputData.url}?positions=${inputData.position}&maxAge=${inputData.interval*3600}&page=1`;
fetch(url, {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${inputData.token}`,
    'Content-Type': 'application/json'
  }
}).then(function(res) {
  return res.json();
}).then(function(json) {
  callback(null, json.items);
});
Ufff – that wasn’t so bad, was it?

Save the code and test it.

Note: The free tier of Zapier only allows you to run a script for one second, which may not be enough to fetch remote jobs from the API. If you are on the trial, you won’t have any issues.

Step 2 - Action: Code by Zapier (Test OK)
It’s getting warmer!

Step 3 – Connect Airtable

The finish line is in sight! Only a few more meters clicks. 🔥

Okay, so create one more (and last) action using the (+) button on the bottom. App & Event will be Airtable with action Create Record.

Step: Create Record in Airtable
Step: Create Record in Airtable

Click continue and connect your Airtable account to Zapier.

Zapier connected to Airtable account
Zapier connected to Airtable account

Continue again and select the Base we created in step 2 & the table we prepared.

We will also need to map our API results to the table columns here. Follow this table and screenshot 👇🏽

Title ➔ 2. Title
Description ➔ 2. Lead
Link ➔ 2. Links -> Original -> Detail
Company ➔ 2. Company Name
Location / HQ ➔ Location
Salary ➔ Salary
Apply ➔ - leave empty -

Collecting Remote Jobs: Mapping the API response to Airtable table columns
Mapping of the API response to Airtable table columns

Ready to collect jobs!

And now, the moment of truth. Save the last action, hit test, and enable the Zap.

You may or may not already see some new record(s) in your Airtable. It may take a few hours for the first job to appear because we chose to scoop for new ones every hour – and every hour we are downloading only jobs posted in the last hour. I hope this isn’t very confusing!

Eventually, though, it will look majestic 👇🏽

Collecting Remote Jobs: Airtable full of remote jobs
Airtable full of remote jobs

🥳 🥳 🥳

Congratulations! You just saved yourself hours of work each month. This setup will now automatically collect remote jobs for you.

Important note

If you gonna fiddle with the interval on how often the workflow should collect new jobs, you have to change both 1. Trigger and 2. parameter interval. Otherwise, you will run into duplicity issues.

Tip

To fill your Airtable immediately on the first try, change the Trigger settings to Daily and interval parameter to 24.


Do you have a specific use-case for our Remote Jobs APILet me know, so we can write an article about it!

Leave a Reply