--- title: "Hirepin: a remote software job board with paid and featured listings" author: "@chris" author_url: https://elements.dev/users/chris published: 2026-09-30T21:47:27.248Z url: https://elements.dev/demos/zk3xc2dr/hirepin-a-remote-software-job-board-with-paid-and-featured kind: post format: article --- # Hirepin: a remote software job board with paid and featured listings by [@chris](https://elements.dev/users/chris) ยท 2026-09-30 ## Description Remote jobs filtered by category, type and salary, a weekly new-jobs email, and $99 listings paid by card, $50 more to feature. Hirepin needed a board that fills in as listings are paid for, employers who post and edit from an emailed link, card payments for publishing and featuring, expiry reminders and a weekly email. Each of those is a part of Elements, so the agent spent its 25 minutes on the job board itself. **What Elements gave the app** - **A live board.** Listings are a LiveTable, so a job appears on every open board the moment its payment lands, and the search, category, job type and salary filters run in the page over that live list. - **Posting without an account.** The post form sends the fields and the logo to the server in one `@rpc` call, saves a draft and emails the employer a private link for editing and paying later. - **Card payments.** Publishing for 30 days costs $99 and featuring costs $50, with prices from the app's config. The listing goes live once whether the return page or Stripe's webhook arrives first, and until a Stripe key is added the pay button opens a test checkout inside the app that records the payment just as a Stripe one is recorded. In production the app registers its own Stripe webhook on the first checkout. - **Jobs and email.** A cron schedule checks every 15 minutes, takes listings off the board after 30 days and emails each employer a few days before. Every Monday at 9am a job emails each subscriber the new jobs in their categories, once per week. - **Data from SQL files.** Migrations define the board and seed the admin and 25 live listings from 22 made-up companies with drawn logos, four of them featured. - **Sessions and roles.** The admin's review and remove pages and their server calls share one guard on the admin role. **What the project server gave the agent** The project server runs alongside the agent and answers as soon as a file is saved: it type-checks the templates, TypeScript and SQL, applies migrations and reruns the tests, so every question came back right away and the agent kept building. **What shipped** The app type-checks with zero errors and all 26 tests pass. Every page works on desktop and phone. A real sandbox payment went through Stripe end to end.