Skip to content

app.opportunities

TableRow level security on

Opportunities published to external parties (Section 4.4.3): staffing calls, RFQs and RFPs, talent bookings, contractor scopes and sponsorship packages. The number of positions is the count of its positions. No posted compensation shows Rate on Request, never zero.

Primary key: id

Columns of app.opportunities
ColumnTypeNullableDescription
iduuidNoPrimary key, UUID v7.
org_iduuidNoOwning org, derived from app.projects on insert; never accepted from the caller and never changed.References app.organizations.id
project_iduuidNoProject the work is for.References app.projects.id
scope_node_iduuidYesScope node of the project the work is for.References app.scope_nodes.id
role_typeapp.external_role_typeNoExternal role type sought.
role_codetextYesCanon role code sought, when the opportunity is for a role.References xpms.role.role_code
cat_uridtextYesCanon URID category sought, when the opportunity is for goods or services.References xpms.dim_category.cat_urid
titletextNoTitle, Title Case.
descriptiontextYesDescription of the work.
venue_iduuidYesVenue of the work.References app.venues.id
jurisdiction_idtextYesJurisdiction of the work when it differs from the venue's and the project's; pay transparency reads the first known of the three.References xpms.jurisdiction.jurisdiction_id
starts_ondateYesFirst day of the work.
ends_ondateYesLast day of the work.
visibilityapp.opportunity_visibilityNoInvited, Pool, Network or Public.
rate_typeapp.rate_typeYesHourly, Day, Flat, Milestone or Bid; NULL is Rate on Request.
pay_min_minorbigintYesLower end of the posted pay range in minor units; NULL when not posted.
pay_max_minorbigintYesUpper end of the posted pay range in minor units; NULL when not posted.
currency_codecharacter(3)YesISO 4217 currency of the posted pay.References private.currencies.currency_code
deadline_attimestamp with time zoneYesDeadline for applications and bids. Bids stay sealed until it passes.
minimum_agesmallintYesMinimum age for the work, 16 or older (Section 14.9).
opportunity_stateapp.opportunity_stateNoOpportunity state. Changes only through app.transition_opportunity.
deleted_attimestamp with time zoneYesSoft delete time. A row with deleted_at set is ignored by every access helper.
created_attimestamp with time zoneNoWhen the row was inserted. Set by the database.
created_byuuidYesPerson who inserted the row, or null for a platform process. Set by the database.References app.people.id
updated_attimestamp with time zoneNoWhen the row last changed. Set by the database.
updated_byuuidYesPerson who last changed the row, or null for a platform process. Set by the database.References app.people.id
requisition_iduuidYesApproved requisition the opportunity is published from (Section 4.4.3, spend authority before publishing). Required to publish Contractor, Crew and Staff opportunities; fixed once published.References app.requisitions.id
is_remotebooleanNoTrue when the work can be done remotely; remote postings follow the pay transparency rules that cover remote roles.