Get the file
Join Discord and open #freebies. The flow file and setup help are there.
This workflow collects jobs, asks Claude to score them against a person's profile, and emails the ones that clear a score. It is free. There is no form on this page. You import it into your own n8n and run it there.
The flow file and setup help are in #freebies on our Discord.

One workflow, three parts. They run on their own. It matches job listings. It does not apply for anyone, and it does not offer a role, a placement, or an interview. It sends a list.
A schedule named Every 3 hours starts this part. The search terms in the file are software engineer, product manager, marketing manager, data analyst, and sales manager. From there it fetches three feeds:
/jobs/in/). You add your own app id and key. Change the country in that URL if India is the wrong one.It joins the three lists, keeps one row per job id, and drops anything older than 90 days. A job counts as fresh at 60 days or newer, and also when it has no date. If one feed fails, that node is set to continue, so the others can still land. The rows are written into a Supabase table named jobs.
A second schedule, named Daily 08:00, runs at 08:00 on the clock of your n8n instance. It loads people marked active in a job_seekers table. For each person it takes up to 15 fresh jobs whose title contains their function, and skips jobs already stored for them.
Those jobs go to Claude (claude-haiku-4-5), 20 at a time. With a shortlist of 15, that is usually one call. The prompt asks for a score from 0 to 100, a short fit line, and concerns. It tells Claude to weigh seniority, domain, and whether the location or remote setup fits the profile.
Anything at or above that person's min_score is kept. If min_score is missing, the cutoff is 70. Matches are saved to user_job_matches: the person, the job, and the score. Then Resend emails them the score, title, company, location, a link, and the fit line. If nothing cleared the cutoff, the email says nothing new today. The concerns are not stored, and they are not in the email.
It walks one person at a time. The profile is a text field on job_seekers. Nothing personal is baked into this file.
An error branch writes the workflow name, the node that failed, the message, and a link to the execution, then sends that through Resend. It only runs if you set this same workflow as its error workflow in the n8n settings.
There are no n8n credential pickers in this file. Keys sit in the HTTP nodes as placeholders, except the Claude key, which is an env var.
jobs(id text pk, source, title, company, location, url, description, posted_at timestamptz, fresh bool, created_at default now())job_seekers(id, email, profile text, function text, min_score int, active bool)user_job_matches(user_id, job_id, score, created_at, unique(user_id, job_id))YOUR_ADZUNA_APP_ID and YOUR_ADZUNA_APP_KEY).ANTHROPIC_API_KEY. The Claude node reads $env.ANTHROPIC_API_KEY. If n8n blocks that read, use the env access fix.YOUR_RESEND_API_KEY), a from address (the file says jobs@YOUR_DOMAIN.com), and an alert address ([email protected]).Greenhouse, Lever, Ashby, and RemoteOK need no account. Replace every YOUR_... placeholder, and set the Supabase URL, before you turn the workflow on.
Four steps. The file in #freebies is rup-ai-job-matcher.json.
Join Discord and open #freebies. The flow file and setup help are there.
In n8n, use Import from File and pick the JSON from #freebies.
Create the three Supabase tables, paste in the Supabase, Adzuna, and Resend values, and set ANTHROPIC_API_KEY.
Add one active row to job_seekers, then run the daily branch from Daily 08:00. You should get a digest, or a note that nothing cleared the score. Turn the workflow on when you want the 3 hour and 08:00 schedules to keep going.
No. It matches public job listings to a profile and emails the ones that clear a score. It does not submit applications.
Up to 15 fresh listings per person, sent 20 at a time. With a shortlist of 15, that is usually one call. The model in the file is claude-haiku-4-5.
Listings at or above that person's min_score. If min_score is empty, the cutoff in the file is 70.
n8n 2.x blocks environment access in nodes unless you set N8N_BLOCK_ENV_ACCESS_IN_NODE=false or move the key into a credential. The env access page walks through both.
Goat O Mate is a community of builders shipping marketing and AI automations together.
Session 1 is coming soon. Join the Discord to hear first.
Join Discord