Every 15 minutes
Screen CVs from a Drive folder into Airtable
Each CV dropped into your Drive folder is read, scored against the job, and saved as a candidate record in Airtable.
- Runs
- Every 15 minutes
- Apps
- Airtable, Google Drive
- AI
- Yes, uses the built-in AI allowance
- Access
- Drive read; Airtable read+write
Send this to your assistant
Create a ClickRuntime automation: when a new CV lands in my Drive 'Applicants' folder, pull out name, email and skills, score it against the job description in my Airtable 'Jobs' table, and create a candidate record with the Drive link. Email me strong matches.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A small company hiring for a few roles collects CVs from email, referrals and job boards into one Drive folder. The hiring manager means to read them as they come in, but a busy week passes and there are sixty PDFs with names like 'CV_final_v2'. Nobody knows which candidates have been looked at, and good people accept other offers while they wait.
Reading each CV as it lands, scoring it against the job description already kept in Airtable, and creating a candidate record turns the folder into a ranked pipeline. The hiring manager starts from the strongest candidates and the Drive link is one click away.
What you get out of it
Every CV gets a first read
No CV sits unopened in the folder. Each one becomes a record with contact details, skills and a score.
Scores use your own job description
The job text comes from your Airtable Jobs table, so updating the role there changes how new CVs are scored.
Strong matches reach you straight away
Candidates scoring 8 or more trigger an email with their name and the reason, so you can reply the same day.
Files stay where they are
The CV stays in Drive and the record links to it, so nothing is duplicated or reshared.
How it works
What happens, step by step
Every 15 minutes, ClickRuntime checks your Applicants folder in Drive for new files.
It downloads each new CV and reads the text.
AI pulls out the name, email and key skills and scores the CV against the job description in Airtable.
A candidate record is created with the score, a short reason and a link to the CV.
You get an email for each candidate scoring 8 or more. The newest file time is remembered, so nothing is read twice.
Before it runs live
- Connect Airtable
- Connect Google Drive
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Airtable and Google Drive steps into one automation
Under the hood
The code that runs this automation
import io
from pypdf import PdfReader
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, ai, notify, state, report_fetched
BASE_ID, FOLDER_ID, JOB_RECORD = "appXXXXXXXXXXXXXX", "1FolderIdOfApplicants", "recXXXXXXXXXXXXXX"
SCHEMA = {"type": "object", "properties": {"name": {"type": "string"}, "email": {"type": "string"}, "skills": {"type": "string"},
"score": {"type": "integer"}, "reason": {"type": "string"}}, "required": ["name", "score", "reason"]}
@on_trigger
def run(event):
drive = build("drive", "v3", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
since = state.get("since") or "2026-01-01T00:00:00Z"
files = drive.files().list(q=f"'{FOLDER_ID}' in parents and createdTime > '{since}' and trashed = false",
orderBy="createdTime", fields="files(id,name,createdTime,webViewLink)").execute()["files"]
report_fetched(len(files))
if not files:
return {"new": 0}
api, headers = f"https://api.airtable.com/v0/{BASE_ID}", {"Authorization": f"Bearer {credentials.connection('airtable', 'work')}"}
job = http.get(f"{api}/Jobs/{JOB_RECORD}", headers=headers).json()["fields"].get("Description", "")
for f in files:
text = "\n".join(p.extract_text() or "" for p in PdfReader(io.BytesIO(drive.files().get_media(fileId=f["id"]).execute())).pages)[:8000]
c = ai.generate(f"Job:\n{job[:3000]}\n\nCV:\n{text}", json_schema=SCHEMA, max_output_tokens=250,
system="Extract name, email and key skills, score the CV 1-10 against the job, give a one-line reason.").json
http.post(f"{api}/Candidates", headers=headers, json={"typecast": True, "records": [{"fields": {
"Name": c["name"], "Email": c.get("email", ""), "Skills": c.get("skills", ""), "Score": c["score"],
"Reason": c["reason"], "CV": f["webViewLink"]}}]}).raise_for_status()
if c["score"] >= 8:
notify.email_me(f"Strong candidate: {c['name']} ({c['score']}/10)", f"{c['reason']}\n{f['webViewLink']}")
state.set("since", f["createdTime"])
return {"new": len(files)}FAQ
Common questions
What if a CV is a scanned image rather than text?
How does it know which job a CV is for?
Can candidates see their score?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Write captions for Drive videos and track them in Airtable
Each video or photo you drop into a Drive folder gets a caption and hashtags and appears in your Airtable content table, ready to post.
See how it worksTurn invoice PDFs in Drive into Airtable rows
Each invoice or receipt you save to a Drive folder becomes an Airtable record with vendor, number, date, total and line items.
See how it worksDraft articles from approved Airtable topics into Drive
Topics you approve in Airtable are written up as draft articles, saved as Google Docs in Drive, and linked back on the record.
See how it worksKeep exploring
Set up “Screen CVs from a Drive folder into Airtable” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.