I Built a Free 24/7 Job Alert System That Beats LinkedIn by 2 Days

January 25, 2026 (1mo ago)

The Problem

If you've ever applied for a job at Google, Amazon, or Microsoft through LinkedIn, here's something you might not know: by the time you see that listing, it's probably 1-2 days old.

LinkedIn and other job aggregators don't scrape career pages in real-time. They batch-update, sometimes daily, sometimes less frequently. In a competitive job market, those 48 hours can mean the difference between being in the first 50 applicants or the first 500.

I wanted to know about jobs the moment they appeared—not when LinkedIn decided to tell me.


The Solution

Instead of waiting for aggregators, I built a system that watches company career pages directly and sends me a notification within 30 minutes of a new job posting.

The concept is simple:

  1. Visit career pages on a schedule
  2. Detect when new jobs appear
  3. Send me a notification immediately

The implementation? That's where it gets interesting.


Architecture

The system has two main components running in Docker containers:

Architecture of the job alert system

The same Docker setup runs anywhere—your laptop for testing, or a cloud server for 24/7 monitoring.

Running Locally vs Cloud

                    Local (Laptop)     Cloud (Oracle Free Tier)
─────────────────────────────────────────────────────────────────
Cost                Free               Free forever
RAM                 8-16 GB            1 GB (+2 GB swap)
Runs 24/7           No (sleeps)        Yes
Setup time          10 minutes         1-2 hours
Best for            Testing            Always-on monitoring

I started locally to validate the approach worked, then moved to Oracle Cloud for 24/7 operation.

The RAM Reality

Here's what I discovered: Chrome is hungry.

When rendering a heavy page like Amazon Jobs, the headless browser consumes 900+ MB of RAM. On my laptop with 16 GB, no problem. On Oracle's free tier with 1 GB total? That's a squeeze.

I added a 2 GB swap file to handle memory spikes. Simple sites (Lever, Greenhouse) work flawlessly. Heavy sites (Amazon, Microsoft) need patience—60-second wait times to fully render.

If you're monitoring many JavaScript-heavy sites, a $4-6/month VPS with 2 GB RAM removes these limitations entirely.


The Components

Changedetection.io

The brain of the operation. It's an open-source tool that:

  • Visits web pages on a schedule
  • Detects when content changes
  • Sends notifications when something's different

Think of it as "Google Alerts" but for any webpage, with much more control.

Playwright + Headless Chrome

Here's the critical piece. Modern career pages (Google, Amazon, Microsoft) don't serve job listings in plain HTML. They load a shell, then JavaScript fetches and renders the actual jobs.

If you just download the HTML, you get nothing—an empty page.

Playwright solves this by running a real Chrome browser (without the visible window). It:

  1. Loads the page
  2. Waits for JavaScript to execute
  3. Waits for job listings to appear
  4. Then captures the content

Notification System

When a change is detected, I get a Telegram message within seconds. Discord, Slack, and email are also supported.


The Flow

Here's what happens every 30 minutes:

1. Scheduler triggers: "Time to check Google Careers"
                              │
                              ▼
2. Playwright launches headless Chrome
                              │
                              ▼
3. Chrome navigates to careers.google.com/jobs
                              │
                              ▼
4. Waits 15-60 seconds for JavaScript to load jobs
   (varies by site complexity)
                              │
                              ▼
5. Extracts text content from the page
                              │
                              ▼
6. Compares with last check:
   └── Same? → Do nothing
   └── Different? → Send notification
                              │
                              ▼
7. Telegram buzzes:
   "🚨 Change detected on Google Careers!"
                              │
                              ▼
8. I check immediately, apply within hours of posting

Results So Far

I'm monitoring 15 career pages across big tech and startups.

Site                          Status
───────────────────────────────────────────────────
Google Careers                ✓ Working great
Microsoft Careers             ✓ Working great
Anthropic Careers         ✓ Working great
Greenhouse sites          ✓ Working great
Amazon Jobs                   ✓ Works (60s wait time)
───────────────────────────────────────────────────
Detection time                30-45 mins after posting

The system runs quietly, checking pages while I work on other things. When something new appears, my phone buzzes.


Cost Breakdown

Option                        Cost            Notes
────────────────────────────────────────────────────────────────
Local (Laptop)                $0              Stops when laptop sleeps
Oracle Cloud (Free Tier)      $0/month        1 GB RAM, some timeouts
Hetzner VPS (2 GB)            ~$4/month       Stress-free, recommended
Vultr VPS (2 GB)              $6/month        Reliable alternative
DigitalOcean (2 GB)           $6/month        Reliable alternative

I started with Oracle's free tier. It works for most sites, but if you're monitoring many JavaScript-heavy pages, the $4-6/month upgrade removes all the RAM headaches.


Final Thoughts

This was a weekend hack that actually solved a real problem for me.

I started on Saturday morning with an idea: "What if I could know about jobs before LinkedIn?" By Sunday evening, I had a working system sending me Telegram notifications from a free cloud server.

There's something satisfying about building a small tool that runs 24/7, doing its job while you do yours. No subscriptions, no fancy SaaS, just open-source tools duct-taped together on a free VM.

Is it perfect? No. The 1 GB RAM limit means occasional timeouts. Some sites need babysitting. But it works—and it's free.

What's Next

Now that I'm getting notified about jobs early, the next bottleneck is obvious: tailoring my resume for each application.

I'm working on a custom AI agent that:

  1. Reads a job description
  2. Analyzes my experience
  3. Generates a tailored resume matching the JD's keywords and requirements
  4. Outputs a ready-to-submit PDF

The goal is to go from "new job alert" to "submitted application" in under 10 minutes.

That's the next weekend project.


If you found this useful, follow along—I'll share the resume agent once it's ready.