Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Filtering Freelance Leads: Recency Windows and Job‑Board Rules in My Home‑Hosted Scanner

Описание и применение

Автор создал фильтр для сканера вакансий фриланс‑платформ, ограничивая результаты свежими объявлениями и устраняя шум, используя окна актуальности и правила специфичные для каждой доски.

Задача

Freelance job boards return stale or noisy listings, making it hard to identify fresh, relevant opportunities for personal projects.

Результат

The filter pipeline reduces noise and stale data, delivering a focused set of fresh freelance leads to Slack.

Рабочий процесс

  • 1. Cron job triggers Node.js script every 30 minutes.
  • 2. Script fetches raw JSON feeds from each board.
  • 3. Normalises payloads into a common shape (id, title, board, postedAt, budget, description, url).
  • 4. Applies recency filter based on per‑board window (config/recency.json).
  • 5. Applies board‑specific rules (upworkRule, freelancerRule, guruRule).
  • 6. Sends surviving leads to Slack via webhook.

Доказательства

When I started scanning freelance job boards for my own projects, I quickly ran into two problems: most listings were stale, and each board had its own quirks that made a naïve scraper return a lot of noise.

Источник

The scanner runs on a modest Raspberry Pi 4 that I keep in my garage.

Источник

A cron job triggers a Node.js script every 30 minutes.

Источник

The filter reads this file at start‑up: // src/filters/recency.js ... const minutes = recencyConfig[job.board] || 60;

Источник

I encode these as small predicate functions: // src/filters/boardRules.js ... function upworkRule(job) { if (job.budget === 0 && !/fixed-price/i.test(job.title)) return false; return true; }

Источник

  • Дата записи: 2026-11-01T23:14:09.659Z