DEV Community

earnnova-dev
earnnova-dev

Posted on

How to run your own 24/7 remote job watcher in 5 minutes (open source, self-hosted)

The hosted job monitors (Distill, PageCrawl, Apify's Upwork tracker) work — but they scrape your sessions, cost a monthly fee, and your data lives on someone else's box. I got tired of that and built GigWatch, a small open-source tool you run on your own machine. Here's how to run your own 24/7 remote-jig watcher in ~5 minutes, no account required.

What it does

Point it at the feeds you care about, tell it what you do, and it pings you only when a new matching gig lands — not a raw dump of everything.

$ gigwatch scan
scanned 17 job(s) from 1 source(s); 4 match filter; 2 new
GigWatch: 2 new matching gig(s)

1. Senior Python Backend Engineer
   company: Acme Digital
   salary:  $120k-$150k
   where:   Remote (Worldwide)
   matched: python, backend
   score:   9.0
   https://remotive.com/remote-jobs/...
Enter fullscreen mode Exit fullscreen mode

It comes with built-in, no-auth feeds (Remotive, We Work Remotely, RemoteOK, Jobicy, Hacker News "Who is Hiring?"), plus support for any RSS/Atom feed or JSON endpoint.

The 5-minute setup

pip install gigwatch-nova
gigwatch add --source remotive --where "remote"
gigwatch scan
Enter fullscreen mode Exit fullscreen mode

That's it. It writes a local JSON state file so you're only ever alerted on new matches, and it auto-prunes old entries.

The part most people skip: a live dashboard

The underrated feature is gigwatch serve. One command boots a self-contained, shareable dashboard (auto-refreshing HTML) plus machine-readable /api/jobs (JSON) and /feed (RSS) on a single port, with a background refresh loop and a /health probe. Stdlib-only, no dependencies to install.

gigwatch serve --port 8080
Enter fullscreen mode Exit fullscreen mode

Run that on a $5 VPS and you have a private, self-hosted job board that only shows you your matching gigs. No SaaS, no monthly fee, your data stays in your box.

Batched digests (so it doesn't spam you)

gigwatch digest catches every new match the moment it appears but delivers one consolidated alert per period (default: daily) instead of a ping per scan. The pattern behind a hosted offering: run watch on a short interval to keep the buffer fresh, digest on a long interval to flush it.

Why "self-hosted" actually matters here

  • No session scraping. Your skills, feeds, and history never leave your machine.
  • No lock-in. It's a small, readable Python CLI under MIT.
  • Portable. Laptop, $5 VPS, or a cron job.

I've written about the market analysis and the stale-listing economics behind it in my field notes, and there's a curated list of 10+ free job board APIs with Python examples if you want to wire up your own feeds.

If you build it and hit a wall, the issue tracker is the place to open it. The first few people who comment on the free-setup issue get a hands-on setup.


GigWatch is open source (MIT). v0.6.3 is the current release on PyPI.

Top comments (0)