A candidate block is a temporary block that miners first mine to receive the block reward. A miner receives a block reward when it produces a candidate block with a valid block hash or Merkle root and broadcasts this block to the network’s nodes. These nodes will verify the veracity of the hash. This way, each block on a blockchain starts its existence as one of the many pre-validated blocks.
Suppose there are 100 blocks in a blockchain. Each time, a new transaction arrives in the system that miners need to validate before including it to the existing blockchain. This newly arrived transaction will be stored in a memory pool together with some other unverified transactions. From the memory pool of unverified transactions, miners pick any from those and compete against themselves to solve it until it becomes a verified transaction that will be added to the blockchain. The block that a miner created to have the transaction verified is considered as the candidate block.