Skip to content

Schemas

A Schema defines the structure of data in an aggregator. Schemas are versioned, meaning any change creates a new version.

A schema specifies:

  • Fields - The data points to extract (title, company, location, etc.)
  • Field types - Whether each field is a string or array of strings
  • Identity fields - Which fields determine uniqueness (for deduplication)

Fetchosaurus provides five built-in schemas for common use cases:

FieldTypeIdentity
titlestringYes (1)
companystringYes (2)
locationstringNo
urlstringNo
salarystringNo
posted_atstringNo
tagsstring[]No
FieldTypeIdentity
titlestringYes (1)
venuestringYes (2)
datestringYes (3)
timestringNo
urlstringNo
descriptionstringNo
pricestringNo
tagsstring[]No
FieldTypeIdentity
titlestringYes (1)
urlstringYes (2)
pricestringNo
locationstringNo
imagesstring[]No
descriptionstringNo
FieldTypeIdentity
titlestringYes (1)
sourcestringYes (2)
urlstringNo
published_atstringNo
summarystringNo
authorstringNo
tagsstring[]No
FieldTypeIdentity
titlestringYes (1)
sourcestringYes (2)
urlstringNo
ingredientsstring[]No
stepsstring[]No
prep_timestringNo
cook_timestringNo
servingsstringNo
image_urlstringNo

Any change to a schema creates a new version:

  • Adding a field
  • Removing a field
  • Renaming a field
  • Changing a field’s type
  • Changing identity fields

When you modify a schema:

  1. A new version is created (v1 → v2)
  2. Existing sources continue using their pinned version
  3. New sources use the latest version by default
  4. You can update individual sources to use the new version

Identity fields determine uniqueness for deduplication. The order matters.

Example: For a Job schema with identity fields [company, title]:

  • { company: "Stripe", title: "Engineer" } and { company: "Stripe", title: "Engineer" } are duplicates
  • { company: "Stripe", title: "Engineer" } and { company: "Vercel", title: "Engineer" } are different
  • Aggregators - Schemas belong to aggregators
  • Items - Items conform to a schema version