canonical: https://jentic.com/apis/googleapis.com/jobs

# Google Cloud Talent Solution API

Cloud Talent Solution is Google's hiring API for creating, indexing, and searching job postings with the same machine-learning relevance Google applies to its own job search experience. It exposes operations for tenants, companies, jobs, and client events under the projects.tenants resource hierarchy, including batch create, update, and delete for high-volume careers sites. The API is designed for ATS providers and large employers that need ranked search across their own job inventory.

## For AI agents

Create, search, and manage job postings with Google's job search ranking. Supports tenants, companies, jobs, batch operations, and client event tracking.

## Scope

Does not handle candidate pipelines, interview scheduling, or offer letters - use only to index, search, and manage job posting data.

## Capabilities

- Create individual or batch job postings under a tenant and company
- Run ranked job search with location filters, commute time, and seniority signals
- Update or delete job postings in bulk with batchUpdate and batchDelete
- Register companies that own job listings within a tenant namespace
- Log client events such as impressions and applications for relevance feedback
- Retrieve a single job posting by resource name with full attribute payload

## Use cases

### Power a careers site search

Employers and ATS vendors index their job inventory through Cloud Talent Solution and call jobs:search to render the careers site results page. Google's ranking model factors in title, description, location, commute time, and engagement signals, so candidates see relevant roles without the employer building a search stack.

Example prompt: Call POST /v4/{+parent}/jobs:search with query 'site reliability engineer' and locationFilters lat/lng for Dublin, then return the top 10 ranked job names.

### Bulk job ingestion from an ATS

Large employers sync thousands of postings from an applicant tracking system into Cloud Talent Solution every day. Using POST /v4/{+parent}/jobs:batchCreate and batchUpdate keeps the search index fresh without paying per-call overhead, while batchDelete retires roles that are filled or expired.

Example prompt: Submit POST /v4/{+parent}/jobs:batchCreate with 50 job objects under a tenant and confirm the long-running operation completes successfully.

### Track candidate engagement with client events

POST /v4/{+parent}/clientEvents records impressions, views, and application starts for individual job postings. Feeding events back to Cloud Talent Solution improves the relevance model over time and gives recruiting teams reliable funnel metrics.

Example prompt: When a candidate views a job, POST a clientEvents record with type IMPRESSION and the job resource name.

### Agent-assisted recruiting through Jentic

A recruiting agent can use Jentic to search for relevant jobs, retrieve details, and log application events - all using natural language. Jentic surfaces the jobs:search and jobs.get operations so the agent can answer candidate questions without learning the projects.tenants resource path.

Example prompt: Search for nursing jobs in Boston with commute under 45 minutes via google_jobs_search and return company names and titles.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /v4/{+parent}/jobs | Create a single job posting |
| POST | /v4/{+parent}/jobs:batchCreate | Create up to 200 job postings in one call |
| POST | /v4/{+parent}/jobs:search | Run a ranked search across job postings |
| GET | /v4/{+parent}/jobs | List job postings under a tenant |
| PATCH | /v4/{+name} | Update fields on an existing job posting |
| DELETE | /v4/{+name} | Delete a job posting |
| POST | /v4/{+parent}/companies | Register a company within a tenant |
| POST | /v4/{+parent}/clientEvents | Log a client engagement event |

## Key resources

- **tenants** — Top-level isolation namespace for an employer or ATS customer
- **companies** — Companies that own job postings within a tenant
- **jobs** — Individual job postings with create, get, list, patch, delete, and batch operations
- **clientEvents** — Engagement signals such as impressions and application starts that train the ranking model

## Why Jentic

- **Setup:** Wiring the Cloud Talent Solution API by hand means configuring service-account OAuth2, narrowing to the jobs scope, refreshing tokens, and learning its nested tenant and job resource paths yourself. Through Jentic you install once, import the Cloud Talent Solution API from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** The tenant parent and job name travel in the URL path (/v4/{parent}/jobs, /v4/{name}), so a rule can pin your agent to one project or tenant's postings: it indexes and searches jobs under that parent and nothing else. You choose the operations it may call, so destructive ones like job deletion are not included unless you add them.
- **Credential handling:** Your Cloud Talent Solution service-account credential is stored once, encrypted, by your own Jentic One instance and injected at execution time as a short-lived access token scoped to jobs. The private key never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'search jobs near a location' or 'create a job posting', and Jentic returns the matching jobs operation with its input schema so the agent calls the right endpoint without browsing Google's nested resource paths.

## Related APIs

- **Web Search Indexing API** — Indexing API pushes URL change notifications to Google Search; Cloud Talent Solution provides search inside your careers site
- **Google Search Console API** — Search Console reports on how job pages perform in Google Search
- **Greenhouse Harvest API** — Greenhouse manages full ATS workflows; Cloud Talent Solution focuses on search ranking

## FAQ

### What authentication does the Cloud Talent Solution API use?

OAuth 2.0 with the https://www.googleapis.com/auth/jobs scope, typically issued to a Google Cloud service account in the project that owns the tenant. Through Jentic the service account JSON is encrypted in the vault and only a short-lived access token is exposed to the agent.

### Can I search jobs by commute time with this API?

Yes. The jobs:search endpoint accepts a commuteFilter with startCoordinates, travelDuration, and roadTraffic so an agent can return only jobs reachable within, for example, 45 minutes during morning traffic.

### What are the rate limits for the Cloud Talent Solution API?

The default per-project quota is 600 read requests and 100 write requests per minute, with batch operations counting as a single request. Higher quotas can be granted on request through the Google Cloud console for high-volume careers sites.

### How do I run a ranked job search through Jentic?

Run jentic search 'search jobs near a location' to surface POST /v4/{+parent}/jobs:search, then jentic execute with body containing requestMetadata, jobQuery.query, and jobQuery.locationFilters. Jentic returns the ranked matchingJobs list.

### Does the API support batch updates?

Yes. POST /v4/{+parent}/jobs:batchCreate, jobs:batchUpdate, and jobs:batchDelete each accept up to 200 job objects per call and return a long-running operation that an agent can poll for completion.

### Is Cloud Talent Solution the same as Google for Jobs?

No. Google for Jobs is the consumer search experience that surfaces JobPosting structured data from any indexed site. Cloud Talent Solution is a paid API for indexing and searching your own job inventory with Google's ranking model.

### Can I limit what my agent is allowed to do with the Cloud Talent Solution API?

Yes. Because you self-host Jentic One, your own rules decide which Cloud Talent Solution operations and credentials the agent may use. Since the tenant parent and job name travel in the URL path (/v4/{parent}/jobs and /v4/{name}), a rule can pin the agent to a single project or tenant so it only indexes and searches postings under that parent. You also choose the operations it may call, so you can allow jobs:search and jobs.get while withholding destructive ones such as job deletion or batchDelete.
