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:
| title | department | location | type | description |
|---|---|---|---|---|
| Senior Engineer | Engineering | Remote | Full-time | We're looking for... |
| Product Designer | Design | New York | Contract | Join 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 columnsTo 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.