openapi: 3.0.3
info:
  title: API Feed Vagas
  version: 1.0.0
  description: |
    The Jobs Feed is a configurable link, available so that customers can include jobs posted in the Vagas for Business system on their intranet or website through an HTTP call to the Vagas API.

    ## Auth Token
    To access the API routes, an authentication token is required, provided by the Vagas team.
servers:
- url: https://feed-vagas.vagas.com.br
security:
- bearerAuth: []
tags:
- name: Jobs Feed
  description: Query jobs published in Vagas for Business.
paths:
  /api/v1/vacancy_feed.json:
    get:
      tags:
      - Jobs Feed
      operationId: getVacancyFeed
      summary: Jobs Feed
      description: |
        Returns a json with the job information published in Vagas for Business.

        The authentication token is passed in the `Authorization` HTTP header with the `Bearer` prefix followed by a space.
      parameters:
      - name: vacancy_ids
        in: query
        required: false
        description: Filter one or more specific job IDs
        schema:
          type: string
        example: '1111111'
      - name: limit
        in: query
        required: false
        description: Number of jobs per page
        schema:
          type: integer
          default: 10
          minimum: 1
        example: 10
      - name: page
        in: query
        required: false
        description: Requested page
        schema:
          type: integer
          default: 1
          minimum: 1
        example: 1
      - name: order
        in: query
        required: false
        description: |
          List order:

          - `most_recent` - Most recent jobs
          - `less_recent` - Less recent jobs
          - `prc_first` - PRC before PETs
          - `pet_first` - PETs before PRCs
        schema:
          type: string
          enum:
          - most_recent
          - less_recent
          - prc_first
          - pet_first
        example: most_recent
      - name: division_id[]
        in: query
        required: false
        description: Division code(s). E.g. `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: Include confidential (private) jobs
        schema:
          type: boolean
          default: false
        example: true
      - name: time_period
        in: query
        required: false
        description: List jobs created within the given time period
        schema:
          type: string
          enum:
          - today
          - yesterday
          - week
          - month
        example: today
      - name: area[]
        in: query
        required: false
        description: |
          Job area codes. E.g. `area[]=15`

          | Codes | Description |
          |---|---|
          | `1` | Administração de Empresas (Business Administration) |
          | `2` | Advocacia/Jurídica (Law/Legal) |
          | `3` | Agronomia (Agronomy) |
          | `4` | Arquitetura/Urbanismo (Architecture/Urban Planning) |
          | `5` | Auditoria (Audit) |
          | `9` | Comércio Exterior (Foreign Trade) |
          | `10` | Contabilidade (Accounting) |
          | `11` | Controladoria (Controller's Office) |
          | `12` | Comunicação (Communication) |
          | `14` | Ecologia/Meio Ambiente (Ecology/Environment) |
          | `15` | Economia (Economics) |
          | `16` | Enfermagem (Nursing) |
          | `17` | Engenharia - Outras (Other Engineering) |
          | `18` | Ensino - Outros (Teaching - Others) |
          | `19` | Esportes (Sports) |
          | `20` | Farmácia (Pharmacy) |
          | `21` | Finanças (Finance) |
          | `22` | Geografia (Geography) |
          | `23` | Geologia (Geology) |
          | `24` | Informática/T.I. (Information Technology/IT) |
          | `25` | Jornalismo (Journalism) |
          | `26` | Logística (Logistics) |
          | `27` | Marketing (Marketing) |
          | `28` | Medicina/Hospitalar (Medicine/Hospital) |
          | `29` | Nutrição (Nutrition) |
          | `30` | Odontologia (Dentistry) |
          | `31` | Produção/Fabricação (Production/Manufacturing) |
          | `32` | Propaganda (Advertising) |
          | `33` | Psicologia (Psychology) |
          | `34` | Organização e Métodos (Organization and Methods) |
          | `35` | Qualidade (Quality) |
          | `36` | Química (Chemistry) |
          | `37` | Recursos Humanos (Human Resources) |
          | `38` | Relações Públicas (Public Relations) |
          | `39` | Secretariado (Secretarial) |
          | `40` | Serviços Gerais (General Services) |
          | `41` | Serviço Social (Social Services) |
          | `42` | Serviços Técnicos - Outros (Other Technical Services) |
          | `43` | Suprimentos (Supplies) |
          | `44` | Atend. a cliente - Telemarketing/Call Center (Customer Service - Telemarketing/Call Center) |
          | `45` | Vendas (Sales) |
          | `46` | Vendas Técnicas (Technical Sales) |
          | `47` | Veterinária (Veterinary) |
          | `48` | Moda (Fashion) |
          | `49` | Desenho Industrial (Industrial Design) |
          | `50` | Física (Physics) |
          | `51` | Bancos (Banking) |
          | `52` | Biomedicina (Biomedicine) |
          | `53` | Fisioterapia (Physiotherapy) |
          | `54` | Turismo (Tourism) |
          | `55` | Fonoaudiologia (Speech Therapy) |
          | `56` | Biblioteconomia (Library Science) |
          | `57` | Transporte Aéreo (Air Transport) |
          | `58` | Organização de Eventos/Produção Cultural (Event Organization/Cultural Production) |
          | `59` | Design Gráfico (Graphic Design) |
          | `60` | Web Design (Web Design) |
          | `62` | Arquivologia (Archival Science) |
          | `63` | Manutenção Industrial (Industrial Maintenance) |
          | `64` | Gestão Empresarial (Business Management) |
          | `65` | Segurança e Saúde no Trabalho (Occupational Health and Safety) |
          | `66` | Terapia Ocupacional (Occupational Therapy) |
          | `67` | Internet (Internet) |
          | `68` | Telecomunicações (Telecommunications) |
          | `69` | Artes Cênicas (Performing Arts) |
          | `70` | Artes Gráficas (Graphic Arts) |
          | `71` | Engenharia Eletrotécnica (Electrotechnical Engineering) |
          | `80` | Artes Plásticas (Plastic Arts) |
          | `81` | Atend. a cliente - Bares e Restaurantes (Customer Service - Bars and Restaurants) |
          | `82` | Vendas - Varejo (Retail Sales) |
          | `83` | Atend. a cliente - Telefonistas/Recepcionistas (Customer Service - Telephone Operators/Receptionists) |
          | `84` | Atend. a cliente (Customer Service) |
          | `85` | Biologia/Ciências Biológicas (Biology/Biological Sciences) |
          | `86` | Ciências Sociais (Social Sciences) |
          | `87` | Cinema (Cinema/Film) |
          | `88` | Construção Civil (Civil Construction) |
          | `89` | Culinária/Gastronomia (Culinary/Gastronomy) |
          | `90` | Design de Interiores (Interior Design) |
          | `91` | Engenharia de Alimentos (Food Engineering) |
          | `92` | Engenharia Civil (Civil Engineering) |
          | `93` | Engenharia Eletrônica (Electronic Engineering) |
          | `94` | Engenharia Mecânica (Mechanical Engineering) |
          | `95` | Engenharia de Produção (Production Engineering) |
          | `96` | Engenharia Química (Chemical Engineering) |
          | `97` | Ensino Superior e Pesquisa (Higher Education and Research) |
          | `98` | Filosofia (Philosophy) |
          | `99` | História (History) |
          | `100` | Hotelaria (Hospitality) |
          | `101` | Letras (Literature/Letters) |
          | `102` | Matemática/Estatística (Mathematics/Statistics) |
          | `103` | Meteorologia (Meteorology) |
          | `104` | Museologia (Museology) |
          | `105` | Música (Music) |
          | `106` | Oceanografia (Oceanography) |
          | `107` | Radialismo e Televisão (Radio and Television) |
          | `108` | Relações Internacionais (International Relations) |
          | `109` | Segurança Patrimonial (Asset Security) |
          | `110` | Seguros (Insurance) |
          | `111` | Serviços Administrativos (Administrative Services) |
          | `112` | Serviços Domésticos (Domestic Services) |
          | `113` | Serviços Técnicos - Elétricos (Electrical Technical Services) |
          | `114` | Serviços Técnicos - Mecânicos (Mechanical Technical Services) |
          | `115` | Tradução/Interpretação (Translation/Interpretation) |
          | `116` | Transporte Marítimo (Maritime Transport) |
          | `117` | Transporte Terrestre (Land Transport) |
          | `118` | Zootecnia (Zootechnics) |
          | `119` | Zoologia (Zoology) |
          | `120` | Entretenimento (Entertainment) |
          | `121` | Terceiro Setor/Responsabilidade Social (Third Sector/Social Responsibility) |
          | `122` | Manutenção Predial (Building Maintenance) |
          | `123` | Mineração (Mining) |
          | `124` | Administração Comercial/Vendas (Commercial Administration/Sales) |
          | `125` | Administração Pública (Public Administration) |
          | `126` | Compras (Purchasing) |
          | `127` | Engenharia Metalúrgica e de Materiais (Metallurgical and Materials Engineering) |
          | `128` | Engenharia de Minas (Mining Engineering) |
          | `129` | Estética (Aesthetics) |
          | `130` | Fiscal (Fiscal) |
          | `131` | Serviços Técnicos - Eletrônicos (Electronic Technical Services) |
          | `132` | Tributária (Tax) |
          | `133` | Serviços Especializados - Açougue (Specialized Services - Butcher Shop) |
          | `134` | Serviços Especializados - Padaria/Confeitaria (Specialized Services - Bakery/Confectionery) |
          | `135` | Serviços Especializados - Peixaria (Specialized Services - Fish Market) |
          | `136` | Pesquisa de Mercado (Market Research) |
          | `137` | Petrolífera (Oil and Gas) |
        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: City name(s) of the jobs. E.g. `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: Country name(s) of the jobs. E.g. `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: |
          Chosen hierarchy codes. E.g. `hierarchy[]=30`

          | Codes | Description |
          |---|---|
          | `22` | Auxiliar/Operacional (Assistant/Operational) |
          | `26` | Técnico (Technician) |
          | `28` | Estágio (Internship) |
          | `30` | Júnior/Trainee (Junior/Trainee) |
          | `40` | Pleno (Mid-level) |
          | `50` | Sênior (Senior) |
          | `60` | Supervisão/Coordenação (Supervision/Coordination) |
          | `70` | Gerência (Management) |
          | `80` | Diretoria (Directorship) |
        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: Return only internship/trainee jobs
        schema:
          type: boolean
          default: false
        example: true
      - name: pcd
        in: query
        required: false
        description: Return only jobs for people with disabilities
        schema:
          type: boolean
          default: false
        example: true
      - name: gptw
        in: query
        required: false
        description: Return only jobs with the GPTW seal
        schema:
          type: boolean
      - name: gptwbenef
        in: query
        required: false
        description: Return only jobs with GPTW benefits
        schema:
          type: boolean
      - name: q
        in: query
        required: false
        description: Free-text search for job description/name
        schema:
          type: string
        example: analista
      responses:
        '200':
          description: Paginated list of jobs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacancyResponseOk'
        '401':
          description: User not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VagasResponseUnauthorized'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Token provided by the Vagas team, sent in the `Authorization: Bearer <auth_token>` header.'
  schemas:
    VacancyResponseOk:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        data:
          type: array
          description: List of jobs
          items:
            $ref: '#/components/schemas/Vacancy'
        facets:
          $ref: '#/components/schemas/Facets'
    Pagination:
      type: object
      description: Pagination info
      properties:
        current_page:
          type: integer
          description: Current page
          example: 1
        total_pages:
          type: integer
          description: Total pages
          example: 1
        total:
          type: integer
          description: Total jobs
          example: 2
    Vacancy:
      type: object
      properties:
        id:
          type: integer
          description: Job ID
          example: 1111111
        cargo:
          type: string
          description: Job title
          example: 4440 - Programer 1
        abertura:
          type: string
          description: Job opening date
          example: '2000-12-31'
          format: date
        posicoes:
          type: integer
          description: Open positions
          example: 3
        empresa:
          type: string
          description: Company
          example: Example company
        descricao:
          type: string
          description: Description
          example: Description of the Job
        localizacao:
          type: string
          description: Location
          example: São Paulo / SP / BR
        cidade:
          type: string
          description: City
          example: São Paulo
        hierarquia:
          type: string
          description: Hierarchy
          example: Senior
        divisao_id:
          type: integer
          description: Division ID
          example: 55555
        exclusiva_para_deficiente:
          type: boolean
          description: Flag to mark if job is exclusive for people with disabilities
          example: true
        descricao_html:
          type: string
          description: Job description with html format
          example: <p> Job description </p>
        latitude:
          type: number
          format: double
          example: 12.3456789
        longitude:
          type: number
          format: double
          example: 12.3456789
        url_navegacao_vagascombr:
          type: string
          description: Navigation URL
          example: https://www.vagas.com.br/vagas/v1234567
          format: uri
        url_navegacao_exclusiva:
          type: string
          description: Exclusive navigation URL
          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: Job URL
          example: https://www.vagas.com.br/vagas/v1234567
          format: uri
        areas_da_vaga:
          type: array
          description: Job areas
          items:
            type: integer
          example:
          - 14
          - 24
          - 11
    Term:
      type: object
      properties:
        term:
          type: string
          description: Term value
          example: parameter
        descricao:
          type: string
          description: Term description
          example: description
        count:
          type: integer
          description: Number of jobs
          example: 2
    FacetTerms:
      type: object
      properties:
        terms:
          type: array
          items:
            $ref: '#/components/schemas/Term'
    Facets:
      type: object
      description: Result facets (aggregations)
      properties:
        p:
          $ref: '#/components/schemas/FacetTerms'
        pcd:
          description: People with disabilities
          allOf:
          - $ref: '#/components/schemas/FacetTerms'
        a:
          $ref: '#/components/schemas/FacetTerms'
        b:
          $ref: '#/components/schemas/FacetTerms'
        c:
          $ref: '#/components/schemas/FacetTerms'
        gptwbenef:
          description: Great Place to Work benefits
          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: Error message
          example: User not authenticated
