GCP.Jobs reference
Tenant
Section titled “Tenant”Source:
src/GCP/Jobs/Tenant.ts
A Cloud Talent Solution tenant. Tenants isolate jobs and companies for different customer groups.
Tenants have no labels field, so Alchemy stamps ownership into
externalId for list / nuke. The server-assigned tenant id is
identity — changing tenantId replaces the tenant. externalId
updates in place.
Tenant: Creating a Tenant
Section titled “Tenant: Creating a Tenant”Generated identifier
const tenant = yield* GCP.Jobs.Tenant("Acme", {});Explicit external id
const tenant = yield* GCP.Jobs.Tenant("Acme", { externalId: "acme-corp",});Tenant: Updating a Tenant
Section titled “Tenant: Updating a Tenant”Re-declare the same logical id with changed props; the engine keeps the physical resource and updates it in place.
const tenant = yield* GCP.Jobs.Tenant("Acme", { externalId: "acme-holdings",});TenantsCompany
Section titled “TenantsCompany”Source:
src/GCP/Jobs/TenantsCompany.ts
A Cloud Talent Solution company — the hiring entity that owns job postings.
Companies have no labels field, so Alchemy stamps ownership into the
client-side externalId for list / nuke (never into the
seeker-visible display name). Parent tenant and
company id are identity — changing either replaces the company.
Display name, URIs, size, and related fields update in place.
TenantsCompany: Creating a Company
Section titled “TenantsCompany: Creating a Company”const tenant = yield* GCP.Jobs.Tenant("Acme", {});const company = yield* GCP.Jobs.TenantsCompany("Labs", { parent: tenant.name, displayName: "Acme Labs", websiteUri: "https://www.example.com",});TenantsCompany: Updating a Company
Section titled “TenantsCompany: Updating a Company”Re-declare the same logical id with changed props; the engine keeps the physical resource and updates it in place.
const company = yield* GCP.Jobs.TenantsCompany("Labs", { parent: tenant.name, displayName: "Acme Research", headquartersAddress: "Mountain View, CA",});TenantsJob
Section titled “TenantsJob”Source:
src/GCP/Jobs/TenantsJob.ts
A Cloud Talent Solution job posting.
Jobs have no labels field, so Alchemy stamps ownership into the
client-side requisitionId for list / nuke (never into the
seeker-visible title or description). Parent tenant,
company, and job id are identity — changing any of them replaces the
job. Title, description, addresses, and related fields update in
place. A company cannot be deleted while it still has jobs.
TenantsJob: Creating a Job
Section titled “TenantsJob: Creating a Job”const job = yield* GCP.Jobs.TenantsJob("Engineer", { parent: tenant.name, company: company.name, title: "Software Engineer", description: "Build Cloud Talent integrations.", addresses: ["Mountain View, CA"], applicationInfo: { uris: ["https://www.example.com/apply"] },});TenantsJob: Updating a Job
Section titled “TenantsJob: Updating a Job”Re-declare the same logical id with changed props; the engine keeps the physical resource and updates it in place.
const job = yield* GCP.Jobs.TenantsJob("Engineer", { parent: tenant.name, company: company.name, title: "Staff Software Engineer", description: "Build Cloud Talent integrations.", promotionValue: 1,});