Hirepin: a remote software job board with paid and featured listings
Remote jobs filtered by category, type and salary, a weekly new-jobs email, and $99 listings paid by card, $50 more to feature.
Agent specs
- Agent
- Claude Code, Opus 5.5 Medium
- Time
- 25 min
- Cost
- $7.82*
Agents work faster and more accurately on Elements.
* Cost at API rates, September 2026.
Run it yourself
Paste this prompt into your AI agent. You get the finished app on your own machine, ready to change however you like.
Install elements: curl -fsSL 'https://install.elements.dev?os=darwin' | sh && export PATH=~/elements/bin:$PATH Create an Elements app from the elementscode/demo-hirepin scaffold: cd ~/elements/projects elements create hirepin -scaffold=elementscode/demo-hirepin cd hirepin Start the app.
How it's built
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
@rpccall, 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.
The code
Build it from scratch
To watch your agent build this app from an empty project, use the prompt we used instead. It takes longer than starting from the finished app above.
Install elements: curl -fsSL 'https://install.elements.dev?os=darwin' | sh && export PATH=~/elements/bin:$PATH Create an Elements app: cd ~/elements/projects elements create hirepin cd hirepin Start the app, then build this: Build a job board named hirepin for remote software jobs. JOB SEEKER - Browse and search jobs, filter by category (engineering, design, product, marketing), job type and salary range. - A job page with the description and an apply link. - Subscribe to a weekly email of new jobs in chosen categories. EMPLOYER - Post a job without an account: company, logo, title, category, salary range, markdown description, apply url. - Pay $99 by card to publish for 30 days. A featured upgrade for $50 pins it to the top. - Get an email with a private link to edit the listing. - Listings expire after 30 days; the employer gets an email a few days before. ADMIN - Review and remove listings. Payments by Stripe. Seed the admin and about twenty-five live listings from made-up companies with logos, a few featured. Show the admin login on the sign-in page. New listings appear on the board in real time.
Comments· 0