REST Resource: projects.jobs

Resource: Job

A Job resource represents a job posting (also referred to as a "job listing" or "job requisition"). A job belongs to a Company, which is the hiring entity responsible for the job.

JSON representation
{
  "name": string,
  "company": string,
  "requisitionId": string,
  "title": string,
  "description": string,
  "addresses": [
    string
  ],
  "applicationInfo": {
    object (ApplicationInfo)
  },
  "jobBenefits": [
    enum (JobBenefit)
  ],
  "compensationInfo": {
    object (CompensationInfo)
  },
  "customAttributes": {
    string: {
      object(CustomAttribute)
    },
    ...
  },
  "degreeTypes": [
    enum (DegreeType)
  ],
  "department": string,
  "employmentTypes": [
    enum (EmploymentType)
  ],
  "incentives": string,
  "languageCode": string,
  "jobLevel": enum (JobLevel),
  "promotionValue": number,
  "qualifications": string,
  "responsibilities": string,
  "postingRegion": enum (PostingRegion),
  "visibility": enum (Visibility),
  "jobStartTime": string,
  "jobEndTime": string,
  "postingPublishTime": string,
  "postingExpireTime": string,
  "postingCreateTime": string,
  "postingUpdateTime": string,
  "companyDisplayName": string,
  "derivedInfo": {
    object (DerivedInfo)
  },
  "processingOptions": {
    object (ProcessingOptions)
  }
}
Fields
name

string

Required during job update.

The resource name for the job. This is generated by the service when a job is created.

The format is "projects/{project_id}/tenants/{tenantId}/jobs/{job_id}". For example, "projects/foo/tenants/bar/jobs/baz".

If tenant id is unspecified, the default tenant is used. For example, "projects/foo/jobs/bar".

Use of this field in job queries and API calls is preferred over the use of requisitionId since this value is unique.

company

string

Required. The resource name of the company listing the job.

The format is "projects/{project_id}/tenants/{tenantId}/companies/{company_id}". For example, "projects/foo/tenants/bar/companies/baz".

If tenant id is unspecified, the default tenant is used. For example, "projects/foo/companies/bar".

requisitionId

string

Required. The requisition ID, also referred to as the posting ID, is assigned by the client to identify a job. This field is intended to be used by clients for client identification and tracking of postings. A job isn't allowed to be created if there is another job with the same company, languageCode and requisitionId.

The maximum number of allowed characters is 255.

title

string

Required. The title of the job, such as "Software Engineer"

The maximum number of allowed characters is 500.

description

string

Required. The description of the job, which typically includes a multi-paragraph description of the company and related information. Separate fields are provided on the job object for responsibilities, qualifications, and other job characteristics. Use of these separate job fields is recommended.

This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags.

The maximum number of allowed characters is 100,000.

addresses[]

string

Strongly recommended for the best service experience.

Location(s) where the employer is looking to hire for this job posting.

Specifying the full street address(es) of the hiring location enables better API results, especially job searches by commute time.

At most 50 locations are allowed for best search performance. If a job has more locations, it is suggested to split it into multiple jobs with unique requisitionIds (e.g. 'ReqA' becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same company, languageCode and requisitionId are not allowed. If the original requisitionId must be preserved, a custom field should be used for storage. It is also suggested to group the locations that close to each other in the same job for better search experience.

The maximum number of allowed characters is 500.

applicationInfo

object (ApplicationInfo)

Job application information.

jobBenefits[]

enum (JobBenefit)

The benefits included with the job.

compensationInfo

object (CompensationInfo)

Job compensation information (a.k.a. "pay rate") i.e., the compensation that will paid to the employee.

customAttributes

map (key: string, value: object (CustomAttribute))

A map of fields to hold both filterable and non-filterable custom job attributes that are not covered by the provided structured fields.

The keys of the map are strings up to 64 bytes and must match the pattern: [a-zA-Z][a-zA-Z0-9_]*. For example, key0LikeThis or KEY_1_LIKE_THIS.

At most 100 filterable and at most 100 unfilterable keys are supported. For filterable stringValues, across all keys at most 200 values are allowed, with each string no more than 255 characters. For unfilterable stringValues, the maximum total size of stringValues across all keys is 50KB.

degreeTypes[]

enum (DegreeType)

The desired education degrees for the job, such as Bachelors, Masters.

department

string

The department or functional area within the company with the open position.

The maximum number of allowed characters is 255.

employmentTypes[]

enum (EmploymentType)

The employment type(s) of a job, for example, full time or part time.

incentives

string

A description of bonus, commission, and other compensation incentives associated with the job not including salary or pay.

The maximum number of allowed characters is 10,000.

languageCode

string

The language of the posting. This field is distinct from any requirements for fluency that are associated with the job.

Language codes must be in BCP-47 format, such as "en-US" or "sr-Latn". For more information, see Tags for Identifying Languages{: class="external" target="_blank" }.

If this field is unspecified and Job.description is present, detected language code based on Job.description is assigned, otherwise defaults to 'en_US'.

jobLevel

enum (JobLevel)

The experience level associated with the job, such as "Entry Level".

promotionValue

number

A promotion value of the job, as determined by the client. The value determines the sort order of the jobs returned when searching for jobs using the featured jobs search call, with higher promotional values being returned first and ties being resolved by relevance sort. Only the jobs with a promotionValue >0 are returned in a FEATURED_JOB_SEARCH.

Default value is 0, and negative values are treated as 0.

qualifications

string

A description of the qualifications required to perform the job. The use of this field is recommended as an alternative to using the more general description field.

This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags.

The maximum number of allowed characters is 10,000.

responsibilities

string

A description of job responsibilities. The use of this field is recommended as an alternative to using the more general description field.

This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags.

The maximum number of allowed characters is 10,000.

postingRegion

enum (PostingRegion)

The job PostingRegion (for example, state, country) throughout which the job is available. If this field is set, a LocationFilter in a search query within the job region finds this job posting if an exact location match isn't specified. If this field is set to PostingRegion.NATION or PostingRegion.ADMINISTRATIVE_AREA, setting job Job.addresses to the same location level as this field is strongly recommended.

visibility
(deprecated)

enum (Visibility)

Deprecated. The job is only visible to the owner.

The visibility of the job.

Defaults to Visibility.ACCOUNT_ONLY if not specified.

jobStartTime

string (Timestamp format)

The start timestamp of the job in UTC time zone. Typically this field is used for contracting engagements. Invalid timestamps are ignored.

jobEndTime

string (Timestamp format)

The end timestamp of the job. Typically this field is used for contracting engagements. Invalid timestamps are ignored.

postingPublishTime

string (Timestamp format)

The timestamp this job posting was most recently published. The default value is the time the request arrives at the server. Invalid timestamps are ignored.

postingExpireTime

string (Timestamp format)

Strongly recommended for the best service experience.

The expiration timestamp of the job. After this timestamp, the job is marked as expired, and it no longer appears in search results. The expired job can't be listed by the jobs.list API, but it can be retrieved with the jobs.get API or updated with the jobs.patch API or deleted with the jobs.delete API. An expired job can be updated and opened again by using a future expiration timestamp. Updating an expired job fails if there is another existing open job with same company, languageCode and requisitionId.

The expired jobs are retained in our system for 90 days. However, the overall expired job count cannot exceed 3 times the maximum number of open jobs over previous 7 days. If this threshold is exceeded, expired jobs are cleaned out in order of earliest expire time. Expired jobs are no longer accessible after they are cleaned out.

Invalid timestamps are ignored, and treated as expire time not provided.

If the timestamp is before the instant request is made, the job is treated as expired immediately on creation. This kind of job can not be updated. And when creating a job with past timestamp, the postingPublishTime must be set before postingExpireTime. The purpose of this feature is to allow other objects, such as Application, to refer a job that didn't exist in the system prior to becoming expired. If you want to modify a job that was expired on creation, delete it and create a new one.

If this value isn't provided at the time of job creation or is invalid, the job posting expires after 30 days from the job's creation time. For example, if the job was created on 2017/01/01 13:00AM UTC with an unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.

If this value isn't provided on job update, it depends on the field masks set by UpdateJobRequest.update_mask. If the field masks include jobEndTime, or the masks are empty meaning that every field is updated, the job posting expires after 30 days from the job's last update time. Otherwise the expiration date isn't updated.

postingCreateTime

string (Timestamp format)

Output only. The timestamp when this job posting was created.

postingUpdateTime

string (Timestamp format)

Output only. The timestamp when this job posting was last updated.

companyDisplayName

string

Output only. Display name of the company listing the job.

derivedInfo

object (DerivedInfo)

Output only. Derived details about the job posting.

processingOptions

object (ProcessingOptions)

Options for job processing.

ApplicationInfo

Application related details of a job posting.

JSON representation
{
  "emails": [
    string
  ],
  "instruction": string,
  "uris": [
    string
  ]
}
Fields
emails[]

string

Use this field to specify email address(es) to which resumes or applications can be sent.

The maximum number of allowed characters for each entry is 255.

instruction

string

Use this field to provide instructions, such as "Mail your application to ...", that a candidate can follow to apply for the job.

This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags.

The maximum number of allowed characters is 3,000.

uris[]

string

Use this URI field to direct an applicant to a website, for example to link to an online application form.

The maximum number of allowed characters for each entry is 2,000.

JobBenefit

An enum that represents employee benefits included with the job.

Enums
JOB_BENEFIT_UNSPECIFIED Default value if the type isn't specified.
CHILD_CARE The job includes access to programs that support child care, such as daycare.
DENTAL The job includes dental services covered by a dental insurance plan.
DOMESTIC_PARTNER The job offers specific benefits to domestic partners.
FLEXIBLE_HOURS The job allows for a flexible work schedule.
MEDICAL The job includes health services covered by a medical insurance plan.
LIFE_INSURANCE The job includes a life insurance plan provided by the employer or available for purchase by the employee.
PARENTAL_LEAVE The job allows for a leave of absence to a parent to care for a newborn child.
RETIREMENT_PLAN The job includes a workplace retirement plan provided by the employer or available for purchase by the employee.
SICK_DAYS The job allows for paid time off due to illness.
VACATION The job includes paid time off for vacation.
VISION The job includes vision services covered by a vision insurance plan.

CompensationInfo

Job compensation details.

JSON representation
{
  "entries": [
    {
      object (CompensationEntry)
    }
  ],
  "annualizedBaseCompensationRange": {
    object (CompensationRange)
  },
  "annualizedTotalCompensationRange": {
    object (CompensationRange)
  }
}
Fields
entries[]

object (CompensationEntry)

Job compensation information.

At most one entry can be of type CompensationInfo.CompensationType.BASE, which is referred as base compensation entry for the job.

annualizedBaseCompensationRange

object (CompensationRange)

Output only. Annualized base compensation range. Computed as base compensation entry's CompensationEntry.amount times CompensationEntry.expected_units_per_year.

See CompensationEntry for explanation on compensation annualization.

annualizedTotalCompensationRange

object (CompensationRange)

Output only. Annualized total compensation range. Computed as all compensation entries' CompensationEntry.amount times CompensationEntry.expected_units_per_year.

See CompensationEntry for explanation on compensation annualization.

CompensationEntry

A compensation entry that represents one component of compensation, such as base pay, bonus, or other compensation type.

Annualization: One compensation entry can be annualized if - it contains valid amount or range. - and its expectedUnitsPerYear is set or can be derived. Its annualized range is determined as (amount or range) times expectedUnitsPerYear.

JSON representation
{
  "type": enum (CompensationType),
  "unit": enum (CompensationUnit),
  "description": string,
  "expectedUnitsPerYear": number,

  // Union field compensation_amount can be only one of the following:
  "amount": {
    object (Money)
  },
  "range": {
    object (CompensationRange)
  }
  // End of list of possible types for union field compensation_amount.
}
Fields
type

enum (CompensationType)

Compensation type.

Default is CompensationType.COMPENSATION_TYPE_UNSPECIFIED.

unit

enum (CompensationUnit)

Frequency of the specified amount.

Default is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.

description

string

Compensation description. For example, could indicate equity terms or provide additional context to an estimated bonus.

expectedUnitsPerYear

number

Expected number of units paid each year. If not specified, when Job.employment_types is FULLTIME, a default value is inferred based on unit. Default values: - HOURLY: 2080 - DAILY: 260 - WEEKLY: 52 - MONTHLY: 12 - ANNUAL: 1

Union field compensation_amount. Compensation amount. It could be a fixed amount or a floating range. compensation_amount can be only one of the following:
amount

object (Money)

Compensation amount.

range

object (CompensationRange)

Compensation range.

CompensationType

The type of compensation.

For compensation amounts specified in non-monetary amounts, describe the compensation scheme in the CompensationEntry.description.

For example, tipping format is described in CompensationEntry.description (for example, "expect 15-20% tips based on customer bill.") and an estimate of the tips provided in CompensationEntry.amount or CompensationEntry.range ($10 per hour).

For example, equity is described in CompensationEntry.description (for example, "1% - 2% equity vesting over 4 years, 1 year cliff") and value estimated in CompensationEntry.amount or CompensationEntry.range. If no value estimate is possible, units are CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED and then further clarified in CompensationEntry.description field.

Enums
COMPENSATION_TYPE_UNSPECIFIED Default value.
BASE Base compensation: Refers to the fixed amount of money paid to an employee by an employer in return for work performed. Base compensation does not include benefits, bonuses or any other potential compensation from an employer.
BONUS Bonus.
SIGNING_BONUS Signing bonus.
EQUITY Equity.
PROFIT_SHARING Profit sharing.
COMMISSIONS Commission.
TIPS Tips.
OTHER_COMPENSATION_TYPE Other compensation type.

CompensationUnit

Pay frequency.

Enums
COMPENSATION_UNIT_UNSPECIFIED Default value.
HOURLY Hourly.
DAILY Daily.
WEEKLY Weekly
MONTHLY Monthly.
YEARLY Yearly.
ONE_TIME One time.
OTHER_COMPENSATION_UNIT Other compensation units.

Money

Represents an amount of money with its currency type.

JSON representation
{
  "currencyCode": string,
  "units": string,
  "nanos": number
}
Fields
currencyCode

string

The 3-letter currency code defined in ISO 4217.

units

string (int64 format)

The whole units of the amount. For example if currencyCode is "USD", then 1 unit is one US dollar.

nanos

number

Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If units is positive, nanos must be positive or zero. If units is zero, nanos can be positive, zero, or negative. If units is negative, nanos must be negative or zero. For example $-1.75 is represented as units=-1 and nanos=-750,000,000.

CompensationRange

Compensation range.

JSON representation
{
  "maxCompensation": {
    object (Money)
  },
  "minCompensation": {
    object (Money)
  }
}
Fields
maxCompensation

object (Money)

The maximum amount of compensation. If left empty, the value is set to a maximal compensation value and the currency code is set to match the currency code of minCompensation.

minCompensation

object (Money)

The minimum amount of compensation. If left empty, the value is set to zero and the currency code is set to match the currency code of maxCompensation.

EmploymentType

An enum that represents the employment type of a job.

Enums
EMPLOYMENT_TYPE_UNSPECIFIED The default value if the employment type isn't specified.
FULL_TIME The job requires working a number of hours that constitute full time employment, typically 40 or more hours per week.
PART_TIME The job entails working fewer hours than a full time job, typically less than 40 hours a week.
CONTRACTOR The job is offered as a contracted, as opposed to a salaried employee, position.
CONTRACT_TO_HIRE The job is offered as a contracted position with the understanding that it's converted into a full-time position at the end of the contract. Jobs of this type are also returned by a search for EmploymentType.CONTRACTOR jobs.
TEMPORARY The job is offered as a temporary employment opportunity, usually a short-term engagement.
INTERN The job is a fixed-term opportunity for students or entry-level job seekers to obtain on-the-job training, typically offered as a summer position.
VOLUNTEER The is an opportunity for an individual to volunteer, where there's no expectation of compensation for the provided services.
PER_DIEM The job requires an employee to work on an as-needed basis with a flexible schedule.
FLY_IN_FLY_OUT The job involves employing people in remote areas and flying them temporarily to the work site instead of relocating employees and their families permanently.
OTHER_EMPLOYMENT_TYPE The job does not fit any of the other listed types.

JobLevel

An enum that represents the required experience level required for the job.

Enums
JOB_LEVEL_UNSPECIFIED The default value if the level isn't specified.
ENTRY_LEVEL Entry-level individual contributors, typically with less than 2 years of experience in a similar role. Includes interns.
EXPERIENCED Experienced individual contributors, typically with 2+ years of experience in a similar role.
MANAGER Entry- to mid-level managers responsible for managing a team of people.
DIRECTOR Senior-level managers responsible for managing teams of managers.
EXECUTIVE Executive-level managers and above, including C-level positions.

PostingRegion

An enum that represents the job posting region. In most cases, job postings don't need to specify a region. If a region is given, jobs are eligible for searches in the specified region.

Enums
POSTING_REGION_UNSPECIFIED If the region is unspecified, the job is only returned if it matches the LocationFilter.
ADMINISTRATIVE_AREA

In addition to exact location matching, job posting is returned when the LocationFilter in the search query is in the same administrative area as the returned job posting. For example, if a ADMINISTRATIVE_AREA job is posted in "CA, USA", it's returned if LocationFilter has "Mountain View".

Administrative area refers to top-level administrative subdivision of this country. For example, US state, IT region, UK constituent nation and JP prefecture.

NATION In addition to exact location matching, job is returned when LocationFilter in search query is in the same country as this job. For example, if a NATION_WIDE job is posted in "USA", it's returned if LocationFilter has 'Mountain View'.
TELECOMMUTE Job allows employees to work remotely (telecommute). If locations are provided with this value, the job is considered as having a location, but telecommuting is allowed.

Visibility

Deprecated. All resources are only visible to the owner.

An enum that represents who has view access to the resource.

Enums
VISIBILITY_UNSPECIFIED Default value.
ACCOUNT_ONLY The resource is only visible to the GCP account who owns it.
SHARED_WITH_GOOGLE The resource is visible to the owner and may be visible to other applications and processes at Google.
SHARED_WITH_PUBLIC The resource is visible to the owner and may be visible to all other API clients.

DerivedInfo

Derived details about the job posting.

JSON representation
{
  "locations": [
    {
      object (Location)
    }
  ],
  "jobCategories": [
    enum (JobCategory)
  ]
}
Fields
locations[]

object (Location)

Structured locations of the job, resolved from Job.addresses.

locations are exactly matched to Job.addresses in the same order.

jobCategories[]

enum (JobCategory)

Job categories derived from Job.title and Job.description.

JobCategory

An enum that represents the categorization or primary focus of specific role. This value is different than the "industry" associated with a role, which is related to the categorization of the company listing the job.

Enums
JOB_CATEGORY_UNSPECIFIED The default value if the category isn't specified.
ACCOUNTING_AND_FINANCE An accounting and finance job, such as an Accountant.
ADMINISTRATIVE_AND_OFFICE An administrative and office job, such as an Administrative Assistant.
ADVERTISING_AND_MARKETING An advertising and marketing job, such as Marketing Manager.
ANIMAL_CARE An animal care job, such as Veterinarian.
ART_FASHION_AND_DESIGN An art, fashion, or design job, such as Designer.
BUSINESS_OPERATIONS A business operations job, such as Business Operations Manager.
CLEANING_AND_FACILITIES A cleaning and facilities job, such as Custodial Staff.
COMPUTER_AND_IT A computer and IT job, such as Systems Administrator.
CONSTRUCTION A construction job, such as General Laborer.
CUSTOMER_SERVICE A customer service job, such s Cashier.
EDUCATION An education job, such as School Teacher.
ENTERTAINMENT_AND_TRAVEL An entertainment and travel job, such as Flight Attendant.
FARMING_AND_OUTDOORS A farming or outdoor job, such as Park Ranger.
HEALTHCARE A healthcare job, such as Registered Nurse.
HUMAN_RESOURCES A human resources job, such as Human Resources Director.
INSTALLATION_MAINTENANCE_AND_REPAIR An installation, maintenance, or repair job, such as Electrician.
LEGAL A legal job, such as Law Clerk.
MANAGEMENT A management job, often used in conjunction with another category, such as Store Manager.
MANUFACTURING_AND_WAREHOUSE A manufacturing or warehouse job, such as Assembly Technician.
MEDIA_COMMUNICATIONS_AND_WRITING A media, communications, or writing job, such as Media Relations.
OIL_GAS_AND_MINING An oil, gas or mining job, such as Offshore Driller.
PERSONAL_CARE_AND_SERVICES A personal care and services job, such as Hair Stylist.
PROTECTIVE_SERVICES A protective services job, such as Security Guard.
REAL_ESTATE A real estate job, such as Buyer's Agent.
RESTAURANT_AND_HOSPITALITY A restaurant and hospitality job, such as Restaurant Server.
SALES_AND_RETAIL A sales and/or retail job, such Sales Associate.
SCIENCE_AND_ENGINEERING A science and engineering job, such as Lab Technician.
SOCIAL_SERVICES_AND_NON_PROFIT A social services or non-profit job, such as Case Worker.
SPORTS_FITNESS_AND_RECREATION A sports, fitness, or recreation job, such as Personal Trainer.
TRANSPORTATION_AND_LOGISTICS A transportation or logistics job, such as Truck Driver.

ProcessingOptions

Options for job processing.

JSON representation
{
  "disableStreetAddressResolution": boolean,
  "htmlSanitization": enum (HtmlSanitization)
}
Fields
disableStreetAddressResolution

boolean

If set to true, the service does not attempt to resolve a more precise address for the job.

htmlSanitization

enum (HtmlSanitization)

Option for job HTML content sanitization. Applied fields are:

  • description
  • applicationInfo.instruction
  • incentives
  • qualifications
  • responsibilities

HTML tags in these fields may be stripped if sanitiazation isn't disabled.

Defaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY.

HtmlSanitization

Option for HTML content sanitization on user input fields, for example, job description. By setting this option, user can determine whether and how sanitization is performed on these fields.

Enums
HTML_SANITIZATION_UNSPECIFIED Default value.
HTML_SANITIZATION_DISABLED Disables sanitization on HTML input.
SIMPLE_FORMATTING_ONLY Sanitizes HTML input, only accepts bold, italic, ordered list, and unordered list markup tags.

Methods

batchCreate

Begins executing a batch create jobs operation.

batchDelete

Deletes a list of Jobs by filter.

batchUpdate

Begins executing a batch update jobs operation.

create

Creates a new job.

delete

Deletes the specified job.

get

Retrieves the specified job, whose status is OPEN or recently EXPIRED within the last 90 days.

list

Lists jobs by filter.

patch

Updates specified job.

search

Searches for jobs using the provided SearchJobsRequest.

searchForAlert

Searches for jobs using the provided SearchJobsRequest.
Var denne siden nyttig? Si fra hva du synes:

Send tilbakemelding om ...

Job search documentation
Trenger du hjelp? Gå til brukerstøttesiden vår.