Documentation

XML Feed

Structure and field reference for the Jobstream creator XML feed.

XML Feed

The Jobstream XML Feed delivers a real-time list of active job opportunities curated by a specific creator. Partners use it to ingest jobs into their own platforms, job boards, or distribution systems.

Endpoint

GET /partner/feed/:creator_handle/xml

Replace :creator_handle with the handle of the Jobstream creator whose feed you want to consume.

Base URL: https://production-api.jobstream.co

Authentication

All partner feed requests require the x-api-key header with your partner API key. See Get Started for instructions on obtaining your key.

Query parameters

ParameterRequiredDescription
sub_idOptionalPartner sub-attribution ID. When provided, validates the attribution context for the request. Format: <creator_handle>-<suffix>.

Example request

curl -sS -X GET \
  "https://production-api.jobstream.co/partner/feed/jiloma/xml?sub_id=jiloma-rthgip" \
  -H "x-api-key: <your_api_key>"

Response

  • Status: 200 OK
  • Content-Type: application/xml; charset=utf-8
  • Body: An XML document containing all active jobs for the creator (see structure below).

Feed structure

The feed returns a well-formed XML document encoded in UTF-8. The root element is <source> and contains feed-level metadata followed by one <job> element per active listing.

<?xml version="1.0" encoding="UTF-8"?>
<source>
  <publisher><![CDATA[Jobstream]]></publisher>
  <publisherurl><![CDATA[https://production-api.jobstream.co]]></publisherurl>
  <lastBuildDate><![CDATA[Wed, 27 May 2026 20:00:00 GMT]]></lastBuildDate>

  <job>
    <title><![CDATA[Senior Product Designer]]></title>
    <date><![CDATA[Mon, 20 May 2026 00:00:00 GMT]]></date>
    <referencenumber><![CDATA[job_abc123]]></referencenumber>
    <url><![CDATA[https://js.to/xK9pQr]]></url>
    <company><![CDATA[Acme Corp]]></company>
    <city><![CDATA[Austin]]></city>
    <state><![CDATA[TX]]></state>
    <description><![CDATA[Full job description text...]]></description>
    <type><![CDATA[Full-time]]></type>
    <summary><![CDATA[Short AI-generated summary of the role.]]></summary>
    <work_location_type><![CDATA[Remote]]></work_location_type>
    <job_seniority><![CDATA[Senior]]></job_seniority>
    <onet_code><![CDATA[27-1021.00]]></onet_code>
    <onet_title><![CDATA[Commercial and Industrial Designers]]></onet_title>
    <industry><![CDATA[design]]></industry>
    <industry_label><![CDATA[Design]]></industry_label>
    <sub_industry><![CDATA[ux-product-design]]></sub_industry>
    <sub_industry_label><![CDATA[UX & Product Design]]></sub_industry_label>
    <estimated_salary_min><![CDATA[95000]]></estimated_salary_min>
    <estimated_salary_max><![CDATA[130000]]></estimated_salary_max>
  </job>

  <!-- additional <job> elements ... -->
</source>

All text content is wrapped in CDATA sections, so you do not need to handle XML entity escaping when reading field values.


Feed-level fields

These fields appear once per feed response, at the top of the <source> element.

FieldDescription
publisherAlways Jobstream. Identifies the feed source.
publisherurlThe base URL of the Jobstream API used to generate the feed.
lastBuildDateUTC timestamp of when this feed was generated. Formatted as an RFC 2822 date string.

Job-level fields

Each <job> element contains the following fields. All fields are always present in the response; fields with no data for a given job will be empty strings.

Identification

FieldDescription
referencenumberUnique identifier for the job within Jobstream. Use this as a stable key when deduplicating or cross-referencing jobs in your system.
urlThe URL to send candidates to when they click on a job. This is a Jobstream short link when one is available; otherwise it is the original job posting URL. Always use this field as the apply/redirect destination.

Core job details

FieldDescription
titleJob title as published by the employer.
datePublication date of the job listing, formatted as an RFC 2822 UTC date string.
companyName of the hiring company.
cityCity where the job is located.
stateState or region where the job is located.
typeEmployment type (e.g., Full-time, Part-time, Contract).
descriptionFull job description text. May contain HTML or plain text depending on the source listing.

Enriched fields

These fields are generated by Jobstream's enrichment pipeline and provide standardized, structured metadata beyond what the original posting contains.

FieldDescription
summaryA concise, AI-generated summary of the role. Useful for displaying a short preview without parsing the full description.
work_location_typeStandardized work location classification. Common values: Remote, Hybrid, On-site.
job_senioritySeniority level of the role. Common values: Entry, Mid, Senior, Lead, Manager, Executive.
estimated_salary_minLower bound of the estimated annual salary range, in USD. Integer value. May be empty if no salary data is available.
estimated_salary_maxUpper bound of the estimated annual salary range, in USD. Integer value. May be empty if no salary data is available.

Occupational classification

Jobstream maps each job to the O*NET occupational taxonomy, a U.S. Department of Labor standard for classifying jobs.

FieldDescription
onet_codeO*NET-SOC code for the job's occupation (e.g., 15-1252.00).
onet_titleHuman-readable occupation title corresponding to the O*NET code.

Industry taxonomy

Jobs are also classified within Jobstream's internal industry taxonomy.

FieldDescription
industryMachine-readable key for the top-level industry category (e.g., engineering, design, marketing).
industry_labelHuman-readable label for the industry category (e.g., Engineering, Design, Marketing).
sub_industryMachine-readable key for the industry subcategory (e.g., frontend-engineering, ux-product-design).
sub_industry_labelHuman-readable label for the subcategory (e.g., Frontend Engineering, UX & Product Design).

Parsing the feed

When consuming the feed:

  • Deduplicate by referencenumber — this is the stable job identifier. The same job will always carry the same reference number across feed refreshes.
  • Always use url as the apply link — do not construct your own URLs from other fields. The url field is the canonical destination and may be a Jobstream short link that enables proper click attribution.
  • Refresh the feed periodically — the feed reflects active jobs at the time of the request. We recommend polling on a regular schedule (e.g., every few hours) to keep your listing inventory in sync.
  • Handle empty fields gracefully — enriched fields like estimated_salary_min, work_location_type, and taxonomy fields may be empty for some jobs. Your parser should treat empty CDATA sections as null/absent values.

Error responses

StatusMeaning
401 UnauthorizedMissing or invalid x-api-key header.
404 Not FoundThe provided :creator_handle does not match any creator in Jobstream.

See also