The Harbor Ledger: a local news site with sections, bylines, a breaking banner, live updates and feeds
The website for a fictional local newsroom: a newspaper-style front page, section fronts, reporter pages, a breaking news banner switched...
A remote job board for climate tech with filterable listings, company profiles, JobPosting structured data, RSS and JSON feeds and a members-only salary hub, built on Raytha by an AI agent with the CLI in about 15 minutes.

A short, silent tour of the finished site, recorded from the real pages.
10 screens from the finished site, on desktop and on a phone. Use the arrow keys, swipe, or open any screen full size.
Each week we take a realistic brief, hand it to an AI agent with the raytha CLI, and publish what comes out: the
site, the files behind it, and a kit you can use to rebuild it yourself. This week: a niche job board.
The agent built it on a fresh Raytha 2.0.1 instance. Nobody opened the admin. Every template, content type, job, company, page, menu and function went in through the CLI, from files in a directory.
Groundwork is a fictional board of remote and hybrid roles at climate tech companies, with a salary range on every listing. The site has:
members group see salary benchmarks by category and
curated saved searches with live counts. Everyone else gets a sign-in prompt.Job seekers never need an account, and there are no payment or job-posting forms. Every Apply button links out.
It is a light, editorial theme: Fraunces for display type, DM Sans for text, IBM Plex Mono for labels and salaries. The palette is warm paper, deep forest green and a bright lime accent, with topographic contour lines drawn in SVG behind the hero and page headers. Each company has a generated SVG logo and a brand colour that carries through its cards and profile. It is responsive down to a 390px phone, where the filters become swipeable rows of chips.
| Feature | How it is built |
|---|---|
| Jobs and companies | Two content types from one schema document. Jobs use a relationship field to their company, dropdowns for category, location type, currency, employment type and seniority, a multiple select for skills, number fields for the salary band, dates for posted and closing, and a checkbox for featured. |
| 35 seed items with logos | Content import from JSON Lines. Each job refers to its company by name, and each logo is uploaded to the media library as its company is created. |
| Filterable, searchable job list | A list view at /jobs. The Liquid list template reads ?q=, ?category=, ?type=, ?salary=, ?tag= and ?sort= from QueryParams, checks each against a list of known values, builds a filter such as contains(tags,'python') and salary_max ge 130000, and calls get_content_items. |
| Remote only | A second list view at /jobs/remote with a saved view filter (location_type eq remote), rendered by the same template. |
| Company profiles that list their jobs | The company detail template queries jobs with company eq '<id>'. |
| Similar roles | The job detail template queries other jobs in the same category. |
| Google for Jobs | The job detail template writes a JobPosting JSON-LD block: title, description, dates, salary band and currency, the hiring organization and its logo, and either a location or remote eligibility. |
| Feeds | Two Raytha Functions with HTTP triggers, at /feeds/jobs.rss and /feeds/jobs.json (JSON Feed 1.1). They read jobs through API_V1, follow the company relationship, and accept the same ?category=, ?type= and ?tag= filters. |
| Live stats and counts | Widgets run get_content_items when the page renders, so counts, averages and featured roles stay current without anyone editing the page. |
| Home and About pages | Site pages built from 10 custom widget templates (search hero, stats, featured jobs, categories, companies, feature cards, call to action, page header, rich text, FAQ). Each widget has a settings form, so an editor can change the copy in the admin. |
| Members' Hub | A user group (members). The page template checks CurrentUser.UserGroups and renders the benchmarks and saved searches on the server only for members. Non-members never receive that HTML. |
| Navigation | Two menus: the main menu (get_main_menu()) and a footer menu (get_menu("footer")). |
This is the brief, as given to the agent.
Build a niche, realistic job board on a fresh Raytha instance with the
raythaCLI: a remote jobs board for climate tech or for .NET developers (pick the more visually compelling one). No clicking around the admin.
Look and feel
Content model, with realistic seed content
Pages and functionality
Done means
raytha check passes with no broken routes.About 15 minutes of agent time, from an empty install to raytha check passing on all 48 routes, including the
visual design work. The agent picked climate tech over .NET because it gave the design more to work with: company
brands, a nature-inspired palette and a reason for salary transparency to be the headline feature.
The theme, schema, functions, seed content, logos, page definitions and menus are in the
raytha-examples repository,
with a build.sh that rebuilds the whole site into any Raytha 2.x instance. Point it at your site with
RAYTHA_URL and RAYTHA_API_KEY and run it.
Free, open source and ready to deploy in minutes. Bring a brief and an AI agent.