Platform CLI Use cases
Learn
Developer docs User guide Quickstart CLI and AI agents Blog
Company
Services About Contact Links Get started
Jobs and directories

Groundwork: a climate tech job board built by an AI agent

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.

Build time
About 15 minutes
Built with
Raytha 2.0.1 and the raytha CLI 0.1.1
Industry
Jobs and directories
Rebuild
One script, from GitHub
Groundwork: a climate tech job board built by an AI agent
Walkthrough

See it in action

A short, silent tour of the finished site, recorded from the real pages.

Silent walkthrough, 1080pOpen the MP4
The site

Take the tour

10 screens from the finished site, on desktop and on a phone. Use the arrow keys, swipe, or open any screen full size.

01 / 10Home page with a search hero over a stack of featured roles
The write-up

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.

What was built

Groundwork is a fictional board of remote and hybrid roles at climate tech companies, with a salary range on every listing. The site has:

  • A home page with a search hero over a stack of featured roles, live stats (open roles, companies hiring, share of remote roles, average salary), featured jobs, eight categories with live counts, the companies hiring, and a call to the Members' Hub.
  • A job list that filters by category, location type, top-of-band salary and skill, searches titles, summaries, locations and skills, and sorts by newest or highest salary. Active filters show as removable chips, and every combination is a URL you can bookmark or share.
  • A remote-only view with the same filters.
  • A page per job with the salary band, location, seniority and employment type, an Apply button that goes straight to the employer's own site, a company card and similar roles.
  • JobPosting structured data on every job page, so listings can appear in Google's job search.
  • A company directory, and a profile page per company that lists every role they have open.
  • RSS and JSON Feed versions of the board, with the same filters as the list.
  • A members-only Members' Hub. Signed-in members of the members group see salary benchmarks by category and curated saved searches with live counts. Everyone else gets a sign-in prompt.
  • An About page with an FAQ, plus restyled sign-in, 403, 404 and 500 pages.

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.

Features, and the Raytha features behind them

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")).

The brief

This is the brief, as given to the agent.

Build a niche, realistic job board on a fresh Raytha instance with the raytha CLI: 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

  • Visually impressive and premium, with a look of its own: its own palette and a Google Fonts pairing.
  • Display type that is well proportioned, not overly wide or squished.
  • Responsive. It has to look good on a phone as well as a desktop.
  • Company logos are generated SVGs, so there are no third-party license issues.

Content model, with realistic seed content

  • Jobs (about 25): company, location, remote/hybrid/on-site, salary range, tags and posted date.
  • Companies (about 10): logo and a profile page that lists their jobs.

Pages and functionality

  • A job list you can filter and search by category, location type, salary and tags, using list views and query parameters.
  • A page per job with a structured Apply link to an external URL. No forms, no payments.
  • A featured jobs section.
  • An RSS or JSON feed of jobs from a Raytha Function.
  • Optionally, JobPosting JSON-LD on job pages for Google for Jobs.
  • A members-only saved-search or employer hub page if it fits naturally.

Done means

  • raytha check passes with no broken routes.
  • Screenshots of the result on desktop and mobile.
  • The schema and theme exported so the site can be rebuilt or deployed elsewhere.

How long it took

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.

Rebuild it yourself

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.

Share Post LinkedIn

Build yours on Raytha

Free, open source and ready to deploy in minutes. Bring a brief and an AI agent.