🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Airtable + OpenAI: consistent resume screening

Lisa Granqvist Partner Workflow Automation Expert

Resume screening gets messy fast. Files live in someone’s inbox, notes live in someone else’s head, and “quick rankings” turn into slow debates because nobody remembers what “good” looked like last week.

This hits HR managers hardest, honestly. But recruiters and hiring leads feel it too, especially when you’re trying to scale a consistent resume screening automation without turning your process into a spreadsheet horror show.

This workflow takes applicants from form submission to Airtable tracking, Drive file storage, OpenAI scoring, shortlist decisions, and candidate emails. You’ll see what it does, what you need, and where teams usually trip up.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Airtable + OpenAI: consistent resume screening

The Challenge: Fair, consistent resume screening at speed

When applications start coming in, the first breakage is always the same. Resumes arrive in different formats, the “latest” version gets lost, and someone is manually copying details into a tracker while trying to remember the job requirements. Then the subjective part kicks in: two reviewers read the same CV and come to totally different conclusions, not because one is wrong, but because the criteria aren’t applied consistently. After a week of this, you’re behind, candidates are waiting, and your team is making decisions under pressure. That’s when mistakes happen.

It adds up fast. Here’s where the friction compounds.

  • Resumes get scattered across email threads and shared folders, so you waste time just finding the right file.
  • Manual screening notes aren’t comparable, which makes shortlisting feel like opinion instead of process.
  • Copy-pasting applicant details into Airtable or Sheets invites typos and missing fields.
  • Slow follow-ups cost you good candidates because they accept interviews elsewhere first.

The Fix: Airtable + OpenAI scoring with automated follow-ups

This workflow turns your hiring intake into a clean pipeline. It starts with a structured application form so every candidate submits the same core details. As soon as a submission lands, n8n creates an applicant record in Airtable, uploads the CV to a dedicated Google Drive folder, and pulls the text out of the PDF so it’s readable by AI. Then an AI scoring agent (powered by an OpenAI chat model) evaluates the resume against the job description you store in Airtable, producing a consistent, structured result you can compare across applicants. Based on that score, the workflow marks the candidate as rejected or interviewing, generates interview questions for shortlisted applicants, and sends tailored emails after they complete a questionnaire. It also proposes a call slot and updates Airtable with the scheduled time.

The workflow begins at form submission. From there, it standardizes the applicant data, extracts the CV content, and applies the same scoring logic every time using Airtable job details plus OpenAI. Finally, it updates Airtable statuses and drives email + scheduling so your process keeps moving.

What Changes: Before vs. After

Real-World Impact

Say you get 25 applicants a week for a technical role. Manually, a recruiter might spend about 10 minutes saving the CV, creating a tracker entry, and writing basic notes, plus another 10 minutes to do a first-pass read. That’s roughly 8 hours weekly before you’ve even scheduled interviews. With this workflow, intake and filing happen automatically, and the OpenAI score gives you a consistent first-pass in a few minutes per candidate. You still review, but you’re starting with a ranked list instead of a pile.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Airtable for applicant tracking and job details.
  • Google Drive to store and organize CV files.
  • OpenAI API Key (get it from the OpenAI dashboard).

Skill level: Intermediate. You’ll connect accounts, map a few fields, and tweak an AI prompt safely.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

Application intake kicks everything off. A candidate submits your form, and n8n immediately captures their details so nothing is stuck in someone’s inbox.

Your records and files get organized automatically. The workflow creates an applicant in Airtable, uploads the CV to Google Drive, then downloads it again to extract the PDF text for scoring. A little redundant on purpose, because it ensures the stored file is the same one you evaluate.

OpenAI scores the candidate against the job. Airtable provides the job description and role requirements, the AI agent evaluates the resume content, and a structured parser forces consistent output (so you don’t get rambly summaries when you need a decision-ready score).

Status changes and communication happen next. If the score passes your shortlist condition, Airtable is updated to “Interviewing,” interview questions are generated, and a questionnaire is sent. If not, the workflow marks them rejected and can still send a polite response, depending on how you configure the email step.

You can easily modify the shortlist threshold to match your role’s seniority based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Form Trigger

Set up the applicant intake form that starts the workflow and captures the CV file and candidate details.

  1. Open Application Form Trigger and set Form Title to Job Application.
  2. Set Path to automation-specialist-application and Button Label to Submit.
  3. Ensure the form fields include First Name, Last Name, Email, Phone, Years of experience, and Upload your CV with Accept File Types set to .pdf.
  4. Paste the full job description into Form Description exactly as provided in the node.

Step 2: Connect Google Drive and Map Applicant Data

Store the uploaded CV in Drive and map key fields before creating the Airtable record.

  1. In Drive CV Upload, set Name to {{ $binary.Upload_your_CV.fileName }} and Input Data Field Name to Upload_your_CV.
  2. Select the target Folder in Drive CV Upload for CV storage.
  3. Credential Required: Connect your googleDriveOAuth2Api credentials in Drive CV Upload and Download CV File.
  4. In Applicant Info Map, confirm the field mappings are set to:
  5. Name{{ $('Application Form Trigger').item.json['First Name'] + " " + $('Application Form Trigger').item.json['Last Name'] }}
  6. Phone{{ $('Application Form Trigger').item.json.Phone }}
  7. email{{ $('Application Form Trigger').item.json.Email }}
  8. Experience{{ $('Application Form Trigger').item.json["Years of experience"] }}
  9. Applied On{{ $('Application Form Trigger').item.json.submittedAt }}
  10. CV link{{ $json.webViewLink }}

Tip: Make sure the CV file is uploaded successfully in Drive CV Upload so {{ $json.webViewLink }} is available for downstream nodes.

Step 3: Create and Update Airtable Records

Store applicants in Airtable, track status, and log questionnaire responses and screening questions. Multiple Airtable nodes are used, so connect credentials across all Airtable nodes.

  1. Open Airtable Create Record and select your Base and Table (Applicants).
  2. Confirm these fields in Airtable Create Record:
  3. Name{{ $json.Name }}, Phone{{ $json.Phone }}, CV Link{{ $json["CV link"] }}, Applying for["Automation Specialist"], Email address{{ $json.email }}.
  4. Credential Required: Connect your airtableTokenApi credentials to all Airtable nodes (6 Airtable and 6 Airtable Tool nodes handle applicants, positions, and updates).
  5. In Mark as Rejected, ensure Stage is No hire and the record ID is {{ $('Airtable Create Record').item.json.id }}.
  6. In Mark as Interviewing, ensure Stage is Interviewing and the record ID is {{ $('Airtable Create Record').item.json.id }}.
  7. In Save Questionnaire Responses, confirm the record ID is {{ $('Airtable Create Record').item.json.id }} and the combined Q&A field uses the existing expression block.
  8. In Update Call Time, set Phone interview to {{ $json.message.content['Start time'] }}.
  9. In Store Screening Questions, set Phne interview screening questions to {{ $json['Screening Questions'] }}.

⚠️ Common Pitfall: Airtable IDs must match exactly—ensure every update node uses the correct {{ $('Airtable Create Record').item.json.id }} or {{ $('Update Call Time').item.json.id }} expression.

Step 4: Configure CV Extraction and AI Scoring

Download the CV, extract text, and score the applicant using the AI agent and structured output parser.

  1. In Download CV File, set File ID to {{ $json.fields["CV Link"] }} and keep Operation as download.
  2. In Extract PDF Text, set Operation to pdf.
  3. In AI Scoring Agent, keep the prompt text and ensure it references the extracted text with {{ $json.text }}.
  4. OpenAI Chat Engine is connected as the language model for AI Scoring Agent — ensure credentials are added to OpenAI Chat Engine.
  5. Structured Result Parser is connected as the output parser for AI Scoring Agent — configure credentials on the parent AI Scoring Agent if required by your environment.
  6. Airtable Position Lookup is an AI tool sub-node for AI Scoring Agent — keep it connected and ensure airtableTokenApi credentials are set on the Airtable tool.
  7. In Shortlist Check, set the numeric condition to {{ $json.output.score }} greater than or equal 0.7.

Step 5: Generate and Capture Interview Questions

Produce AI interview questions, present them via a form, and save responses back to Airtable.

  1. In Generate Interview Questions, set Model to gpt-4o-mini and ensure JSON Output is enabled.
  2. Credential Required: Connect your openAiApi credentials in Generate Interview Questions.
  3. Airtable JD Lookup is an AI tool sub-node for Generate Interview Questions — keep it connected and ensure Airtable credentials are on that tool.
  4. In Questionnaire Form, keep the five field labels mapped to the expressions:
  5. {{ $json.message.content.interview_questions[0].question }} through {{ $json.message.content.interview_questions[4].question }}.
  6. In Save Questionnaire Responses, keep the concatenated Q&A mapping block so answers are stored with their questions.

Tip: Test the form output of Questionnaire Form to confirm AI questions render correctly before proceeding to email automation.

Step 6: Compose and Send Follow-up Email, Then Schedule a Call

Use AI to craft a follow-up email, send it, book a call via Google Calendar, and update Airtable with the meeting time.

  1. In Compose Followup Email, set Model to gpt-4o and keep JSON Output enabled.
  2. Credential Required: Connect your openAiApi credentials in Compose Followup Email and Schedule Call Slot.
  3. Job Posting Lookup and Applicant Detail Fetch are AI tool sub-nodes for Compose Followup Email — ensure Airtable credentials are set on those tools, not on the parent.
  4. In Map Email Fields, map To, Subject, and Email Content to:
  5. {{ $json.message.content.To }}, {{ $json.message.content.Subject }}, and {{ $json.message.content['Email Content'] }}.
  6. In Dispatch Email, set From Email to your sender address and keep:
  7. To Email{{ $json.To }}, Subject{{ $json.Subject }}, Text{{ $json['Email Content'] }}.
  8. Credential Required: Connect your smtp credentials in Dispatch Email.
  9. In Schedule Call Slot, keep the prompt and ensure it references {{ $today }} for date context.
  10. Calendar Booking Tool is an AI tool sub-node for Schedule Call Slot — connect googleCalendarOAuth2Api credentials on the tool and keep:
  11. Start{{ $fromAI("start_time", "The start time for the meeting", "string", "2025-01-01T09:00:00Z") }}, End{{ $fromAI("end_time", "The end time for the meeting", "string", "2025-01-01T09:00:00Z") }}.
  12. In Update Call Time, confirm the record ID is {{ $('Save Questionnaire Responses').item.json.id }}.

Step 7: Generate and Store Screening Questions

Create a tailored set of screening questions after the call is scheduled and store them in Airtable.

  1. In Draft Screening Questions, keep Model set to gpt-4o and ensure the prompt references {{ $('Extract PDF Text').item.json.text }}.
  2. Job Posting Lookup 2 and Applicant Detail Fetch 2 are AI tool sub-nodes for Draft Screening Questions — ensure Airtable credentials are set on those tools.
  3. In Map Screening Output, set Screening Questions to {{ $json.message.content['Screening Questions'] }}.
  4. In Store Screening Questions, confirm the record ID is {{ $('Update Call Time').item.json.id }} and the questions field uses {{ $json['Screening Questions'] }}.

Tip: Keep the screening questions output format as one question per line to make Airtable readability easier for interviewers.

Step 8: Test and Activate Your Workflow

Verify each step with a sample applicant submission and then enable the workflow for production.

  1. Click Execute Workflow and submit a test entry in Application Form Trigger with a PDF CV.
  2. Confirm the CV uploads in Drive CV Upload and the Airtable record is created by Airtable Create Record.
  3. Validate that AI Scoring Agent outputs a score and Shortlist Check routes to Mark as Interviewing or Mark as Rejected as expected.
  4. Complete the Questionnaire Form and confirm Save Questionnaire Responses updates the Airtable record.
  5. Check that Dispatch Email sends the follow-up email and Calendar Booking Tool creates a calendar event via Schedule Call Slot.
  6. Verify Store Screening Questions contains a populated screening question list.
  7. When the test is successful, toggle the workflow to Active to run it in production.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Airtable credentials can expire or need specific permissions. If things break, check your Airtable personal access token scopes and the base/table access first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Common Questions

How quickly can I implement this resume screening automation?

About an hour if your Airtable base and Drive folder are ready.

Can non-technical teams implement this resume screening?

Yes. No coding required, but someone should be comfortable mapping fields and testing with a few sample resumes.

Is n8n free to use for this resume screening automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API usage costs, which are typically a few cents per candidate depending on resume length and your prompt.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

How do I adapt this resume screening automation solution to my specific challenges?

You can adjust the Airtable Position Lookup and Airtable JD Lookup logic to pull different job requirements, then update the AI Scoring Agent prompt to reflect what “good” means for that role. Common customizations include changing the shortlist threshold in the Shortlist Check, adding knock-out questions to the Questionnaire Form, and rewriting the Compose Followup Email prompt to match your brand tone.

Why is my Airtable connection failing in this workflow?

Usually it’s an expired token or missing permissions on the base. Regenerate your Airtable personal access token, confirm it has read/write access to the tables you’re using, then reselect the base and table in the Airtable nodes. Also double-check that field names match exactly, because renamed columns can look like “auth problems” when they’re really mapping errors. If failures happen only at busy times, you may be hitting rate limits and should add a short wait or reduce batch size.

What’s the capacity of this resume screening automation solution?

On n8n Cloud Starter, you can typically run a few thousand workflow executions per month, which is plenty for most small hiring pipelines. If you self-host, there’s no execution cap; your server resources become the limit. In practice, the slowest part is usually PDF text extraction and the OpenAI request, so plan on a few minutes per candidate end-to-end when resumes are long.

Is this resume screening automation better than using Zapier or Make?

Often, yes. This workflow has branching decisions (shortlist vs reject), file handling (Drive upload, download, PDF text extraction), and structured AI output parsing, which is where Zapier/Make setups can get fragile or expensive. n8n also gives you the self-hosting option, so you’re not paying more just because you had a busy month. If you only need “form submission → create Airtable record,” Zapier is fine. If you want consistent scoring and automated interview steps, n8n is the calmer choice. Talk to an automation expert if you want help choosing.

Once this is running, your hiring process stops relying on memory and heroics. The workflow does the repetitive sorting and follow-up so you can focus on the actual decision.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal