I applied for a position and didn't get it but the recruiter said I could send him the role I'm interested in. I have sent him a position I was interested in and he responded earlier but when I reached out again I didn't get a response. Do you think it appropriate to call/ email him again when it has been a few months?
If it's been a few months, you should absolutely reach out again. Persistence is key as long as you're not annoying (and sometimes being annoying is ok too!). Reaching out after a few months is great.
Relatedly, see my response to How to deal with a mentor ghosting you?
As a higher-level feedback, I wouldn't rely on recruiters to get your foot in the door at companies. Even better is if you can connect with the hiring manager or another engineer at the company.
You should reach out - Might as well try. You don't have much to lose as long as you're polite about it.
I recommend following the algorithm I describe here: Final round interview IC1/IC2
If you're having trouble with recruiters, try building up your network to get strong referrals: "How to get referrals?"