openvibers/openvibe.work CHANGELOG.md

CHANGELOG.md

main 2.7 KB · 35 lines · markdown

Changelog

What changed in OpenVibe.Work, newest first. Each site also publishes its patch notes at /updates.

0.2.0 — 2026-10-08

Job listings, searchable, with their provenance — and saved searches.

  • Listings, gathered from open boards. A background ingest reads Arbeitnow, Remotive and RemoteOK through their
    public APIs (server/jobs/sources.js, server/ingest/). Each board's terms are applied as written: the source is named
    and the original listing is linked on every page that shows it, and only a short plain-text excerpt is stored — never
    the full description. Every listing keeps the board's own id and URL, and a listing without both a title, a company,
    an id and an http(s) link back is refused rather than published. The ingest is off unless WORK_INGEST=on, calls a
    source at most every six hours (exactly the four a day Remotive's terms allow), upserts on (source, source_id), and
    expires a listing no board has shown for 30 days.
  • Search at /jobs (q, remote, type, location), newest first, 30 a page with a cursor, with facets for
    remote and job type. One listing at /jobs/:id, with a schema.org JobPosting whose url is the original.
  • Saved searches for a signed-in person: save the search you are looking at, and /saved shows each one with the
    count of listings that appeared since you last looked (opening the page is what clears it).
  • The API at /api/v1: GET /jobs, GET /jobs/:id, GET /sources (each board's terms as applied and its last
    fetch), and POST/GET/DELETE /saved-searches. Reading is public; a saved search is a person's.
  • Pages: a home page with the search box, the latest remote listings and each source with its count; /sources,
    which states each board's terms as applied; and /docs for the API. A sitemap carrying the newest listings, and
    llms.txt pointing a crawler at the listings and the sources.
  • Limits: the search and the saved-search writes have per-caller budgets of their own
    (work.jobs.search, work.saved_searches.write).
  • New tables: work_listings, work_saved_searches, work_source_fetches (migrations/0002_listings.sql).
  • New tools: npm run ingest reads every board once and exits.
  • Also: test/skeleton.test.js now skips itself in a generated service (this repository, whose skeleton placeholders
    were already rewritten), saying so, rather than asserting against a rewrite that can no longer happen.

0.1.0 — 2026-10-08

  • First release: the service starts from the OpenVibe skeleton — sign-in with OpenVibe.Network (OAuth 2 + PKCE), server-rendered pages through the OpenVibe Frame, the /api/v1 mount with per-caller limits, crawl artifacts, PostgreSQL migrations, the deploy files and the test suite.