Collect Remote Jobs From 20+ Job Boards Using Zapier and 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.
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!
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.
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.
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.
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);
});
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 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.
Click continue and connect your Airtable account to Zapier.
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 -
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 👇🏽
🥳 🥳 🥳
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 API? Let me know, so we can write an article about it!
Follow me on Twitter if you are interested in remote work, digital nomading, or building Indie SaaS.
Originally published at https://remoteweekly.ai on January 7, 2021.