openvibers/openvibe.work CHANGELOG.md
CHANGELOG.md
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 unlessWORK_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.orgJobPostingwhoseurlis the original. - Saved searches for a signed-in person: save the search you are looking at, and
/savedshows 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), andPOST/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/docsfor the API. A sitemap carrying the newest listings, and
llms.txtpointing 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 ingestreads every board once and exits. - Also:
test/skeleton.test.jsnow 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/v1mount with per-caller limits, crawl artifacts, PostgreSQL migrations, the deploy files and the test suite.