> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pubrio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Búsqueda de empleos de la empresa

> Busca ofertas de empleo. Consulta la [guía de búsqueda de empleos](/es/developer-guides/search/job-search).



## OpenAPI

````yaml es-openapi POST /companies/jobs/search
openapi: 3.0.0
info:
  description: >-
    La API de Pubrio ofrece inteligencia de expansión de mercado —señales en
    tiempo real que indican cuándo una empresa entra en un nuevo mercado— junto
    con los datos de empresas y personas que las respaldan. Busca, consulta y
    enriquece cuentas y contactos, y suscríbete a señales de movimiento tipadas
    y fechadas en más de 200 mercados.
  version: 1.0.0
  title: Pubrio OpenAPI
  termsOfService: https://pubrio.com/es/terms-of-service
  contact:
    email: king.lai@pubrio.com
    name: King Lai
    url: https://pubrio.com/es/get-in-touch
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://api.pubrio.com
security:
  - pubrio_api_key: []
tags:
  - name: Profile
    description: Información del perfil del espacio de trabajo y estadísticas de uso
  - name: Enrichment
    description: Enriquece registros de personas y empresas con datos B2B detallados
  - name: Lookalike
    description: Encuentra empresas similares a una empresa determinada
  - name: Search
    description: Busca personas, empresas, empleos, noticias y anuncios con filtros
  - name: Lookup
    description: >-
      Consulta información detallada de personas, empresas, empleos, noticias,
      anuncios y tecnologías específicos
  - name: LinkedIn
    description: Consulta datos de personas y empresas mediante URL de perfil de LinkedIn
  - name: Redeem
    description: >-
      Canjea créditos para desbloquear datos de contacto de personas (individual
      y por lotes)
  - name: Channels
    description: >-
      Gestiona plantillas de canales de contacto (crear, actualizar, eliminar,
      listar)
  - name: Monitor
    description: >-
      Crea y gestiona monitores de datos con webhooks, estadísticas y
      procesamiento
  - name: Filters
    description: >-
      Obtén los valores de filtro disponibles para los parámetros de búsqueda
      (tecnologías, ubicaciones, verticales, etc.)
  - name: API Keys
    description: >-
      Lista e inspecciona los registros de solicitudes a la API y las analíticas
      de uso de las claves de API
  - name: Insights
    description: >-
      Información agregada de señales para empresas (empleos, noticias,
      anuncios).
  - name: Export
    description: Exportaciones de datos masivas (sujetas a créditos).
  - name: Expansion
    description: >-
      Inteligencia de expansión de mercado de empresas: señales, etapas,
      mercados y exportaciones.
externalDocs:
  description: >-
    La API de Pubrio se utiliza para buscar, previsualizar y enriquecer
    contactos y cuentas. La base de datos de Pubrio ofrece amplios datos de
    contactos B2B e inteligencia de ventas.
  url: https://docs.pubrio.com
paths:
  /companies/jobs/search:
    post:
      tags:
        - Search
      summary: Buscar ofertas de empleo
      description: >-
        Busca ofertas de empleo. Consulta la [guía de búsqueda de
        empleos](/es/developer-guides/search/job-search).
      operationId: companies_search_jobs
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                locations:
                  $ref: '#/components/schemas/locations'
                exclude_locations:
                  type: array
                  items:
                    type: string
                  example:
                    - TW
                  description: >-
                    Códigos de ubicación ISO 3166-1 alfa-2 (cca2) a excluir de
                    los resultados de empleo. Consulta los endpoints `location`
                    en la pestaña Filters para ver los códigos válidos.
                location_ids:
                  $ref: '#/components/schemas/job_location_ids'
                company_locations:
                  $ref: '#/components/schemas/company_locations'
                companies:
                  $ref: '#/components/schemas/companies'
                domains:
                  $ref: '#/components/schemas/domains'
                linkedin_urls:
                  $ref: '#/components/schemas/company_linkedin_urls'
                search_term:
                  $ref: '#/components/schemas/search_term'
                search_terms:
                  type: array
                  items:
                    type: string
                  example:
                    - Software Developer
                  description: >-
                    Array de cadenas de palabras clave para filtrar ofertas de
                    empleo. Cada término se compara con el contenido de la
                    oferta. Usa `search_term` para una sola cadena o
                    `search_terms` para varias palabras clave.
                titles:
                  $ref: '#/components/schemas/people_titles'
                functions:
                  $ref: '#/components/schemas/job_functions'
                seniority_ranks:
                  $ref: '#/components/schemas/job_seniority_ranks'
                posted_dates:
                  $ref: '#/components/schemas/posted_dates'
                launch_dates:
                  $ref: '#/components/schemas/job_launch_dates'
                created_at:
                  $ref: '#/components/schemas/search_created_at'
                is_realtime_enrichment:
                  $ref: '#/components/schemas/is_realtime_enrichment'
                is_ascending_order:
                  $ref: '#/components/schemas/is_ascending_order'
                per_page:
                  $ref: '#/components/schemas/per_page'
                page:
                  $ref: '#/components/schemas/page'
      responses:
        '200':
          description: >-
            Respuesta exitosa que contiene los detalles de la búsqueda de
            empleos de empresas.
          content:
            application/json:
              schema:
                type: object
                properties:
                  metadata:
                    $ref: '#/components/schemas/search_metadata'
                  data:
                    type: object
                    properties:
                      pagination:
                        $ref: '#/components/schemas/search_pagination'
                      jobs:
                        type: array
                        items:
                          $ref: '#/components/schemas/job_search_result'
              example:
                metadata:
                  profile: null
                  filters:
                    domains:
                      - google.com
                    per_page: 25
                    language: en
                  ignored_fields: []
                data:
                  pagination:
                    page: 1
                    per_page: 25
                    total_entries: 2228628
                    total_pages: 89146
                    is_timeout: false
                    total_display_pages: 250
                  jobs:
                    - job_id: 371d0c44-4c56-4c9c-98e2-ef6dd986b848
                      job_search_id: 371d0c44-4c56-4c9c-98e2-ef6dd986b848
                      last_modified: '2025-05-31T20:41:27.894Z'
                      companies:
                        logo_url: >-
                          https://buckets.pubrio.com/company-logo/OTQxMjYxMTFnb29nbGUuY29tLnBrbGlua2VkaW5fcF9sb2dvMTU=.jpg
                        domain_search_id: 539e2c34-de6b-4613-8f5b-e3aa18b4ef47
                        company_name: Google
                        linkedin_name: google
                        country_code: US
                        domain: google.com
                      location: Seoul, Seoul, South Korea
                      job_url: >-
                        https://kr.linkedin.com/jobs/view/software-engineer-greach-program-for-people-with-disabilities-%EC%9E%A5%EC%95%A0%EC%9D%B8-%EC%B1%84%EC%9A%A9-at-google-4224659596?position=7&pageNum=0&refId=DwDpGXGftUql%2FkETvFCwXw%3D%3D&trackingId=gAvrIP0yUQuf8fjK67HSbQ%3D%3D
                      posting_date: '2025-05-31'
                      country_code: KR
                      location_id: 491
                      title: >-
                        Software Engineer, gReach Program for People with
                        Disabilities (장애인 채용)
                      country: South Korea
                      created_at: '2025-05-10T14:30:58.348Z'
                      source_type: linkedin
                      functions: null
                      seniority_rank: 0
                      base_salary: null
                      experience_requirement: null
                      education_requirement: null
                      employment_type: null
                    - ...
        '400':
          $ref: '#/components/responses/general_error'
        '429':
          $ref: '#/components/responses/rate_limit_error'
        '500':
          $ref: '#/components/responses/server_error'
components:
  schemas:
    locations:
      type: array
      items:
        type: string
      example:
        - US
        - SG
        - CN
      description: >-
        Se usa el código ISO 3166-1 alfa-2 (cca2) para filtrar ubicaciones.
        Consulta los endpoints `location` en la pestaña Filters para más
        información.
    job_location_ids:
      type: array
      items:
        type: integer
      example:
        - 357
        - 419
      description: >-
        País de la publicación mediante `location_id` de Pubrio (endpoint de
        ubicaciones; también presente en cada fila). Alternativa a `locations`.
    company_locations:
      type: array
      items:
        type: string
      example:
        - US
        - SG
        - CN
      description: >-
        La ubicación de la sede de la empresa. Consulta los endpoints `location`
        en la pestaña Filters para más información.
    companies:
      type: array
      items:
        type: string
        format: uuid
      description: >-
        Una lista de identificadores únicos (domain_search_id) utilizada para
        operaciones de búsqueda de empresas y personas.
    domains:
      type: array
      items:
        type: string
      example:
        - pubrio.com
      description: >-
        Lista de dominios de empresa utilizada para operaciones de búsqueda de
        empresas y personas. Si recibimos una URL como `www.pubrio.com` o
        `https://docs.pubrio.com/`, el sistema la convertirá a `pubrio.com` para
        su procesamiento.
    company_linkedin_urls:
      type: array
      items:
        type: string
      example:
        - https://www.linkedin.com/company/pubrio
      description: >-
        La URL completa del perfil de LinkedIn de la empresa. La URL debe
        empezar por `http` y contener `linkedin.com/company/`
    search_term:
      type: string
      example: pubrio
      description: Una cadena de palabras sobre la que queremos filtrar los resultados.
    people_titles:
      type: array
      items:
        type: string
      example:
        - sales manager
        - marketing manager
      description: |-
        Cargos asociados a las personas que deseas localizar.

         Los resultados también incluirán cargos que contengan terminología similar, aunque no coincidan exactamente. Por ejemplo, buscar `software engineer` puede devolver resultados de personas con el cargo `senior software engineer`.
    job_functions:
      type: array
      items:
        type: string
      example:
        - engineering
        - product_management
      description: >-
        Slugs de función derivados del cargo, p. ej. `engineering`, `sales`,
        `marketing`, `finance`, `product_management`; los mismos valores que las
        filas devuelven en `functions`. Los slugs desconocidos no coinciden con
        nada. Lista completa: [Enums y
        constantes](/es/api-reference/enums#job-functions).
    job_seniority_ranks:
      type: array
      items:
        type: integer
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
      example:
        - 4
        - 5
      description: >-
        Nivel de antigüedad según el cargo: `1` junior, `2` senior, `3` mánager,
        `4` director, `5` ejecutivo. Los valores fuera del rango 1–5 se ignoran
        y el filtro se descarta. Las filas devuelven su nivel en
        `seniority_rank` (`0` = sin clasificar).
    posted_dates:
      type: array
      items:
        type: string
      example:
        - '2025-01-01'
        - '2025-01-10'
      description: >-
        Rango de fechas de publicación. El valor máximo es el día actual. Los
        límites del día siguen la zona horaria de tu espacio de trabajo.
    job_launch_dates:
      type: array
      items:
        type: string
        format: date
      minItems: 1
      maxItems: 2
      example:
        - '2026-08-01'
        - '2026-08-31'
      description: >-
        Ventana inclusiva `[from, to]` (UTC) sobre la fecha de publicación:
        `posting_date`, o el día de ingesta cuando no está presente. Coincide
        con la forma en que Job Insights cuenta. Una única fecha coincide con
        ese día.
    search_created_at:
      type: string
      format: date-time
      example: '2026-09-02T12:00:00Z'
      description: >-
        Ingerido en este instante o después (UTC). Fecha o marca de tiempo ISO.
        Para sincronizaciones incrementales, pasa el `created_at` de tu registro
        almacenado más reciente.
    is_realtime_enrichment:
      type: boolean
      default: false
      example: true
      description: >-
        Activa el enriquecimiento en tiempo real para una única consulta con
        alcance de empresa (filtrada por `domain_search_id`, `domains` o
        `linkedin_urls`). Cuando la búsqueda inicial devuelve cero resultados,
        el endpoint extrae la fuente, persiste los registros y vuelve a ejecutar
        la búsqueda antes de responder. Sujeto a un límite de tiempo por ruta.
    is_ascending_order:
      type: boolean
      default: false
      example: false
      description: >-
        Dirección de ordenación. Los resultados se devuelven por defecto de más
        reciente a más antiguo; establece `true` para el orden inverso (de más
        antiguo a más reciente). No existe `sort_by` en este endpoint: la clave
        de ordenación es fija y se indica en la descripción del endpoint.
    per_page:
      type: integer
      example: 25
      default: 25
      maximum: 25
      description: >-
        Registros por página. Por defecto es 25, que también es el límite en la
        mayoría de los planes — el límite es el `max_search_per_page` de tu
        suscripción, devuelto por
        [Perfil](/es/api-reference/endpoint/profile/profile). Superarlo devuelve
        **HTTP 416** con el código `41676` (o `41613` en la búsqueda de empresas
        y personas), no un conjunto de resultados recortado.
    page:
      type: integer
      example: 1
      default: 1
      description: >-
        Número de página, empezando en 1. El límite es el `max_search_page` de
        tu suscripción (`max_company_search_page` para la búsqueda de empresas),
        devuelto por [Perfil](/es/api-reference/endpoint/profile/profile).
        Superarlo devuelve **HTTP 416**.
    search_metadata:
      type: object
      description: Contexto de la solicitud.
      properties:
        profile:
          type: object
          nullable: true
          description: >-
            Bloque de créditos (`credit`, `topup_credit`, `total_credit_cost`)
            cuando se solicita la contabilidad de créditos; `null` en el tráfico
            simple con clave de API.
        filters:
          type: object
          description: >-
            Eco del cuerpo de la solicitud tal como lo aplicó el endpoint,
            incluidos valores predeterminados como `per_page` y `language`.
        ignored_fields:
          type: array
          items:
            type: string
          description: >-
            Claves del cuerpo que el endpoint no reconoció y descartó. Si está
            vacío, significa que se aplicaron todas las claves; un filtro mal
            escrito amplía la búsqueda en lugar de fallar.
    search_pagination:
      type: object
      description: Paginación del conjunto de resultados.
      properties:
        page:
          type: integer
          description: Número de página actual.
        per_page:
          type: integer
          description: Registros por página.
        total_entries:
          type: integer
          description: >-
            Total de registros coincidentes. En búsquedas amplias e
            independientes de empresa, este valor es una estimación.
        total_pages:
          type: integer
          description: '`total_entries` dividido entre `per_page`.'
        total_display_pages:
          type: integer
          description: >-
            Páginas que realmente puedes solicitar, limitadas por el
            `max_search_page` de tu plan.
        is_timeout:
          type: boolean
          description: >-
            `true` cuando la consulta de conteo excedió el tiempo de espera y
            `total_entries` es una estimación parcial.
    job_search_result:
      type: object
      description: Una oferta de empleo.
      properties:
        job_id:
          type: string
          format: uuid
          description: Identificador de la publicación.
        job_search_id:
          type: string
          format: uuid
          description: Mismo valor que `job_id`. Pásalo a Job Lookup.
        created_at:
          type: string
          format: date-time
          description: >-
            Cuándo Pubrio ingirió la publicación por primera vez. Esta es la
            clave de ordenación predeterminada.
        last_modified:
          type: string
          format: date-time
          description: Cuándo se actualizó el registro por última vez.
        title:
          type: string
          description: Título del puesto tal como se publicó.
        job_url:
          type: string
          description: Enlace a la publicación en la fuente original.
        location:
          type: string
          description: Ubicación en texto libre tal como se publicó.
          nullable: true
        location_id:
          type: integer
          nullable: true
          description: >-
            `location_id` de Pubrio del país de la publicación. Mismo
            vocabulario que el filtro `location_ids`.
        country:
          type: string
          description: Nombre del país de la publicación.
          nullable: true
        country_code:
          type: string
          description: >-
            Código ISO 3166-1 alfa-2 del país de la publicación. Mismo
            vocabulario que el filtro `locations`.
          nullable: true
        posting_date:
          type: string
          format: date
          nullable: true
          description: >-
            Fecha de publicación según el editor. `launch_dates` filtra por este
            campo, recurriendo a `created_at` cuando no está presente.
        source_type:
          type: string
          description: Fuente desde la que se capturó la publicación, p. ej. `linkedin`.
        functions:
          type: array
          nullable: true
          items:
            type: string
          description: >-
            Slugs de función laboral resueltos a partir del cargo; `null` cuando
            no está clasificado. Mismo vocabulario que el filtro `functions`.
        seniority_rank:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
          description: >-
            Nivel de antigüedad `1`–`5` según se define en el filtro
            `seniority_ranks`; `0` cuando el cargo no pudo clasificarse.
        base_salary:
          type: string
          description: >-
            Texto del salario tal como se publicó, cuando la fuente lo
            proporciona.
          nullable: true
        experience_requirement:
          type: string
          description: >-
            Requisito de experiencia tal como se publicó, cuando la fuente lo
            proporciona.
          nullable: true
        education_requirement:
          type: string
          description: >-
            Requisito de formación académica tal como se publicó, cuando la
            fuente lo proporciona.
          nullable: true
        employment_type:
          type: string
          description: >-
            Tipo de empleo tal como se publicó (p. ej. `Full-time`), cuando la
            fuente lo proporciona.
          nullable: true
        companies:
          $ref: '#/components/schemas/search_result_company'
    search_result_company:
      type: object
      description: La empresa a la que está vinculado el registro.
      properties:
        domain_search_id:
          type: string
          format: uuid
          description: >-
            Identificador de empresa de Pubrio. Pásalo a `companies` en
            cualquier búsqueda, o a Company Lookup.
        company_name:
          type: string
          description: Nombre de la empresa.
        linkedin_name:
          type: string
          nullable: true
          description: >-
            Slug de empresa de LinkedIn (la parte después de
            `linkedin.com/company/`).
        country_code:
          type: string
          nullable: true
          description: Código ISO 3166-1 alfa-2 de la sede de la empresa.
        company_url:
          type: string
          nullable: true
          description: URL del sitio web de la empresa.
        domain:
          type: string
          description: Dominio de la empresa, normalizado (`stripe.com`).
        logo_url:
          type: string
          nullable: true
          description: URL del logotipo de la empresa.
  responses:
    general_error:
      description: >-
        Solicitud incorrecta. La solicitud estaba mal formada o contenía
        parámetros no válidos. Consulta el código de error y el mensaje para más
        detalles.
      content:
        application/json:
          schema:
            required:
              - code
              - message
              - details
            type: object
            properties:
              code:
                example: 40001
                type: integer
              message:
                example: >-
                  Errors and codes will vary depending on the scenario, please
                  see the documentation for information.
                type: string
              details:
                type: object
    rate_limit_error:
      description: >-
        Límite de tasa excedido. Se realizaron demasiadas solicitudes en un
        período de tiempo determinado. Vuelve a intentarlo después de que se
        restablezca la ventana de límite de tasa.
      content:
        application/json:
          schema:
            required:
              - error
            type: object
            properties:
              error:
                example: Request rate limit exceeded. Please wait and try again later.
                type: string
    server_error:
      description: >-
        Error interno del servidor. Se produjo un error inesperado en el
        servidor. Contacta con soporte si el error persiste.
      content:
        application/json:
          schema:
            required:
              - error
            type: object
            properties:
              error:
                example: An unexpected error occurred on the server.
                type: string
  securitySchemes:
    pubrio_api_key:
      type: apiKey
      name: pubrio-api-key
      description: >-
        Un token de API único que representa las acciones que realizas a través
        de la API, junto con los permisos y operaciones correspondientes. Puedes
        crearlo en la sección
        [Configuración](https://dashboard.pubrio.com/#/settings/).
      in: header

````