Quick Overview
This workflow runs daily to pull remote job listings from multiple boards via an Apify actor, deduplicates and scores them with OpenAI, stores results in Google Sheets, and sends hot jobs to Slack for approval and warm jobs to Gmail, with a weekly email report.
How it works
- Runs on a daily schedule (or manually), loads configuration values, and decides whether to run the Apify collection or generate the weekly report.
- For the daily run, starts the Apify Remote Jobs Aggregator actor, then waits and polls the Apify API until the run succeeds or fails.
- Downloads the Apify dataset items, validates required fields, and deduplicates jobs against the current run and a rolling history stored in workflow static data.
- Scores each job using rule-based criteria (keywords, seniority, regions, salary, freshness), then uses OpenAI to produce a structured fit score, verdict, summary, outreach angle, and red flags.
- Blends the rule score with the OpenAI score to set a final tier (hot/warm/cold) and upserts each job into Google Sheets using the job key to avoid duplicates.
- Posts hot jobs to Slack as a single approval message and, based on the response, writes approved/dismissed status back to the same Google Sheets rows.
- Emails a daily HTML digest of warm jobs via Gmail, while cold jobs remain available in Google Sheets only.
- On Mondays, reads the last 7 days of rows from Google Sheets and emails a weekly summary report via Gmail, and posts any workflow failures to Slack via an error-triggered alert.
Setup
- Create an Apify API token and add an HTTP Header Auth credential (Authorization: Bearer <token>) for the Apify HTTP requests.
- Connect Google Sheets credentials, create a spreadsheet tab with the expected columns, and set the Google Sheet ID and tab name in the Config step.
- Connect an OpenAI credential (or replace the chat model node with another provider) and ensure the model selection matches your account access.
- Connect Slack credentials, set your target channel ID in Config, and update the Slack channel ID used by the error alert step.
- Connect Gmail credentials and set the digest recipient email address in Config.
- Adjust the Apify actor input, scoring thresholds, keywords, regions, salary minimum, and AI criteria in Config to match your job search preferences.