This paper presents a theory of the labor market matching process in terms of incentive-based, two-sided search among heterogeneous agents. The matching process is decomposed into its two component stages: the contact stage, in which job searchers make contact with employers, and the selection stage, in which they decide whether to match. We construct a theoretical model explaining two-sided selection through microeconomic incentives. Firms face adjustment costs in responding to heterogeneous variations in the characteristics of workers and jobs. Matches and separations are described through firms' job offer and firing decisions and workers' job acceptance and quit decisions. Our calibrated model for the United States can account for important empirical regularities, such as the large volatilities of labor market variables, that the conventional matching model cannot.