Quick Overview
This workflow exposes a POST webhook that turns a job description into a structured hiring brief using Groq, searches candidates across GitHub, LinkedIn (via Apify), Stack Overflow, and Hacker News, scores and summarizes the shortlist, optionally saves results to Supabase, and returns a JSON response.
How it works
- Receives a candidate search request via a POST webhook and normalizes the payload into a consistent schema.
- Validates that the request includes a job description or structured criteria, and returns a 400 JSON error if it is invalid.
- Uses Groq (via LangChain) to extract structured job requirements, then builds a search brief with queries and limits for each source.
- Searches GitHub, LinkedIn via Apify, Stack Overflow, and Hacker News in parallel and normalizes each source’s results into a common candidate format.
- Merges all candidates, sanitizes and deduplicates the pool, and returns an empty 200 response if no candidates remain.
- Scores candidates with a deterministic evidence formula, filters by the configured score threshold, and builds a recruiter-facing JSON report.
- Uses Groq (via LangChain) to generate an AI shortlist summary, attaches it to the report, optionally saves qualified candidates to Supabase, and responds with the final JSON results.
Setup
- Copy the webhook URL from the Candidate Search Webhook node and configure your client/application to send POST requests to it.
- Add Groq credentials for the two AI steps (job requirement extraction and shortlist summarization) and select the configured chat models.
- Add an Apify bearer token credential for the LinkedIn profile search actor and ensure the actor is available in your Apify account.
- Configure GitHub API access (token/bearer auth if needed for your rate limits) and confirm the GitHub Search and User endpoints are reachable from your n8n instance.
- If you enable saving, add Supabase credentials and ensure a table named
candidates exists with fields matching the workflow’s insert mapping.