Back to projects

Automated Job Search Engine and Alert Pipeline

A self-hosted workflow that collects remote job listings, normalizes inconsistent fields, filters them, removes duplicates, and sends selected matches to Telegram.

Status
Working personal system
Category
Data automation
Tools
n8n / REST APIs / JavaScript / Regex / Docker / Telegram
Workflow diagram for the automated job alert pipeline
Multiple job sources routed through normalization, filtering, deduplication, and Telegram

Results and next steps

Result

A recorded run processed 110 listings into 3 high-priority alerts.

Current boundary

It runs locally, so scheduled monitoring depends on my computer being online.

Next improvement

Move the workflow to dependable hosting and measure repeated scheduled runs, API failures, and duplicate handling over time.

How information moves

  1. FetchCollect listings from several job sources.
  2. NormalizeConvert inconsistent fields into one structure.
  3. FilterKeep roles that match the configured criteria.
  4. DeduplicateRemove repeated listings before delivery.
  5. AlertSend selected matches to Telegram for human review.

Overview

I built this workflow to reduce the repeated work involved in checking several remote job sources and comparing inconsistent listings. It is a working personal system that I run locally.

The problem

Job listings arrive with different field names, descriptions, locations, and duplicate records. Reviewing them manually makes it easy to miss a useful role or waste time reading the same listing twice.

How the system works

  1. n8n requests listings from several sources.
  2. JavaScript steps normalize the different responses into one structure.
  3. The workflow filters roles against configured criteria.
  4. Duplicate records are removed.
  5. Selected matches are delivered to Telegram for my review.

What I measured

A recorded run processed 110 listings and produced 3 high-priority alerts. That number describes one observed run, not a guaranteed result for every schedule.

Known limits

The workflow currently runs on my laptop. Scheduled monitoring stops when the computer is offline, and the system still needs longer-running evidence around API failures and duplicate handling.

What I would improve next

I would move the workflow to dependable hosting, add stronger error reporting, and measure repeated scheduled runs over several weeks.