Work jobpipe
Reading 8,600 job postings so I only read thirteen
Most of a job search is reading listings that were never a fit, so I built a tool to do that part. Every morning jobpipe pulls job postings from company career pages, Workday, remote job boards and Indeed into one SQLite file. Simple rules filter out 93% for free. Claude scores the rest, quoting the posting to confirm a role is really remote. The best matches get a tailored resume, fact-checked by code against my real one, and the strongest of those get the application sent automatically.
$ jobpipe screen --allScreened 8624. 597 passed, 8027 ruled out. 5792 too-senior 5218 not-remote 2566 outside-us 1496 wrong-function 649 deep-specialist 307 office-days-required $ jobpipe statsjudged 248 NO 201 WEAK 34 FAIR 10 STRONG 3
- Role
- Sole author, and its first user
- Stack
- TypeScript · Node 22 · SQLite · Claude Code · Playwright MCP
- Links
- Source on GitHub · npm
Free filtering first, AI only where it counts
Having Claude read a full job description is the one step that costs anything, so it comes last. Everything before it is free: one request per company job board, a screen of named rules (a seniority word in the title, a salary range below my floor, a security clearance, required office days), and removing duplicates across sources.
The rules only act on clear evidence. Anything that needs judgment passes through to Claude, so every promising posting gets a proper read.
Tuning each rule by what it filters on its own
Every filtered posting records every rule that matched it, not just the first. That makes tuning simple arithmetic. In one early run the job-family rule matched 1,261 postings but was the only reason in just 13, while loosening the seniority rule would have brought back 397. So I knew exactly which rule to adjust.
Each change starts with a real posting and a test written from it. That's how three tricky cases are now covered for good: a Roman numeral that made "Senior Engineer II" look junior, "London, UK" matching a US state code, and benefits text saying "remote" on an office job.
Every "remote" job is verified against the posting
Job boards' remote tags are a starting point, not the final word. Claude has to quote the exact words in the posting that make a role remote, and only roles it confirms reach my queue. I added this after spotting two listings early on that were tagged remote but turned out to be on-site.
The same job often shows up in several places: the company's own career page, a remote feed, and Indeed more than once. jobpipe compares only the copies that passed every rule and keeps the company's own posting, since that is where the application goes. The US-remote version of a role always wins over a London one.
Automatic applications with checks built in
Automatic applying runs inside a clear lane. A posting qualifies when Claude scored it 4 or 5, confirmed it is remote and saw no ghost-job signs, and when it is on the employer's own Greenhouse, Lever or Ashby page. Everything else waits in my queue for me to review.
Before anything is sent, the tailored resume passes a fact check in code: every number, employer, tool and product has to appear in my real resume, and the contact header must match. A fresh, private headless browser then fills in the form. It stops at account sign-ups, passwords, CAPTCHAs and on-site requirements, and it applies to each job once.
What it moved
- Postings collected into one store
- 8,624
- Filtered out before an AI reads anything
- 93%
- Dependencies: just Node and its built-in SQLite
- 0
- Tests, with every screen bug pinned as one
- 48