See llms.txt for all machine-readable content.

Back to Templates

Screen and route candidate CVs with OpenRouter, Google Drive, Sheets, and Gmail

Created by

Created by: manh-greydigi || manh-greydigi-ai
manh-greydigi

Last update

Last update 8 hours ago

Categories

Share


Quick overview

This workflow receives candidate CVs via a webhook, extracts text from PDF, DOCX files, looks up the matching job description in Google Sheets, runs a three-agent evaluation using OpenRouter models, then uploads the CV to Google Drive, logs results to Google Sheets, and sends or drafts emails in Gmail.

How it works

  1. Receives a CV submission via a POST webhook that includes candidate details, an applied job ID, and a CV file.
  2. Normalizes the intake data, timestamps the submission, and fetches the matching job description from Google Sheets using the applied job ID.
  3. Extracts CV text by either parsing the PDF directly or converting a DOCX/DOC to a Google Doc in Google Drive and exporting it as plain text.
  4. Detects whether the CV is Vietnamese or not and uses OpenRouter (Qwen for Vietnamese or Google Gemini for others) to parse the CV into a structured Candidate Profile JSON.
  5. Uses OpenRouter (Anthropic Claude Sonnet) to compare the Candidate Profile against the job description, then generates a hiring-manager style review and recommendation based on the ATS evaluation.
  6. Uploads the original CV to a recommendation-based Google Drive folder, logs the full screening record (including the Drive link) to Google Sheets, and sends a shortlist email or creates a rejection email draft in Gmail.

Setup

  1. Connect credentials for Google Sheets, Google Drive, Gmail, and OpenRouter.
  2. Fill in the configuration values for your Google Sheets spreadsheet ID, sheet GID(s), Google Drive folder IDs (DOCX temp, shortlisted, pending, do-not-proceed), and company name/HR email.
  3. Create and format the Google Sheets tabs so the Job Description sheet contains the required columns (job_id, title, department, required_skills, nice_to_have, min_experience_years, description) and the screening results sheet has matching columns for the logged fields.
  4. Copy the webhook URL for the CV intake endpoint and configure your form or source system to POST candidate_name, candidate_email, applied_job_id, and the cv_file binary (PDF or DOCX/DOC).

Requirements

  • OpenRouter API key (for Claude Sonnet, Gemini Flash, and Qwen access)
  • Google Workspace account (Sheets, Drive, Gmail)
  • A form or system that can POST multipart/form-data with candidate_name, candidate_email, applied_job_id, and cv_file

Customization

  • Swap any model in the Config node or Model Selector to use different LLMs
  • Adjust ATS scoring weights and recommendation thresholds in the agent system prompts
  • Update email templates in the Send Shortlist Email and Draft Rejection Email nodes
  • Add more languages to the Detect CV Language node's character ratio logic
  • Extend the Google Sheets schema to capture additional fields per your reporting needs