We (Canada) have a temporary foreign worker policy. People come over to do the jobs we Canadians don’t want to do anymore. Pick vegetables, work in the honey farms, work at fast food joints and as workers in care homes and hospitals.
Sorry, but this isn't true. There are lots of locals who want those jobs. What happens is that illegal immigrants undercut local workers (get higher net pay, for lower gross pay, by paying no taxes) and legal immigrants are allowed to be outright racist. Why might you go to a local McDonalds and see all the workers be immigrants? It's not because only they are willing to do the work, it's because at some point one of them was appointed to be supervisor and they then only hire their own. I've seen it first hand - one of our kids first jobs was at a fast-food joint, and a few of his friends worked there too. An immigrant became supervisor and pretty soon none of them ever got a shift again and the place is now staffed entirely by other immigrants. Nothing is ever done about racism against native white populations event though it clearly happens.
The temporary foreign worker programme should be for jobs that literally cannot be filled because there is no one with the skills to meet the demand. I came to Canada as a temp foreign worker, because I had IT skills that companies couldn't fill and it had to be certified that was the case.
This is the best form of foreign aid. These workers send a lot of money home and it goes directly to the people who need it, not some corrupt politicians. It is a win, win situation as we are short of labour and it contributes to both our economy and theirs.
The best form of foreign aid is fair trade and not supporting corrupt regimes. Encourage hard work and democracy in those countries, don't give handouts that benefit dictatorships.