openapi: 3.0.3
info:
  title: API Feed Vagas
  version: 1.0.0
  description: |
    O Feed de vagas é um link configurável, disponível para que os clientes possam incluir em sua intranet ou site as vagas veiculadas no sistema Vagas for business por meio de uma chamada HTTP para a API Vagas.

    ## Token para autenticação
    Para ter acesso as rotas da API é necessário um token de autenticação, fornecido pela equipe do Vagas.
servers:
- url: https://feed-vagas.vagas.com.br
security:
- bearerAuth: []
tags:
- name: Feed de Vagas
  description: Consulta das vagas publicadas no Vagas for business.
paths:
  /api/v1/vacancy_feed.json:
    get:
      tags:
      - Feed de Vagas
      operationId: getVacancyFeed
      summary: Feed de Vagas
      description: |
        Retorna um json com as informações das vagas publicadas no Vagas for business.

        O Token de autenticação é passado pelo cabeçalho HTTP `Authorization` com o prefixo `Bearer` seguido por espaço.
      parameters:
      - name: vacancy_ids
        in: query
        required: false
        description: Filtra uma ou mais vagas específicas por ID
        schema:
          type: string
        example: '1111111'
      - name: limit
        in: query
        required: false
        description: Número de vagas a serem retornadas por página
        schema:
          type: integer
          default: 10
          minimum: 1
        example: 10
      - name: page
        in: query
        required: false
        description: Página da listagem
        schema:
          type: integer
          default: 1
          minimum: 1
        example: 1
      - name: order
        in: query
        required: false
        description: |
          Ordem de exibição:

          - `most_recent` - Vagas mais recentes
          - `less_recent` - Vagas mais antigas
          - `prc_first` - PRC antes de PETs
          - `pet_first` - PETs antes de PRCs
        schema:
          type: string
          enum:
          - most_recent
          - less_recent
          - prc_first
          - pet_first
        example: most_recent
      - name: division_id[]
        in: query
        required: false
        description: 'Código(s) da divisão. Ex.: `division_id[]=11111&division_id[]=22222`'
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
        example:
        - 11111
        - 22222
      - name: add_confidential
        in: query
        required: false
        description: Incluir vagas confidenciais (privadas) ou não
        schema:
          type: boolean
          default: false
        example: true
      - name: time_period
        in: query
        required: false
        description: Listagem das vagas criadas com base no período de tempo recebido
        schema:
          type: string
          enum:
          - today
          - yesterday
          - week
          - month
        example: today
      - name: area[]
        in: query
        required: false
        description: |
          Códigos das áreas de atuação relacionadas à vaga. Ex.: `area[]=15`

          | Códigos | Descrição |
          |---|---|
          | `1` | Administração de Empresas |
          | `2` | Advocacia/Jurídica |
          | `3` | Agronomia |
          | `4` | Arquitetura/Urbanismo |
          | `5` | Auditoria |
          | `9` | Comércio Exterior |
          | `10` | Contabilidade |
          | `11` | Controladoria |
          | `12` | Comunicação |
          | `14` | Ecologia/Meio Ambiente |
          | `15` | Economia |
          | `16` | Enfermagem |
          | `17` | Engenharia - Outras |
          | `18` | Ensino - Outros |
          | `19` | Esportes |
          | `20` | Farmácia |
          | `21` | Finanças |
          | `22` | Geografia |
          | `23` | Geologia |
          | `24` | Informática/T.I. |
          | `25` | Jornalismo |
          | `26` | Logística |
          | `27` | Marketing |
          | `28` | Medicina/Hospitalar |
          | `29` | Nutrição |
          | `30` | Odontologia |
          | `31` | Produção/Fabricação |
          | `32` | Propaganda |
          | `33` | Psicologia |
          | `34` | Organização e Métodos |
          | `35` | Qualidade |
          | `36` | Química |
          | `37` | Recursos Humanos |
          | `38` | Relações Públicas |
          | `39` | Secretariado |
          | `40` | Serviços Gerais |
          | `41` | Serviço Social |
          | `42` | Serviços Técnicos - Outros |
          | `43` | Suprimentos |
          | `44` | Atend. a cliente - Telemarketing/Call Center |
          | `45` | Vendas |
          | `46` | Vendas Técnicas |
          | `47` | Veterinária |
          | `48` | Moda |
          | `49` | Desenho Industrial |
          | `50` | Física |
          | `51` | Bancos |
          | `52` | Biomedicina |
          | `53` | Fisioterapia |
          | `54` | Turismo |
          | `55` | Fonoaudiologia |
          | `56` | Biblioteconomia |
          | `57` | Transporte Aéreo |
          | `58` | Organização de Eventos/Produção Cultural |
          | `59` | Design Gráfico |
          | `60` | Web Design |
          | `62` | Arquivologia |
          | `63` | Manutenção Industrial |
          | `64` | Gestão Empresarial |
          | `65` | Segurança e Saúde no Trabalho |
          | `66` | Terapia Ocupacional |
          | `67` | Internet |
          | `68` | Telecomunicações |
          | `69` | Artes Cênicas |
          | `70` | Artes Gráficas |
          | `71` | Engenharia Eletrotécnica |
          | `80` | Artes Plásticas |
          | `81` | Atend. a cliente - Bares e Restaurantes |
          | `82` | Vendas - Varejo |
          | `83` | Atend. a cliente - Telefonistas/Recepcionistas |
          | `84` | Atend. a cliente |
          | `85` | Biologia/Ciências Biológicas |
          | `86` | Ciências Sociais |
          | `87` | Cinema |
          | `88` | Construção Civil |
          | `89` | Culinária/Gastronomia |
          | `90` | Design de Interiores |
          | `91` | Engenharia de Alimentos |
          | `92` | Engenharia Civil |
          | `93` | Engenharia Eletrônica |
          | `94` | Engenharia Mecânica |
          | `95` | Engenharia de Produção |
          | `96` | Engenharia Química |
          | `97` | Ensino Superior e Pesquisa |
          | `98` | Filosofia |
          | `99` | História |
          | `100` | Hotelaria |
          | `101` | Letras |
          | `102` | Matemática/Estatística |
          | `103` | Meteorologia |
          | `104` | Museologia |
          | `105` | Música |
          | `106` | Oceanografia |
          | `107` | Radialismo e Televisão |
          | `108` | Relações Internacionais |
          | `109` | Segurança Patrimonial |
          | `110` | Seguros |
          | `111` | Serviços Administrativos |
          | `112` | Serviços Domésticos |
          | `113` | Serviços Técnicos - Elétricos |
          | `114` | Serviços Técnicos - Mecânicos |
          | `115` | Tradução/Interpretação |
          | `116` | Transporte Marítimo |
          | `117` | Transporte Terrestre |
          | `118` | Zootecnia |
          | `119` | Zoologia |
          | `120` | Entretenimento |
          | `121` | Terceiro Setor/Responsabilidade Social |
          | `122` | Manutenção Predial |
          | `123` | Mineração |
          | `124` | Administração Comercial/Vendas |
          | `125` | Administração Pública |
          | `126` | Compras |
          | `127` | Engenharia Metalúrgica e de Materiais |
          | `128` | Engenharia de Minas |
          | `129` | Estética |
          | `130` | Fiscal |
          | `131` | Serviços Técnicos - Eletrônicos |
          | `132` | Tributária |
          | `133` | Serviços Especializados - Açougue |
          | `134` | Serviços Especializados - Padaria/Confeitaria |
          | `135` | Serviços Especializados - Peixaria |
          | `136` | Pesquisa de Mercado |
          | `137` | Petrolífera |
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            enum:
            - 1
            - 2
            - 3
            - 4
            - 5
            - 9
            - 10
            - 11
            - 12
            - 14
            - 15
            - 16
            - 17
            - 18
            - 19
            - 20
            - 21
            - 22
            - 23
            - 24
            - 25
            - 26
            - 27
            - 28
            - 29
            - 30
            - 31
            - 32
            - 33
            - 34
            - 35
            - 36
            - 37
            - 38
            - 39
            - 40
            - 41
            - 42
            - 43
            - 44
            - 45
            - 46
            - 47
            - 48
            - 49
            - 50
            - 51
            - 52
            - 53
            - 54
            - 55
            - 56
            - 57
            - 58
            - 59
            - 60
            - 62
            - 63
            - 64
            - 65
            - 66
            - 67
            - 68
            - 69
            - 70
            - 71
            - 80
            - 81
            - 82
            - 83
            - 84
            - 85
            - 86
            - 87
            - 88
            - 89
            - 90
            - 91
            - 92
            - 93
            - 94
            - 95
            - 96
            - 97
            - 98
            - 99
            - 100
            - 101
            - 102
            - 103
            - 104
            - 105
            - 106
            - 107
            - 108
            - 109
            - 110
            - 111
            - 112
            - 113
            - 114
            - 115
            - 116
            - 117
            - 118
            - 119
            - 120
            - 121
            - 122
            - 123
            - 124
            - 125
            - 126
            - 127
            - 128
            - 129
            - 130
            - 131
            - 132
            - 133
            - 134
            - 135
            - 136
            - 137
        example:
        - 15
      - name: city[]
        in: query
        required: false
        description: 'Nome(s) da(s) cidade(s) das vagas em exibição. Ex.: `city[]=Rio de Janeiro&city[]=São Paulo`'
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
        example:
        - Rio de Janeiro
        - São Paulo
      - name: country[]
        in: query
        required: false
        description: 'Nome(s) do(s) país(es) das vagas em exibição. Ex.: `country[]=Brasil&country[]=México`'
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
        example:
        - Brasil
        - México
      - name: hierarchy[]
        in: query
        required: false
        description: |
          Códigos das hierarquias escolhidas. Ex.: `hierarchy[]=30`

          | Códigos | Descrição |
          |---|---|
          | `22` | Auxiliar/Operacional |
          | `26` | Técnico |
          | `28` | Estágio |
          | `30` | Júnior/Trainee |
          | `40` | Pleno |
          | `50` | Sênior |
          | `60` | Supervisão/Coordenação |
          | `70` | Gerência |
          | `80` | Diretoria |
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            enum:
            - 22
            - 26
            - 28
            - 30
            - 40
            - 50
            - 60
            - 70
            - 80
        example:
        - 30
      - name: pet
        in: query
        required: false
        description: Retornar apenas as vagas para programas de estágio/trainee
        schema:
          type: boolean
          default: false
        example: true
      - name: pcd
        in: query
        required: false
        description: Retornar apenas as vagas para pessoas com deficiência
        schema:
          type: boolean
          default: false
        example: true
      - name: gptw
        in: query
        required: false
        description: Retornar apenas as vagas com selo GPTW
        schema:
          type: boolean
      - name: gptwbenef
        in: query
        required: false
        description: Retornar apenas as vagas com benefícios GPTW
        schema:
          type: boolean
      - name: q
        in: query
        required: false
        description: Termo de busca textual para a descrição/nome da vaga
        schema:
          type: string
        example: analista
      responses:
        '200':
          description: Lista paginada de vagas
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacancyResponseOk'
        '401':
          description: Usuário não autenticado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VagasResponseUnauthorized'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Token fornecido pela equipe do Vagas, enviado no cabeçalho `Authorization: Bearer <auth_token>`.'
  schemas:
    VacancyResponseOk:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        data:
          type: array
          description: Lista de vagas
          items:
            $ref: '#/components/schemas/Vacancy'
        facets:
          $ref: '#/components/schemas/Facets'
    Pagination:
      type: object
      description: Informações de paginação
      properties:
        current_page:
          type: integer
          description: Página atual
          example: 1
        total_pages:
          type: integer
          description: Total de páginas
          example: 1
        total:
          type: integer
          description: Total de vagas
          example: 2
    Vacancy:
      type: object
      properties:
        id:
          type: integer
          description: ID da vaga
          example: 1111111
        cargo:
          type: string
          description: Cargo
          example: 4440 - Analista 1
        abertura:
          type: string
          description: Data de abertura da vaga
          example: '2000-12-31'
          format: date
        posicoes:
          type: integer
          description: Número de posições abertas
          example: 3
        empresa:
          type: string
          description: Empresa
          example: Empresa Modelo
        descricao:
          type: string
          description: Descrição
          example: Descrição da vaga
        localizacao:
          type: string
          description: Localização
          example: São Paulo / SP / BR
        cidade:
          type: string
          description: Cidade
          example: São Paulo
        hierarquia:
          type: string
          description: Hierarquia
          example: Sênior
        divisao_id:
          type: integer
          description: ID da divisão
          example: 55555
        exclusiva_para_deficiente:
          type: boolean
          description: Indica se a vaga é exclusiva para pessoas com deficiência
          example: true
        descricao_html:
          type: string
          description: Descrição da vaga em formato HTML
          example: <p> Descrição da vaga </p>
        latitude:
          type: number
          format: double
          example: 12.3456789
        longitude:
          type: number
          format: double
          example: 12.3456789
        url_navegacao_vagascombr:
          type: string
          description: URL de navegação no vagas.com.br
          example: https://www.vagas.com.br/vagas/v1234567
          format: uri
        url_navegacao_exclusiva:
          type: string
          description: URL de navegação exclusiva
          example: https://site.vagas.com.br/PagVagaDirSS.asp?v=1234567&pp=https%3A%2F%2Fsite.vagas.com.br%2FGoHome.asp%3Fv%3D1234567%26j%3Dt%26ne%3D1
          format: uri
        url:
          type: string
          description: URL da vaga
          example: https://www.vagas.com.br/vagas/v1234567
          format: uri
        areas_da_vaga:
          type: array
          description: Códigos das áreas da vaga
          items:
            type: integer
          example:
          - 14
          - 24
          - 11
    Term:
      type: object
      properties:
        term:
          type: string
          description: Valor do termo
          example: parameter
        descricao:
          type: string
          description: Descrição do termo
          example: description
        count:
          type: integer
          description: Quantidade de vagas
          example: 2
    FacetTerms:
      type: object
      properties:
        terms:
          type: array
          items:
            $ref: '#/components/schemas/Term'
    Facets:
      type: object
      description: Facetas (agregações) dos resultados
      properties:
        p:
          $ref: '#/components/schemas/FacetTerms'
        pcd:
          description: Pessoas com deficiência
          allOf:
          - $ref: '#/components/schemas/FacetTerms'
        a:
          $ref: '#/components/schemas/FacetTerms'
        b:
          $ref: '#/components/schemas/FacetTerms'
        c:
          $ref: '#/components/schemas/FacetTerms'
        gptwbenef:
          description: Benefícios Great Place to Work
          allOf:
          - $ref: '#/components/schemas/FacetTerms'
        e:
          $ref: '#/components/schemas/FacetTerms'
        h:
          $ref: '#/components/schemas/FacetTerms'
        gptw:
          description: Great Place to Work
          allOf:
          - $ref: '#/components/schemas/FacetTerms'
        m:
          $ref: '#/components/schemas/FacetTerms'
        v10m:
          $ref: '#/components/schemas/FacetTerms'
    VagasResponseUnauthorized:
      type: object
      properties:
        error:
          type: string
          description: Mensagem de erro
          example: Usuário não autenticado
