Every 15 minutes
Screen CVs in Drive and post the shortlist to Slack
Every CV saved to your Candidates folder gets a score against the job and a short summary in your hiring channel.
- Runs
- Every 15 minutes
- Apps
- Google Drive, Slack
- AI
- Yes, uses the built-in AI allowance
- Access
- Drive read; Slack chat:write
Send this to your assistant
Create a ClickRuntime automation: when a CV appears in my Drive 'Candidates' folder, score it against the job description and post a short summary and score to #hiring.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A small team is hiring a support lead. Applications arrive by email, from a job board and from referrals, and someone saves each CV to a shared Drive folder. By Friday there are sixty files, and the hiring manager has opened a dozen. Good candidates wait a week for a reply and some accept other offers.
Scoring each CV against the job description as soon as it lands gives the team a first read within minutes. The hiring manager opens the strongest CVs first and the rest are still there to review, so nothing is rejected without a person looking.
What you get out of it
Strong candidates hear back sooner
A score in Slack shortly after a CV is saved means the best applicants can be contacted the same day. In a busy market, a fast reply often decides who accepts.
The whole team sees the pipeline
Posting to a shared channel lets interviewers and the hiring manager see who applied without asking for access to every file. Discussion happens in a thread under each candidate.
Every CV gets the same first read
Each CV is checked against the same job description, so the first pass does not depend on who opened it or how tired they were. People still make the decision.
No change to how CVs are collected
Anyone who already saves CVs to the folder keeps doing exactly that. There is no new form or applicant system to learn.
How it works
What happens, step by step
Every 15 minutes ClickRuntime checks your Candidates folder in Google Drive for new CVs.
It skips any CV it has already scored.
AI reads each new CV, compares it with your job description and writes a score with a two-line summary.
The candidate's name, score and summary are posted in your #hiring Slack channel with a link to the file.
Before it runs live
- Connect Google Drive
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
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 Google Sheets
- Combine it with other Google Drive and Slack steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, state, notify, ai, report_fetched, http
FOLDER_ID = "your-candidates-folder-id"
JOB = "Support lead: 3+ years customer support, Zendesk, team leadership."
@on_trigger
def run(event):
h = {"Authorization": f"Bearer {credentials.connection('google', 'work')}"}
seen = state.get("seen") or []
files = http.get("https://www.googleapis.com/drive/v3/files", headers=h, params={
"q": f"'{FOLDER_ID}' in parents and trashed=false", "fields": "files(id,name,webViewLink)"}).json()["files"]
new = [f for f in files if f["id"] not in seen]
report_fetched(len(new))
if not new:
return {"summary": "No new CVs"}
for f in new:
text = http.get(f"https://www.googleapis.com/drive/v3/files/{f['id']}/export", headers=h,
params={"mimeType": "text/plain"}).text[:6000]
r = ai.generate(f"Job: {JOB}\n\nCV:\n{text}\n\nScore 1-10 and summarise in two lines.", max_output_tokens=150)
notify.slack(f"*{f['name']}*\n{r.text.strip()}\n{f['webViewLink']}", channel="#hiring")
seen.append(f["id"])
state.set("seen", seen[-500:])
return {"scored": len(new)}FAQ
Common questions
Which file types can it read?
Where does the job description come from?
Can I use one folder for several open roles?
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
Summarise new Drive videos in Slack
Every video added to your Recordings folder gets a short written summary and link posted to your team's Slack channel.
See how it worksGet a risk review of every new contract in Slack
Each contract PDF you drop into your Drive Contracts folder gets a short list of key terms and risky clauses posted in #legal.
See how it worksPost decisions and action items from meeting transcripts to Slack
When a meeting transcript is saved to your Drive folder, your team gets the decisions and action items in Slack within minutes.
See how it worksKeep exploring
Set up “Screen CVs in Drive and post the shortlist to Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.