Skip to content

Every 15 minutes

Screen new résumés from Google Drive into Notion

Each new CV dropped into your Drive folder is read, scored against the job, and added as a card on your Notion hiring board.

Runs
Every 15 minutes
Apps
Google Drive, Notion
AI
Yes, uses the built-in AI allowance
Access
drive.readonly; Notion insert content

Send this to your assistant

Create a ClickRuntime automation: when a new résumé lands in my Drive Applications folder, pull out the candidate's details, score them against the job, and add a card to my Notion hiring database.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A small agency hiring a designer receives CVs by email, from recruiters and through referrals, and saves them all into one Google Drive folder. By the end of the week there are forty files with names like CV_final2.pdf, and nobody has had time to open them, let alone log them on the hiring board in Notion.

This automation checks the folder every 15 minutes. For each new file it reads the text, has AI pull out the name, contact details and a fit score against the job, and adds a card to your Notion board with a link to the original file.

What you get out of it

  • Every CV is logged

    Files dropped into the folder by anyone appear on the board. No candidate is lost because a file was saved and forgotten.

  • A head start on screening

    A score and short summary on each card show who to read first. Strong candidates hear back sooner.

  • Consistent information per candidate

    Name, email, current role and years of experience sit in the same fields every time. Comparing candidates is easier than opening files side by side.

  • The original stays one click away

    Each card links to the file in Drive. The full CV is there when you want the detail.

How it works

What happens, step by step

  1. Every 15 minutes, ClickRuntime looks for new files in your Drive Applications folder.

  2. It reads the text of each new CV.

  3. AI pulls out the candidate's name, email and current role, and scores them against the job description.

  4. A card with those details, the score and a link to the file is added to your Notion hiring board.

Before it runs live

  • Connect Google Drive
  • Connect Notion and share the database you want it to use

What you get

RunsEvery 15 minutes
Screen new résumés from Google Drive into Notiontoday, 9:00Succeeded
Notion · Hiring boardProduct designer at Contoso Health, 6 years: score 9/10. Led a design system rollout across 3 web apps.

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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 Google Drive and Notion steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
r_sum_s_in_drive_screened_into_a_notion_tracker.pyexample
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, state, ai, report_fetched

FOLDER_ID, HIRING_DB = "your-folder-id", "your-notion-database-id"
JOB = "Senior product designer: 5+ years, strong portfolio in web apps, experience with design systems."
SCHEMA = {"type": "object", "properties": {"name": {"type": "string"}, "email": {"type": "string"}, "role": {"type": "string"}, "score": {"type": "integer"}, "summary": {"type": "string"}}, "required": ["name", "score", "summary"]}

@on_trigger
def run(event):
    drive = build("drive", "v3", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).files()
    seen = set(state.get("seen") or [])
    files = [f for f in drive.list(q=f"'{FOLDER_ID}' in parents and trashed=false", fields="files(id,name,webViewLink)", orderBy="createdTime desc", pageSize=50).execute()["files"] if f["id"] not in seen]
    report_fetched(len(files))
    if not files:
        return {"summary": "Nothing new"}
    for f in files[:10]:
        try:
            text = drive.export(fileId=f["id"], mimeType="text/plain").execute().decode("utf-8", "ignore")
        except Exception:
            text = f["name"]
        c = ai.generate(f"Job: {JOB}\n\nCV:\n{text[:8000]}", system="Extract candidate details and score fit 1-10.", json_schema=SCHEMA, max_output_tokens=200).json
        http.post("https://api.notion.com/v1/pages", headers={"Authorization": f"Bearer {credentials.connection('notion', 'work')}", "Notion-Version": "2022-06-28"}, json={"parent": {"database_id": HIRING_DB}, "properties": {
            "Name": {"title": [{"text": {"content": c["name"]}}]}, "Email": {"email": c.get("email") or None}, "Score": {"number": c["score"]},
            "Summary": {"rich_text": [{"text": {"content": c["summary"][:1900]}}]}, "CV": {"url": f["webViewLink"]}}}).raise_for_status()
        seen.add(f["id"])
    state.set("seen", list(seen)[-1000:])
    return {"added": min(len(files), 10)}

FAQ

Common questions

Which file types are read?
Google Docs and PDFs with selectable text are read. Scanned images of CVs cannot be read and are added with the file name only.
Are candidates rejected automatically?
No. Every CV gets a card. The score is only there to help you decide the order in which to read them.
Where do I put the job description?
You write a short description of the role and what matters most once, and every CV is scored against it.
What permissions does it need?
drive.readonly; Notion insert content. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Screen new résumés from Google Drive into Notion” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.