One of the most common mistakes engineers make when applying for jobs is that they don't treat their job search like a funnel.
Your job search funnel will look roughly like above (though your steps may differ). You start at the widest part of the funnel (Initial Contact with a company), then when you advance to each succesive part of the funnel, there will be a dropoff (either you or the company will decide to not continue the process).
The first step is to make sure the funnel is full enough! It's quite common for an engineer looking for a job to be disheartened that they haven't gotten any job offers, but when asked how many companies they've filled their funnel with, the number will be way too low. Don't be afraid to sign up for multiple job search sites (eg. AngelList, Triplebyte, Hired) to make sure you have enough opportunities to fill your funnel!
Once you figure out how to fill the funnel with volume, you should understand your conversion rates between each stage of the funnel. For example, if you reach out to 100 companies, and you hear back from 30 of them, you have a 30% conversion rate from Initial Contact to Phone Screen. Make sure you keep track of this data (in a spreadsheet or elsewhere), for what is measurable is what is fixable. Doing this is important because it allows you to...
Now that you have volume going into the funnel and are able to measure conversion rates, you can treat your job search like an actual system, where you can debug and fix individual parts. If your conversion rate to phone screen is too low, perhaps you need to improve your resume. If you're getting lots of interviews but not converting any to job offers, perhaps you need to work on your interview skills. Take the guesswork out of your process, and keep debugging your job funnel logically!