WorkApplication work.application@1

Generated at from openvibe-contracts v0.150.0 and openvibe-sdk v0.44.0.

Version
1.0.0
Owner
work
Visibility
public
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/work/application.v1.json

work.application@1: a person's tracked job application on OpenVibe.Work (server/applications.js toWire), as GET/POST/PATCH /api/v1/me/applications[/:id] answer it. GET of one application adds its append-only status changes as `events`.

Fields

FieldTypeRequiredDescriptionConstraints
idstringyes
  • pattern ^wap_[0-9A-HJKMNP-TV-Z]{26}$
subject_idstringyes
  • pattern ^user:usr_[0-9A-HJKMNP-TV-Z]{26}$
listing_idstring | nullyesThe Work listing it was tracked from, or null when added by hand.
  • maxLength 200
titlestringyes
  • minLength 1
  • maxLength 500
companystringyes
  • minLength 1
  • maxLength 200
urlstringyes
  • format uri
  • maxLength 2000
statusenumyes
  • one of "saved", "applied", "interviewing", "offer", "rejected", "withdrawn"
notesstringyes
  • maxLength 5000
applied_atstring | nullyes
  • format date-time
next_stepstringyes
  • maxLength 200
next_step_atstring | nullyes
  • format date-time
actor_task_idstring | nullyesThe latest OpenVibe.Actor task asked for this application (POST …/assist).
  • maxLength 200
assistsintegeryes
  • minimum 0
created_atstringyes
  • format date-time
updated_atstringyes
  • format date-time
eventsarray of object
  • items: no other fields
events[].atstringyes
  • format date-time
events[].from_statusenumyes
  • one of "saved", "applied", "interviewing", "offer", "rejected", "withdrawn"
events[].to_statusenumyes
  • one of "saved", "applied", "interviewing", "offer", "rejected", "withdrawn"

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: applied
{
  "id": "wap_01JQ8Z0000000000000000000A",
  "subject_id": "user:usr_01JQ8Z0000000000000000000B",
  "listing_id": null,
  "title": "Backend Engineer",
  "company": "Northwind",
  "url": "https://northwind.example/jobs/1",
  "status": "applied",
  "notes": "",
  "applied_at": "2026-10-12T05:00:00.000Z",
  "next_step": "",
  "next_step_at": null,
  "actor_task_id": null,
  "assists": 0,
  "created_at": "2026-10-12T05:00:00.000Z",
  "updated_at": "2026-10-12T05:00:00.000Z"
}
Rejected: bad-status
{
  "id": "wap_01JQ8Z0000000000000000000A",
  "subject_id": "user:usr_01JQ8Z0000000000000000000B",
  "listing_id": null,
  "title": "Backend Engineer",
  "company": "Northwind",
  "url": "https://northwind.example/jobs/1",
  "status": "ghosted",
  "notes": "",
  "applied_at": "2026-10-12T05:00:00.000Z",
  "next_step": "",
  "next_step_at": null,
  "actor_task_id": null,
  "assists": 0,
  "created_at": "2026-10-12T05:00:00.000Z",
  "updated_at": "2026-10-12T05:00:00.000Z"
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('work.application@1', value);   // { valid, errors: [{ path, message }] }