# Dataset Guide

## Current setup

The job board fetches listings from:

```text
data/jobs.json
```

That file is the easiest place to update listings manually. Each job object should include an `id`, title, company, facility type, location, region, work type, schedule, category, salary, posted date, tags, description, and apply URL.

## Editing by spreadsheet

You can maintain the included `data/jobs.csv` in Excel or Google Sheets, then convert it to JSON. Keep `tags` separated by a pipe character:

```text
CNA preferred|Benefits|Training provided
```

## Suggested future workflow

For an MVP:

1. Keep a Google Sheet or Airtable base as the admin interface.
2. Export or sync rows into `data/jobs.json`.
3. Deploy to Cloudflare Pages.

For a mature job board:

1. Store jobs in Supabase, Firebase, Cloudflare D1, or PostgreSQL.
2. Push searchable records into Algolia, Typesense, or Meilisearch.
3. Use employer accounts and a Stripe checkout for paid postings.
4. Add schema.org `JobPosting` detail pages for each job.

## Algolia-style upgrade path

The current front end does filtering in `app.js`. To make it behave more like a large job board, replace the local `fetch('data/jobs.json')` call with a search API call. Algolia is a good fit if you want typo-tolerant search, instant filters, facets, and relevance ranking.
