Abstract A cluster approach has been used for the simulation of the adsorption of oxygen and carbon monoxide on SnO 2 and CdS surfaces. Computations are based on an ab initio method, the local-density approximation and atomic orbitals as a basis set. Solutions are calculated self consistently. The atomic orbital nature (origin) of the cluster levels is traced by the projection onto the atomic basis set. The results refer to clusters modelling SnO 2 (110) and CdS (101−0) faces without any surface reconstructions. Energy levels related to metallic surface species with different coordination are described for the basic SnO 2 and CdS clusters, together with levels originating from O 2 and CO adsorbates. The shifts of the levels formed by chemisorbed complexes are described in connection with the band scheme of the semiconductor.