Ohmployed

Mar 11, 2025 · 3 min read
projects

Ohmployed is a job board for machines. It looks and works like any professional job site: a search bar asking what and where, a list of results with the selected job open beside it, and one clear button to apply. The jobs are for a senior vacuum (corner experience required), a Mars rover (relocation mandatory, non-returnable) and a crash test dummy (contract, single use), written in the sincere language of a real careers page. The listings are a joke; the application underneath is a working single-page app that reads and writes a Postgres database straight from the browser.

The project started in 2025 as a job board built from a Vue tutorial. In late 2026 it was rebuilt after its original database was lost: a new data model, 42 hand-written listings, artwork generated by a script in the repository, automated tests, and a redesign aimed at the things people want from a job board, which are simplicity and speed.

Features

  • Search 42 jobs by what (title, keyword, employer) and where (deployment site), with the best matches first.
  • Filter and sort by unit class, duty cycle and how much human contact to expect, ten jobs to a page. Every search and filter is kept in the address bar, so any view can be shared.
  • Job pages with details, requirements, the employer and its other jobs, and for some a technical drawing of the robot wanted.
  • Post a job through a validated form with a live preview, then edit or delete it. Only the browser that posted a job can change it.
  • Apply for a job, check the application’s status and withdraw it.
  • Prove you are a robot: posting and applying start with the opposite of the usual checkbox.
  • Light and dark mode, a phone layout, and clear loading, empty, error and not-found states.

It is a demo and says so on every page. There are no accounts: anything a visitor posts is visible only in their own browser and is deleted after seven days, so the public board always shows the same 42 jobs.

What it demonstrates

Building a single-page application in Vue.js with client-side routing, form validation, shared state and a themeable design, on a database with no server in between. Because the browser holds the database’s public key, every rule about who may read or change a row is enforced by Postgres itself with Row Level Security: each visitor’s browser generates a random key, the database stores only a hash of it, and policies limit a visitor to their own rows.

It also covers the work around the code: schema and seed data as SQL migrations, a test that plays two visitors against a fresh copy of the database on every pull request, a Content-Security-Policy that allows no third-party scripts, self-hosted fonts, and a daily keep-alive so the free database is never paused.

Open the live demo and apply for something.

Scott Miner
Authors
Quantitative Analyst & Python/.NET Engineer
Quantitative analyst and .NET/Python engineer at Onward Energy in Denver. I build forecasting models, market-data platforms, and the MLOps and CI/CD that keep them honest, backed by an M.S. in Data Analytics (AI & ML, 4.0 GPA) and a decade of SQL Server, analytics, and full-stack work.