An hour of n8n, hands-on.
From your first node to a working AI workflow. You'll leave having built something, not just watched it.
One hour. One workflow. Everyone ships.
Most of the hour is hands-on. We'll build a real CV-screening workflow together, node by node. The first 5 minutes set the stage; the last 10 are for questions and where to take this in the hackathon.
n8n is a visual builder for the work between your tools.
You drag nodes onto a canvas, wire them together, and the workflow runs. Each node is either a trigger (something happens), an integration (talk to Slack / Sheets / GitHub / 400 others), or a helper (transform data, branch on conditions, loop). AI nodes are first-class - built right into the same canvas.
Visual, not vibes
Workflows are diagrams you can read. Anyone on a team can audit what's running.
400+ integrations
Pre-built nodes for Slack, Sheets, GitHub, Jira, OpenAI, Anthropic, Salesforce, more.
Self-hosted at Indeed
Runs on Indeed's own infrastructure. Your data stays on Indeed. Service-account credentials.
The five things to do and the five to avoid.
Indeed's internal guidelines are explicit about how n8n is meant to be used. Before you build, read this. Especially the credential-hygiene and AI-policy lines. Full AI policy: indeedhuddle.com/huddle/company-wide-generative-ai-use-guidelines.
hackathon-prep so the platform team can clean up after.Code is #1 and that's a problem.
Top 10 nodes used across Indeed's n8n platform. The Code node is the most-used node and also the most-misused - most of the time, a purpose-built node already does the job. Reach for Set, IF, or a native integration first.
What We're Building
A working CV screening workflow. Real AI. Real output. End-to-end in your browser.
Form → AI → CSV. Eight nodes. One canvas.
A recruiter pastes a job description and uploads a stack of CVs. The workflow extracts each CV's text, sends it to GPT with the JD, gets back a typed JSON object per candidate, and assembles a downloadable CSV with scores and one-line reasons.
Why this use case?
Indeed is a job platform. CV screening is the AI workflow many of you will reach for at the hackathon - so that's the pattern we teach.
What you actually learn
Form → Loop → AI extract → Output. Apply this shape to support tickets, JD scoring, sales notes, anything with a document.
The compliance line
This is a learning demo. Real CV scoring at Indeed needs HR, legal, and EU AI Act review. We'll come back to this at the end.
Three things, then we're building.
If you came with the pre-workshop checklist done, you can skip ahead. If not, the next slide has the JSON for download - work through these in order.
Download the starter JSON
Next slide has the download. It's the full CV AI Screener workflow -
you'll import it, then we walk through every node together.
Import into your n8n
In n8n: + → Import workflow, pick the JSON file. Tag it
hackathon-prep so the platform team can clean up after.
Add your OpenAI key
Open the OpenAI Chat Model sub-node, click the credential dropdown, paste your key. One credential, one workflow - service account, not personal.
Grab the workflow and the sample data.
Two downloads. The workflow JSON imports into n8n. The sample data zip has a Senior Frontend Developer JD (copy-paste into the form) and 5 fake CVs (upload all at once).
CV AI Screener
In n8n: + → Import workflow from file.
JD + 5 fake CVs
Unzip, open Job-Description.txt, copy & paste into the form. Upload all 5 PDFs.
Node by Node
Eight nodes. One slide each. Build along with me.
The front door of the workflow.
n8n's built-in form. Hosted at a public URL (or behind your network). Two fields: a
Job Description textarea and a multi-file CV upload. The
responseMode: lastNode setting keeps the user's session open
until the very last node returns the CSV download.
Configuration
Normalize Files. Yes, this one is Code and that's OK.
Multi-file uploads come in as CVs_0, CVs_1… on the
same item's binary payload. We need one item per CV downstream. There's no native node
for binary fan-out, so this is the doc's allowed Code use: "logic that no built-in node covers."
What it does
The pattern most beginners get stuck on.
SplitInBatches processes one CV at a time. It has two output branches: the loop branch (off to do the work, then comes back) and the done branch (runs once when all CVs are processed). The wire that goes back into the node is the loop - not a mistake, it's how batch processing looks in n8n.
Configuration
Reads every page into a single string. Native node, no setup.
n8n's built-in Extract from File node, configured for PDF mode. It pulls the text out of every page and joins them. No external API call, no credential - just text in, text out.
Configuration
An AI Agent with a typed schema.
This is the magic. The Agent node sends the CV text + the job description to GPT with a system message ("you're an expert HR recruiter"). The Structured Output Parser sub-node forces the model to return a strict JSON object - every field typed, no string-parsing fragility, no markdown fences to strip.
Configuration
Unwrap the AI output into clean CSV columns.
The Agent's output comes wrapped in $json.output.*. The
Set node unwraps it into nine top-level fields - one expression per output column,
with the skills array joined into a string. No JavaScript, readable by anyone on the team.
Field mappings
Turn the rows into a downloadable file.
Native Convert to File node in CSV mode. Takes every flattened row from the loop
and produces a binary file named cv_screening_results.csv
with a header row generated from the field names.
Configuration
Hand the file back to the browser tab that started it.
The Form node in completion mode with
respondWith: returnBinary. The user's browser tab - still open
from the original form submission - gets a "Screening complete!" page with a download link
to the CSV produced in the previous step.
Configuration
Run your build. Same workflow, your hands.
You watched the demo at the start. Now do it yourself: hit Execute Workflow, open the form URL, paste the JD, upload the sample CVs, watch the rows score, download the CSV. The point isn't seeing it work - it's that you built and ran it.
Where to Take It
The pattern, the policy, the hackathon springboard.
CV scoring is regulated. Treat it that way - everywhere.
Today's workflow is a learning demo. Real CV screening at Indeed needs HR sign-off, legal review, and a region-specific compliance check. The rules differ by jurisdiction; the underlying principles - bias auditing, candidate transparency, human oversight - don't.
EU & UK
EU AI Act classes CV scoring as high-risk (Annex III, employment): conformity assessment, human oversight, candidate transparency, EU database registration. GDPR Article 22 covers automated decisions; UK GDPR mirrors it.
United States
NYC Local Law 144 mandates annual bias audits for automated employment decision tools. Colorado AI Act (2026) covers high-risk AI including hiring. Illinois AI Video Interview Act, EEOC Title VII / ADA guidance, and state privacy laws (CCPA/CPRA, etc.) all apply.
APAC
Singapore Model AI Governance Framework + AI Verify toolkit. South Korea AI Framework Act (2026). Japan METI AI Guidelines for Business. Australia AI Ethics Principles + Privacy Act reform. India DPDP Act (2023). China PIPL + Generative AI rules.
Universal
AI scores are probabilistic, not objective truth. Models reproduce historical bias. Test across gender, age, nationality, disability before any production use. Always involve HR + legal in the region you're deploying to.
Five places this workflow can go next.
Today you built the spine. The hackathon is for putting muscle on it. Each of these is a half-day project - pick one, fork the workflow, ship it.
🔁 Trigger upgrades
Replace the Form with a Webhook from your careers portal, or an Email Trigger for an applications inbox. Same workflow body, runs unattended.
📄 Better extraction
Swap Extract PDF Text for the native Mistral AI node (OCR operation). Massive quality jump on scanned and complex CVs. Tiny config change.
🤖 Smarter AI
Extend the schema: education, certifications, languages, employment gaps. Add a second AI pass to generate personalised interview questions per candidate.
📊 Real integrations
Push results into your ATS, write to Sheets / Notion for collaborative review, Slack-DM the top 3 to the recruiter, store embeddings in a vector DB for talent-pool search.
🔒 Production hardening
Add SSO / magic-link auth to the form. Implement an audit log of every
run. Tag the workflow with hackathon-prep so the platform team
knows it's a draft.
🧠 Pivot the use case
Same shape, different content: job-posting quality scorer, support ticket triage, customer-call summariser. Document in → structured data out applies anywhere.
Today's host: Avanai.
We help organisations adopt AI and roll out n8n internally - the workflows, the credential patterns, the team enablement, the bits that turn n8n from a tool a few people poke at into a platform a whole company runs on. If anything here resonates, we're the people to talk to.
Now go build.
Questions, hackathon-prep tag clean-up, or where to take this next - let's chat.
Press Home to restart · F for fullscreen · ? for shortcuts