---
id: "google-cloud-talent-solution"
type: "component"
kind: "search-index"
provider: "gcp"
category: "data"
docs: "https://docs.cloud.google.com/talent-solution/quotas"
url: "https://localhost:3000/catalogue/components/google-cloud-talent-solution"
---

# Cloud Talent Solution

Managed job-search index over jobs and companies held in tenants.

| | |
|---|---|
| Provider | [gcp](https://localhost:3000/catalogue?provider=gcp) |
| Kind | [Search index](https://localhost:3000/catalogue/kinds/search-index) |
| Category | Data |
| Official docs | [https://docs.cloud.google.com/talent-solution/quotas](https://docs.cloud.google.com/talent-solution/quotas) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `commuteSearch` | boolean | — | no | false | inherited |
| `expiredJobRetentionDays` | integer | — | no | 90 | inherited |
| `geoScheme` (advanced) | enum | `none`, `s2`, `h3`, `geohash`, `quadtree` | no | "none" | **"none"** |
| `indexing` | enum | `sync`, `async`, `batch` | no | "async" | **"async"** |
| `indexingRequestsPerMinute` | integer | — | no | 300 | inherited |
| `managed` | boolean | — | no | false | **true** |
| `maxCompanies` | integer | — | no | 1000000 | inherited |
| `maxJobs` | integer | — | no | 3000000 | inherited |
| `rebuildCadenceHours` (advanced) | integer | — | no | — | inherited |
| `replicas` | integer | — | no | — | inherited |
| `searchRequestsPerMinute` | integer | — | no | 3000 | inherited |
| `shardingStrategy` (advanced) | enum | `none`, `hash`, `geo`, `time`, `prefix-range` | no | "none" | **"none"** |
| `structure` | enum | `inverted`, `trie`, `vector`, `geo-cell` | no | "inverted" | **"inverted"** |

Bold values are the ones this component pins.

## Rules that apply · 1

### Search index without an asynchronous feed `derived-store-without-cdc-or-rebuild` (error)

- Page: https://localhost:3000/catalogue/rules/derived-store-without-cdc-or-rebuild.md
- Why: A search index is derived data and needs an asynchronous feed from a stream, change data capture or an indexing worker. Without one it is written inline on the request path, and it can never be rebuilt after it drifts.
- Applies to: every node of kind search-index
- Message: Search index '{{node.id}}' has no asynchronous feed from a stream, change data capture or worker. It cannot be rebuilt or kept in sync independently of the write path.

It fires when:

- this does not hold:
  - the node has at least one asynchronous incoming edge from a stream, change-data-capture or worker

## Other products of the same kind · 31

- [Alibaba Cloud Elasticsearch](https://localhost:3000/catalogue/components/alibaba-elasticsearch.md) `alibaba-elasticsearch` — alibabacloud
- [OpenSearch](https://localhost:3000/catalogue/components/alibaba-open-search.md) `alibaba-open-search` — alibabacloud
- [Amazon Bedrock Knowledge Bases](https://localhost:3000/catalogue/components/aws-bedrock-knowledge-base.md) `aws-bedrock-knowledge-base` — aws
- [Amazon CloudSearch](https://localhost:3000/catalogue/components/aws-cloudsearch.md) `aws-cloudsearch` — aws
- [Amazon Kendra](https://localhost:3000/catalogue/components/aws-kendra.md) `aws-kendra` — aws
- [Amazon OpenSearch Service](https://localhost:3000/catalogue/components/aws-opensearch.md) `aws-opensearch` — aws
- [Azure AI Search](https://localhost:3000/catalogue/components/azure-ai-search.md) `azure-ai-search` — azure
- [Foundry IQ](https://localhost:3000/catalogue/components/azure-foundry-iq.md) `azure-foundry-iq` — azure
- [AI Search](https://localhost:3000/catalogue/components/cloudflare-ai-search.md) `cloudflare-ai-search` — cloudflare
- [Algolia](https://localhost:3000/catalogue/components/algolia.md) `algolia` — default
- [Coveo](https://localhost:3000/catalogue/components/coveo.md) `coveo` — default
- [Elastic Cloud](https://localhost:3000/catalogue/components/elastic-cloud.md) `elastic-cloud` — default
- [Elasticsearch](https://localhost:3000/catalogue/components/elasticsearch.md) `elasticsearch` — default
- [Geo cell index](https://localhost:3000/catalogue/components/geo-cell-index.md) `geo-cell-index` — default
- [Manticore Search](https://localhost:3000/catalogue/components/manticore.md) `manticore` — default
- [Meilisearch](https://localhost:3000/catalogue/components/meilisearch.md) `meilisearch` — default
- [OpenSearch](https://localhost:3000/catalogue/components/opensearch.md) `opensearch` — default
- [Quickwit](https://localhost:3000/catalogue/components/quickwit.md) `quickwit` — default
- [Generic search index](https://localhost:3000/catalogue/components/search-index.md) `search-index` — default
- [Apache Solr](https://localhost:3000/catalogue/components/solr.md) `solr` — default
- [Sonic](https://localhost:3000/catalogue/components/sonic.md) `sonic` — default
- [Sphinx](https://localhost:3000/catalogue/components/sphinx.md) `sphinx` — default
- [Trie index](https://localhost:3000/catalogue/components/trie-index.md) `trie-index` — default
- [Typesense](https://localhost:3000/catalogue/components/typesense.md) `typesense` — default
- [Vespa](https://localhost:3000/catalogue/components/vespa.md) `vespa` — default
- [Vertex AI Search](https://localhost:3000/catalogue/components/google-vertex-ai-search.md) `google-vertex-ai-search` — gcp
- [AI Commerce Search](https://localhost:3000/catalogue/components/google-vertex-ai-search-commerce.md) `google-vertex-ai-search-commerce` — gcp
- [Vision API Product Search](https://localhost:3000/catalogue/components/google-vision-product-search.md) `google-vision-product-search` — gcp
- [IBM Cloud Databases for Elasticsearch](https://localhost:3000/catalogue/components/ibm-databases-for-elasticsearch.md) `ibm-databases-for-elasticsearch` — ibm
- [IBM Watson Discovery](https://localhost:3000/catalogue/components/ibm-watson-discovery.md) `ibm-watson-discovery` — ibm
- [OCI Search with OpenSearch](https://localhost:3000/catalogue/components/oci-opensearch.md) `oci-opensearch` — oci

## Use it in a design

```yaml
nodes:
  - { id: "google-cloud-talent-solution", component: "google-cloud-talent-solution" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# Cloud Talent Solution: a managed job-search index over jobs and companies held in
# tenants, with inferred titles, seniority and commute search. "Quotas and limits":
# 3,000 search, histogram and get requests per 60 seconds, 300 indexing and list requests
# per 60 seconds, 3,000,000 jobs and 1,000,000 companies stored, 10 MB per request, and
# expired jobs retained for 90 days by default.
schemaVersion: "1"
type: "component"
id: "google-cloud-talent-solution"
kind: "search-index"
provider: "gcp"
docs: "https://docs.cloud.google.com/talent-solution/quotas"
defaults:
  structure: "inverted"
  indexing: "async"
  shardingStrategy: "none"
  geoScheme: "none"
  managed: true
properties:
  searchRequestsPerMinute:
    type: "integer"
    default: 3000
  indexingRequestsPerMinute:
    type: "integer"
    default: 300
  maxJobs:
    type: "integer"
    default: 3000000
  maxCompanies:
    type: "integer"
    default: 1000000
  expiredJobRetentionDays:
    type: "integer"
    default: 90
  commuteSearch:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/components/google-cloud-talent-solution
