A job in .gitlab-ci.yml is a task or set of tasks that must be completed by a Runner. They are top-level entities within the .gitlab-ci.yml file, which are given an arbitrary name that's decided on by the author. It's a good practice to make the name descriptive to help summarize the purpose of jobs and make them easy to understand by others who might need to review or work with your CI/CD pipeline.
One thing that's important to note is that jobs are run independently of each other within the Runner, and thus different jobs can be picked up by different Runners. Jobs in the same stage (discussed as follows) can also be run in parallel on other Runners, allowing large pipelines to be broken down and completed faster than having to run ...