WorkApplicationWriteRequest work.application-write-request@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-write-request.v1.json
work.application-write-request@1: bodies of work.application.manage. POST /api/v1/me/applications takes a listing_id (title, company and URL are copied from the listing; a second POST for the same listing answers the existing application with 200) or title + company + url by hand. PATCH /api/v1/me/applications/:id takes status, notes, applied_at, next_step and next_step_at; a status change appends an event, and status applied with no applied_at stamps it now. Unknown fields are 400.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
listing_id | string |
| ||
title | string |
| ||
company | string |
| ||
url | string |
| ||
status | enum |
| ||
notes | string |
| ||
applied_at | string | null |
| ||
next_step | string |
| ||
next_step_at | string | null |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: from-listing
{
"listing_id": "job_arbeitnow_backend-engineer-1"
}Valid: patch
{
"status": "interviewing",
"next_step": "Second interview",
"next_step_at": "2026-10-16T17:00:00.000Z"
}Rejected: unknown-field
{
"salary": 100000
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('work.application-write-request@1', value); // { valid, errors: [{ path, message }] }