All use cases
HR teams & startups

Build a Job Board from Google Sheets

Use Google Sheets as the data source for a job board — post, filter, and display job listings with SheetsAPI.


Run a job board out of a spreadsheet

Most small teams don't need a dedicated ATS or a custom database to post open roles. If your HR team already maintains job listings in a Google Sheet, GKit SheetsAPI can turn that Sheet into a live REST endpoint — no backend code required.

Sheet structure

Create a sheet named Jobs with these columns:

titledepartmentlocationtypedescription
Senior EngineerEngineeringRemoteFull-timeWe're looking for...
Product DesignerDesignNew YorkContractJoin our design team...

Keep the first row as headers. Every new row you add becomes immediately queryable.

The API call

Fetch all open engineering roles in one request using the search parameter:

const res = await fetch(
  "https://sheetsapi.gkit.mreshank.com/api/spreadsheets/{userKey}/Jobs?search=department:Engineering"
);
const { data } = await res.json();
// data is an array of row objects matching the header columns

To filter by location at the same time, chain search terms:

?search=department:Engineering&search=location:Remote

To list only full-time roles sorted by title:

?sort=title&search=type:Full-time

Rendering the listings

Map the response onto your job board UI:

data.forEach(job => {
  console.log(`${job.title} — ${job.department} — ${job.location}`);
});

Because the response is plain JSON, the same endpoint works for a Next.js page, a plain HTML site, or a mobile app — whatever your careers page is built on.

Keeping listings fresh

Your HR team edits the Sheet the same way they always have. Add a row to post a new role. Delete a row (or set a status column to closed) to take it down. There is no CMS to log into, no deploy to trigger. The next time a visitor loads the page, they see the current state of the Sheet.

Why this works

Sheets is where non-technical teams already live. By keeping the job board data there and serving it through SheetsAPI, you eliminate the gap between "HR updates a spreadsheet" and "website shows the latest roles." The Sheet is the source of truth — and the API is just a thin read layer on top of it.

Connect your Sheet and have your job board live in minutes.