I created a personal job-scraping and qualifying system using an old laptop with 3.3GB RAM — here’s the actual technology stack.
Currently seeking job opportunities in GTM, RevOps, and automation roles, I grew weary of the tedious task of manually filtering through duplicate and inconsistent job postings across various platforms. To solve this issue, I repurposed an old Lenovo Ideapad, typically deemed obsolete, into a self-hosted automation tool that manages the sourcing and qualification process for me.
Hardware/host specifications include:
Lenovo Ideapad 110-15IBR running Ubuntu with approximately 3.3GB of usable RAM.
The firewall is configured with UFW, applying a deny-by-default policy, with no ports forwarded on the router.
The technology stack consists of:
n8n, deployed using single-container Docker Compose (I completely avoided Redis/Postgres and opted for SQLite, enabling execution data pruning to prevent memory bloating on this limited RAM).
Tailscale provides remote access without requiring port forwarding, offering a functional HTTPS domain through Magic DNS, and tailscale serve reverse-proxies directly to the n8n container running on localhost. This setup avoids any public attack surface.
There was a temporary issue with container DNS where Docker could not access Ubuntu’s local resolver (127.0.0.53), resulting in failed HTTP Request nodes when attempting to call external APIs, which I resolved by hardcoding the DNS to 8.8.8.8 and 1.1.1.1 in compose.yml.
Remote administration is facilitated via tailscale up –ssh, eliminating the need for an exposed port 22 or complications with a VPN client, allowing for identity-based access from another laptop or phone.
Functionality includes:
Daily retrieval of job listings from several job APIs, applying three distinct deduplication methods (batch, ID, and fuzzy title/company matching — one deduplication step alone isn’t sufficient), scoring each listing on a scale from 0 to 100 based on a rubric using an LLM, and transferring qualified listings into Airtable. Instead of having to check five tabs manually, I receive a dashboard each morning.
Challenges faced include:
Google OAuth frequently disconnecting as the consent screen remains stuck in "Testing" mode — this issue has not yet been properly resolved.
No applications have been sent out from the pipeline to date — it serves solely as a sourcing and qualifying layer, not an automated application system, and I still need to finalize that last step manually.
I am primarily sharing this because I found limited information on operating n8n in such a resource-efficient manner (no queue mode, no separate database) on genuinely underpowered hardware — most resources presume access to a VPS with substantial specifications. I am willing to share the compose file or specific node configurations if anyone is attempting a similar project on low-spec hardware.
https://i.redd.it/p69tqeofohrh1.jpeg
Source: r/homelab · by /u/Top_Conflict_7240
