πŸ‘₯ Score WhatsApp PDF resumes with OpenAI GPT-4o-mini and Supabase

⚑ 85 views Β· πŸ‘₯ HR & Recruitment

Description

WhatsApp Resume Ranking Bot β€” AI-Powered Career Score via PDF Upload

Let job seekers check their resume strength directly on WhatsApp β€” no app, no sign-up, no friction. Users send a keyword, answer 2 quick questions, upload their PDF resume, and receive a personalized career score, ATS feedback, and rejection analysis in under 60 seconds.

Who is this for?

Career coaches, job portals, HR-tech startups, or recruitment agencies who want to offer a self-serve resume evaluation tool directly inside WhatsApp β€” where their audience already is.


What this workflow does

  1. Listens for incoming WhatsApp messages via the WhatsApp Business Cloud API
  2. Manages multi-turn conversation state in Supabase β€” tracks each user’s progress through the flow (idle β†’ name β†’ role β†’ resume β†’ processing)
  3. Guides the user step-by-step to provide their name, target job role, and PDF resume
  4. Downloads the resume PDF from WhatsApp’s media server using the Business API
  5. Extracts resume text for analysis
  6. Runs a Scoring Engine that calculates a career score (0–100) based on resume content and target role
  7. Calls OpenAI (GPT-4o-mini) in parallel to generate rejection reasons and actionable improvement tips
  8. Merges both results and formats a final WhatsApp message
  9. Sends the personalized report back to the user β€” score, weaknesses, and what to fix

Prerequisites


Supabase table setup

Create a table called whatsapp_sessions with these columns:

ColumnTypeNotes
phonetextPrimary key / unique
statetextConversation state (IDLE, WAITING_NAME, etc.)
nametextUser’s name
target_roletextJob role they’re targeting
started_attimestamptzSession start time
updated_attimestamptzLast activity timestamp

Setup steps

  1. Connect WhatsApp Business API credentials in n8n (Meta App token + Phone Number ID)
  2. Connect OpenAI credentials in n8n
  3. Update the Supabase URL and API key inside the Conversation State Manager Code node
  4. Replace YOUR_PHONE_NUMBER_HERE in the Send nodes with your WhatsApp Phone Number ID
  5. Set up Meta webhook pointing to your n8n WhatsApp Trigger URL, subscribed to messages
  6. Activate the workflow β€” users can now send CHECK MY RANK to trigger the bot

Conversation flow

User: CHECK MY RANK
Bot:  Intro + "Type YES to start"
User: YES
Bot:  "What's your full name?"
User: Rahul Sharma
Bot:  "Which job role are you targeting?"
User: Data Analyst
Bot:  "Upload your resume as a PDF"
User: [uploads PDF]
Bot:  "Analyzing... hang tight πŸ”"
Bot:  [sends career score + rejection reasons + tips]

Customization


⚠️ Important notes

πŸ”— Nodes Used

HTTP Request, WhatsApp Business Cloud, Extract from File, WhatsApp Trigger

πŸ“₯ Import

Download workflow.json and import into n8n: Workflow menu β†’ Import from File

πŸ“– Importing guide Β· πŸ”‘ Credential setup