Quick overview
This workflow runs on a schedule to scrape job listings via Apify (Google Jobs and Career Site API), scores each role against your base resume using OpenAI, generates tailored cover letter and optionally a tailored resume in Google Docs, and logs the results to Google Sheets with Gmail error alerts.
How it works
- Runs on a schedule (with an optional manual test trigger) and loads your search query and Google IDs from the configured variables.
- Uses Apify actors to scrape jobs from Google Jobs and the Career Site API, then normalizes and merges both result sets into a single list.
- Processes jobs in batches and skips listings that already exist in Google Sheets (matched by Apply URL), have no apply link, have short descriptions, or don’t meet the seniority criteria.
- Fetches your base resume from Google Docs and sends the resume plus job details to OpenAI to score relevance from 1–10 with a one-sentence rationale.
- For jobs scoring 7+, uses OpenAI to generate a personalized cover letter from the job description and your resume.
- For jobs scoring 8+, uses OpenAI to tailor your resume, saves it as a new Google Doc in your Drive folder, and makes the document publicly readable to create a shareable link.
- Appends or updates the job row in Google Sheets with the score, reasoning, cover letter, and resume URL (when generated), and sends a Gmail notification if any step errors.
Setup
- Create an Apify account, add your Apify API token in n8n, and ensure your n8n instance supports the Apify community node.
- Add OpenAI API credentials in n8n for the scoring and writing steps.
- Add Google OAuth credentials for Google Sheets and Google Docs/Drive access (Sheets read/write, Docs read/create/update, and Drive permissions updates).
- Create a Google Sheet with a “Jobs” tab and columns that match the workflow mapping (including “Apply URL” for deduping), then set your Google Sheet ID in the workflow variables.
- Upload your base resume as a Google Doc, set its document ID and the output Drive folder ID in the workflow variables, and set the notification email address used by Gmail error alerts.