This problem has becomes of interest lately in epidemiology, so the following answer is from that point of view.
First, we need to distinguish where the sample originates from. If the biased sample comes from the population (i.e., it is nested in the population), then these problems have been referred to as 'generalizability'. If the sample comes from a different population (e.g., we are using data from Ohio but the population of interest is North Carolina), then these problems are referred to as 'transportability'. This distinction is important, since it will influence what estimators are selected.
In order to generalize results from the biased sample to the target population, we need to make a few (unverifiable) assumptions. Namely, we will stipulate that the outcomes and selection into the sample are independent (exchangeable). Generally, we would make some conditional exchangeability statement. For example, you may choose (possibly incorrectly) to assume that selection and all your various outcomes are independent given age, gender, and geography. Along with this assumption, all the values of the covariates for exchangeability that are in the target population need to be seen in the biased sample.
For estimation, there are a few options. As you suggested, you could choose to re-weight the biased sample to 'stand-in' for the target population. These are sometimes called inverse probability of selection weights (IPSW). However, you could also fit a model in the biased sample with the continuous outcome modeled by the factors for exchangeability. Then the estimated coefficients could be used to predict the outcome values in the target population data. Both of these approaches (and the identification conditions) are detailed in this excellent paper. There is also augmented inverse probability of selection weighting, which is doubly robust (description of that estimator can be found here).
Transportability relies on related identification conditions. Additionally, there are similar adaptions of the estimators. However, there are some important differences. For example, the weighting approach now uses inverse odds of selection weights. Details on the weighting estimator can be found here and other related estimators can be found here.
Note: most of these estimators talk about generalizing or transporting causal effects, but your problem can just be viewed as a one-sample problem (a simplification of most of the problems consider in the above papers). This means that the assumptions and adjustment methods are treatment / exposure are extraneous to your application.