Job Thing
a Spotify Car Thing, jailbroken into a job board for QA roles

The web demo, on the same UI the device runs. A card carries only what the decision needs: company, title, the test tools the posting names, location, age, work mode and posted pay, with a star when the posting is a strong match for my resume.
What it involved
- Embedded Linux
- A jailbroken Spotify Car Thing runs Chromium 69 in kiosk mode on its 800×480 panel.
- Hardware Testing
- The kiosk UI is tested the way it's used: at 800×480, driven by the dial and five buttons.
- Performance Profiling
- Profiled on the device over Chrome DevTools: one dial detent went from 272 ms to 6 ms.
- E2E Automation
- 59 Playwright tests across the HTTP contract, the kiosk UI and the web demo, with a video of each.
- API Testing
- Greenhouse, Lever, Ashby and SmartRecruiters APIs are fetched hourly, and the server's HTTP contract has its own suite.
- CI/CD
- 184 tests run on every push in GitHub Actions, producing a report with traces, videos and coverage.
- Ranking & Classification
- QA roles are told apart by include and exclude rules, then scored 0–100 by named, explainable rules.
- AI Guardrails
- Apply with Claude checks the tailored resume against the master resume in code, and stops before Submit.
About
A discontinued Spotify Car Thing, jailbroken and turned into a desk device that does one thing: triage SDET and QA job postings. A Python server with no third-party packages pulls every open posting from about 90 company job boards each hour, keeps only real software quality roles, ranks them against my resume, and serves them to the Car Thing's 2018-era Chromium. Turn the dial through the cards, press to read, press again to save. The same kiosk UI runs unchanged in a web emulator on a daily snapshot of real postings, so anyone can try it, and every push runs the whole stack through Python and Playwright suites that record a video of every browser test.
- Python
- SQLite
- JavaScript
- Playwright
- GitHub Actions
- Chromium DevTools
- Embedded Linux
- Vercel
How it's tested 8 checks
a jailbroken Car Thing runs the job board from its dial and five buttons
Chromium 69 in kiosk mode on an 800x480 panel, talking to the server over USB ethernet. Every screen works with turn, press, hold and back, and the device itself never touches the internet.
a dial detent renders in 6 ms, down from 272 ms
Profiled on the device over the Chrome DevTools Protocol: every detent was rebuilding every card. The rail now rebuilds only when the list changes, and a UI test asserts the cards survive a detent so the regression cannot come back quietly.
about 90 company job boards are fetched hourly, with no third-party packages
Greenhouse, Lever, Ashby and SmartRecruiters public APIs plus two aggregators, in parallel, pruning postings only after a fetch succeeds. The server is Python's standard library and SQLite.
QA roles are told apart from manufacturing and food-safety quality
Titles are matched with include and exclude patterns, because the obvious keywords mislead. Every pattern change starts with a test built from a real posting that fooled an earlier version.
every card can say why it ranks where it does
A 0 to 100 score from named rules: title fit, resume skills, seniority, location and freshness. No model output to explain away.
184 tests run on every push, with a video of every browser test
125 Python unit tests and 59 Playwright tests across three projects: the HTTP contract, the kiosk UI driven like hardware at 800x480, and the web demo. Every run produces a report with results, traces, videos and both Python and JavaScript coverage.
the web demo runs the unchanged kiosk UI on a daily snapshot
A shim answers the kiosk's API calls from a snapshot rebuilt every morning, and each visitor's presets and saved jobs stay in their own browser. Saved jobs export as a printable checklist.
Apply with Claude prepares an application and stops before Submit
The tailored resume is checked in code against the master resume, so no employer, date, number or tool can be invented. The form is filled in Chrome and left for me to review; it never signs in or answers self-identification questions.