Ever feel like the best freelance jobs slip through the cracks?
I’m a contractor here in Palm Beach County, and I rely on a small home‑run lead scanner to pull job posts from a dozen boards. The problem? I was getting flooded with old or irrelevant listings and the real opportunities got lost in the noise.
1⃣ Set a recency window per board
Different boards update on different schedules. A 24‑hour window works for fast‑moving sites like Upwork, but a 72‑hour window is more realistic for niche boards that only refresh a few times a week.
# Example: apply board‑specific recency limits
RECENCY = {
"upwork": 24, # hours
"guru": 48,
"localboard": 72,
}
def is_recent(post):
max_age = RECENCY.get(post.board, 48)
return (now - post.timestamp).total_seconds() / 3600 <= max_age
2⃣ Add simple rule checks to weed out noise
A few quick regex rules catch most junk:
- Exclude posts that contain "internship" or "unpaid".
- Require at least one keyword from your service list (e.g., "electrician", "HVAC", "roof repair").
- Drop listings that have a salary range below your minimum rate.
EXCLUDE_PATTERNS = [r"internship", r"unpaid"]
KEYWORDS = ["electrician", "hvac", "roof repair"]
MIN_RATE = 30 # $/hour
def passes_rules(post):
text = f"{post.title} {post.description}".lower()
if any(re.search(p, text) for p in EXCLUDE_PATTERNS):
return False
if not any(k in text for k in KEYWORDS):
return False
if post.rate and post.rate < MIN_RATE:
return False
return True
3⃣ Combine the filters and keep the list tidy
Run the two checks together before you push the leads to your inbox or Slack channel. The result is a short, high‑quality list you can actually act on.
filtered = [p for p in incoming_posts if is_recent(p) and passes_rules(p)]
send_to_slack(filtered)
Since tightening the windows and adding those rule checks, my inbox is no longer a dump of stale ads. I spend less time scrolling and more time bidding on jobs that actually match my trade. If you’re juggling multiple boards, give these tweaks a try—you’ll see the difference within a day.













