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