π₯ Match product manager jobs with Supabase, Anthropic Claude, Adzuna, and Resend
β‘ 244 views Β· π₯ HR & Recruitment
Description
Quick overview
This workflow ingests job postings from Greenhouse/Lever/Ashby job boards, Adzuna, and RemoteOK into a Supabase jobs pool, then daily uses Anthropic Claude to score a short list against a single candidate profile and emails the best matches via Resend.
How it works
- Runs every 3 hours to fetch job listings from curated Greenhouse, Lever, and Ashby ATS boards, Adzuna searches, and the RemoteOK API.
- Parses each source into a common job format (title, company, location, URL, description, and posted date).
- Deduplicates jobs, drops postings older than 90 days, marks βfreshβ jobs, and upserts the results into a Supabase
jobstable. - Runs daily at 08:00, loads the single role profile and pulls up to 15 fresh jobs from Supabase that roughly match the role keyword.
- Removes jobs already matched for that role using the Supabase
user_job_matchestable, then batches the remaining jobs and sends them to Anthropic Claude for fit scoring. - Keeps jobs at or above the configured minimum score, saves the new matches back to Supabase, and sends an HTML email digest to the roleβs email address via Resend.
- If any execution fails, an error workflow formats the failure details and sends an alert email using the Resend API.
Setup
- Create a Supabase project, add
jobsanduser_job_matchestables (as described in the notes), and setYOUR_SUPABASE_URLandYOUR_SUPABASE_SERVICE_ROLE_KEYin the Supabase HTTP requests and the Supabase node credential. - Add your Adzuna
app_idandapp_keyin the Adzuna API request node. - Set an
ANTHROPIC_API_KEYenvironment variable in n8n (or replace the header with a credential) so the Anthropic Messages API request can score jobs. - Add a Resend API key, update
fromEmail,YOUR_RESEND_API_KEY, and the alert recipient (YOUR_ALERT_EMAIL@example.com), and verify a sending domain if needed. - Edit the Role profile (email, function keyword, acceptable locations, and
min_score) to match the candidate you want to run daily scoring for.
Requirements
- Anthropic API key (paid, for Claude scoring)
- Supabase project (free tier)
- Adzuna app_id + app_key (free)
- Resend API key with a verified sending domain
- Greenhouse, Lever, Ashby, and RemoteOK need no key
Customization
- Adjust the Set Search Queries node, the ATS board list, the freshness window, the Claude scoring prompt, batch size, and min_score to target different roles, locations, or quality bars
π Nodes Used
HTTP Request, Supabase, Schedule Trigger
π₯ Import
Download workflow.json and import into n8n:
Workflow menu β Import from File