Skip to main content
Auto Apply is coming soon as a generally available product — today an invite-only beta on public API version 2026-08-31. Accounts without access get 403 with problem code auto_apply_not_enabled from create.

Field shape

Every field always contains only the five base properties shown above: field_id, type, label, required, and requires_answer. The response adds options, non-empty constraints, format, and sensitive: true only when they apply. Empty metadata and sensitive: false are omitted. Existing ATS values and inferred classifications are internal implementation details and are not part of the public contract. Supported scalar types are text, textarea, select, multi_select, radio, checkbox, number, date, partial_date, typeahead, file, and unknown.
  • date: YYYY-MM-DD.
  • partial_date: YYYY, YYYY-MM, or YYYY-MM-DD, subject to minimum_precision.
  • select and radio: exact option value.
  • multi_select: array of exact option values.
  • typeahead: submit the actual answer as a string, for example "MIT". Jobo uses the ATS autocomplete API and AI-assisted matching to select the closest native option. The existing {"query":"MIT","selection":{"value":"...","label":"..."}} object remains accepted when you already have a provider-native selection.
  • file: {"url":"https://...","filename":"resume.pdf","content_type":"application/pdf"}.
  • Required unknown fields fail safely as unsupported_field.

Education and work history

Repeated ATS sections are one repeating_group field rather than flattened children:
The answer value is an ordered array. Typeahead children also take the actual answer directly:
Work-history groups use the same ordered-array shape:
item_fields is dynamic because ATSs may request additional children such as country, state, contact permission, graduation status, or hours per week. Unknown item keys are rejected. The array is the complete desired group state, preserves order, and is capped by both the provider limit and a platform maximum of 100 entries. Supported group_type values are education, work_experience, certification, website, language, skill, and other. When is_current is true, end_date must be null or omitted. Nested validation errors contain field_id, item_index, field_key, code, and message. Address, phone, and voluntary self-identification remain scalar fields. Voluntary self-identification fields carry sensitive: true; Jobo never infers their answers. Integrations should use the displayed label, provider field ID, type, options, and constraints instead of inferred semantic metadata.

Failure and correction codes

Terminal applications expose failure: {code, message, retryable}. Stable failure codes include: retryable is authoritative for the individual failure. In particular, submission_unconfirmed is not safely retryable because the employer may have received the application. Before the correction limit is exhausted, file and ATS value problems are returned in command_errors with codes such as unsafe_file_url, file_upload_failed, invalid_file_type, ats_field_rejected, and ats_fill_failed. The next answers submission must be a complete corrected snapshot for the step.