5 min read

How to replace your expensive ATS with #nocode tools

It's surprisingly easy to build your own no-code ATS to save on expensive recruiting tools.
A stack of post-its are super imposed on a pink background. The top post-it reads, "Interview at 3p"

Receiving job applications via email or form is usually a bad idea because keeping everything organized quickly becomes a time suck for you and a lackluster experience for candidates.

Even tiny companies with a few dozen applicants can benefit from an Applicant Tracking System (ATS) like Greenhouse or Lever. The problem is that these tools (and their price tags) are not intended for small teams.

Most of my clients are founders who only plan to hire 1-3 new people each year. Setting up a traditional ATS would be overkill! And yet, I never want to subject busy folks to even more email or a clunky form.

Instead, I set out to build a simple ATS using some of my favorite no-code tools. And I was pleasantly surprised by how cheap and easy it was!

A screenshot of the no-code ATS as it looks in Airtable

The Short Version

For savvy no-code builders, here’s the short version of how I did it:

  • Create an Airtable Form for the job application itself
  • Create a Kanban view for the form submissions and set up a Status column with pre-defined inputs for each stage in your process, e.g. Phone Interview, Second Interview, Rejected, etc. This will allow you to drag Candidates (cards) between stages (columns) to denote their status.
  • Connect Zapier with your preferred email provider.
  • Automatically send new applicants a confirmation email by creating a Zap that fires when a new row is created in Airtable.
  • Automate other emails such as rejections, scheduling phone screens, etc. by (1) creating a different view for each stage and then (2) creating a Zap that fires when certain criteria is met.

For everyone else, read on for the step-by-step instructions!

The Step-by-Step Version

Tracking Candidates with Airtable

Airtable is spreadsheet-database hybrid that’s commonly used for project management. It’s as customizable as it is user-friendly.

We’re going to use it to create (1) our job application form and (2) the backend we use to screen & keep track of candidates. This will make it easier to stay organized by keeping everything in one place for you and any other team members involved in the hiring process.

Airtable’s free plan should be fine for most cases. It includes up to 1,200 records and 2 GB of storage. If you have more than 1,200 applicants and/or their attachments take up more than 2GB of storage, you’ll need to offload some or upgrade to their paid plan. The cheapest plan is $10/month.

The only other limitation is comment history—the free plan only includes the last two weeks. If you're working with a team, it's probably worth upgrading so that you can communicate via comments and keep all candidate notes in one place.

Step 1: Create the job application form

We’ll use an Airtable Form for this. You can watch the video above to see exactly how I set it up our our purposes. Airtable also has a great article on the subject, if you prefer written instructions.

Step 2: Create a pipeline to manage applications

Airtable automatically creates a spreadsheet with all the form submissions. (Just like a Google Form does.)

We’ll add a Status column to this sheet to keep track of where each candidate is in the process. It’s important to use pre-defined inputs here in a drop-down so that slight variations (e.g. Phone Screen vs Phone Screening) don’t create duplicative columns later.

We can then add a Kanban view based on the Status column to give you a visual, Trello-like view of your pipeline.

Each candidate has their own card that can be dragged between stages and you can click into their card to see their whole application, as well as your notes.

Automating Emails with Zapier

Zapier allows you to automatically move data between web applications without coding anything. Their directory includes +2,000 apps and you can connect them in a billion different ways.

We’re going to use Zapier to automatically send emails from Gmail (1) when a candidate applies and (2) when candidate is moved from one stage to another in Airtable. If you don’t use Gmail or Google Workspace, you could theoretically replace it with any email provider in Zapier’s directory.

Zapier’s free plan includes up to 5 zaps and 100 tasks per month. Every automated email will require one zap, and each time an email is sent, it will count as a task.

This means you’ll only be able to send 100 emails on the Free plan. So, if you don't have a paid account, I’d recommend that you only automate the confirmation and rejection emails, which would cover you for 60-80 candidates/month, depending on how many you move to a phone screen or subsequent hiring step.

If you upgrade to their cheapest plan ($25/month), the sky is the limit when it comes to automations!

Step 3: Create a Zap to send a confirmation email

We can automate the candidate's confirmation email by setting up a Zap that fires anytime a new row is added to the Airtable.

I’m sending my emails via Gmail but you can theoretically use any email provider supported by Zapier with the same steps.

Step 4: Create a Zap to send emails when a candidate moves to a different stage

We want the subsequent emails to be triggered when we change the status of a candidate. We’ll do this by creating a different View for each stage that we want to trigger an email for, e.g. Rejected, Phone Interview, etc.

We don’t actually need to use these views for anything - they just need to exist. Zapier will check the Rejected tab for rejected candidates and, as soon as one appears, they’ll send the Rejected email. It’ll work the same way for any subsequent emails.

Just keep in mind that these emails fire pretty fast. You'll want to be careful that you don’t drag candidates to the wrong column, and  send them the wrong email.

The emails sent by Zapier will show up in your Sent folder. When an applicant responds, their response will show up in your inbox just like any other email.

If you’re part of a hiring team, I’d recommend using a general careers@ email tied to a shared inbox (versus your individual email) so that everyone involved can see what’s going on.

Here are the emails I set up:

  • Confirmation Email, when someone applies and is added to the Airtable
  • Rejection Email, when someone’s status is changed to Rejected
  • Request for a first interview, when someone’s status is changed to First Interview
  • Invite to do a test project, when someone’s status is changed to Test Project

After the second or third step in the hiring process, I’ve found that the emails need to be personalized too much to bother automating them.


While I’ve focused on how to use this system for screening and emailing candidates, the possibilities are endless if you’re willing to pay $25/month for Zapier and/or bring other tools into the workflow.

For example, you could:

  • Add another Zap to the test project stage that fires just after the email and automatically sends any paperwork (like an IC Agreement and W-9) via an electronic signing tool like HelloSign.
  • Share the role using Bit.ly links in place of an ATS’ unique tracking links to track where your best applicants are coming from.

The sky is the limit!