Automatic job listings extraction and publishing template

Go to Workflow
1,482 views
Built by Khairul Muhtadin Khairul Muhtadin
Created on July 27, 2025

Description

Turn any job ad URL into a polished WordPress post. Send a link via Telegram and this workflow scrapes the job details, enhances the content with GPT, and publishes a clean post on your site. No copy-paste, no typos slipping through.

Last updated: September 2026.

Why Use Job Repost?

Save countless hours
Extract, process, and publish job offers from any website automatically. Repetitive work disappears.

Eliminate human errors
Typos and missed fields become history. Every job post is validated before going live.

Boost engagement
Fresh, well-structured listings attract more candidates and grow your site's reach and authority.

Stay ahead
AI-polished, SEO-friendly content on autopilot. The assistant you never knew you needed.

Perfect For

Job board managers:** Aggregate listings from multiple sources with minimal effort.
Recruiters & HR teams:** Streamline job posting without technical hassles.
Content creators & marketers:** Automate publishing while keeping style and SEO standards.

How It Works

Trigger:** Send a job URL via Telegram bot to start the process.
Extract:** Firecrawl API scrapes clean content from the provided URL.
Process:** AI extracts the job data, text is split and cleaned, categories and types are mapped to your system.
Smart Logic:** GPT crafts formatted job posts, validation checks that key data is present, defaults fill the blanks if needed.
Output:** Posts publish to WordPress automatically with company logos uploaded, plus success or error notifications via Telegram.
Storage:** Supabase vector store manages document embeddings for quick lookup and reference.

Quick Setup

Import the provided JSON file into your n8n instances
Add credentials:
Firecrawl API key
Google Drive OAuth2 (for RAG storage)
OpenAI API
WordPress API
Telegram API
Supabase
Customize:
Telegram bot token
WordPress URLs
Default images and category mappings if needed
Update: URLs and API tokens where placeholders are used
Test: Send a job URL to your Telegram bot to verify accurate extraction and posting

You'll Need

Active n8n instances
Firecrawl account with API access
Google Drive account for RAG document storage
OpenAI account with GPT API access
WordPress site with autojob plugin and API enabled
Telegram bot for URL submission and notifications
Supabase account for vector store management (docs)

Level Up Ideas

Add multi-language support to expand global reach
Support batch URL processing for multiple jobs at once
Integrate Slack or email notifications for wider team alerts
Use more AI nodes to summarize or rate job offers for quality control
Schedule periodic cleanup of vector store for performance optimization
Add analytics tracking for published jobs performance

Nodes Used

Core Components:
Firecrawl HTTP Request** (Web scraping and content extraction)
Google Drive** (RAG document storage)
Supabase Vector Store**
OpenAI** (Embeddings, GPT Extraction)
Code Nodes** for mapping categories
Telegram Trigger & Message**
HTTP Request** (for WordPress API and image uploads)

Quick Answers
How do I submit a job?
Send the job ad URL to your Telegram bot. Extraction and publishing run automatically.
Where does the post go?
Straight to WordPress with company logo uploaded, plus a Telegram notification on success or error.
Where is the data kept?
Document embeddings live in your Supabase vector store for quick lookup.

Made by: khmuhtadin
Tags: automation recruitment job-posting wordpress AI web-scraping firecrawl
Category: Human Resources, Recruitment, Wordpress, Scraping
Need a custom? contact me on LinkedIn or Web

Additional info
Built with n8n. Need an assessment on your business? Feel free to reach out at https://khmuhtadin.com/consultation/

This workflow was created by Khairul Muhtadin and shared publicly on the n8n community template library. n8nFind indexes it for discovery — the workflow remains the property of its original creator.

Nodes Used (9)

Code
n8n-nodes-base.code
Default Data Loader
@n8n/n8n-nodes-langchain.documentDefaultDataLoader
Embeddings OpenAI
@n8n/n8n-nodes-langchain.embeddingsOpenAi
Google Drive
n8n-nodes-base.googleDrive
HTTP Request
n8n-nodes-base.httpRequest
OpenAI
@n8n/n8n-nodes-langchain.openAi
Recursive Character Text Splitter
@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter
Supabase Vector Store
@n8n/n8n-nodes-langchain.vectorStoreSupabase
Telegram
n8n-nodes-base.telegram