Sourcify runs a "monitor" that listens to certain chains and checks contract creations (currently only checking tx's with
tx.to === null and can't catch evm level contract creations). You can see which chains are monitored in Supported Chains table under "Monitoring" column.
If the monitor notices a contract creation it checks the contract bytecode for the appended metadata hash and will try to fetch the metadata file from Swarm or IPFS. If it succeeds, it further tries to fetch the source files. The source files will be either embedded in the metadata file in text form, or they will have IPFS hashes in the metadata file. If all the files are found, the monitor tries to compile and verify the detected contract with the fetched files.
This means, for the monitored chains, the contract deployer does not even have to manually verify the contract at Sourcify. As long as the metadata and the source files are published around the deploy time (defaults to 30 mins after noticing the new contract), the contract will be verified automatically.