This is indeed a very rough time to be graduating. You're unfortunately getting screwed. It happened to me too in '08/'09, so I know very well how shitty it can feel. Try to be stoic about it though and just worry about the things you can actually change, not what you can't change.
Here's my advice and what I would do in that situation again, though you should definitely adjust/adapt to your strengths/goals:
1. Don't "spray and pray" your resume out there (at least, don't do that to jobs you actually want). When jobs get tight it feels natural to want to spread your (resume) seed as widely as possible hoping one will germinate, but realistically that doesn't work. Instead I would find job postings that you want, and make yourself spend 20 to 30 minutes tailoring the resume for the job. Don't lie or even exaggerate, but don't include irrelevant information and definitely don't omit anything relevant. If it's something you have and it's mentioned in the job post, it should be on your resume, unless you don't think you could speak intelligently on the subject. For example I put in a job posting I needed someone with bash scripting experience, then interviewed somebody who put bash on their resume, but when I asked about it they hadn't done much more than just run simple commands. They didn't even know how to set a variable in bash. They did not get an offer.
2. Be willing to take something in QA or another adjacent area even if you feel it is beneath you (especially being from MIT. You went to a phenomenal school and deserve to be proud, but don't let that turn into counterproductive pride). Even the best school only partially prepares you for the workforce, and you can learn a ton even slinging test code. (to be honest, my time working in QA was one of the most enjoyable because I didn't have to deal with Product :-D). Being humbled to dust a few times in life has (IMHO) ultimately given me much better perspective on myself.
3. Take a look for Professional Services and/or Support Engineer roles that involve some coding. These are often a little less pay, but they are also more plentiful and the competition is much lower because many people avoid these roles. However, this can be a great way to get your foot in the door and pivot to a full SWE role 6 to 12 months down the line. You can also get some incredibly useful experience in these because you'll work will real customers/users and will learn a ton about product, bug hunting, and building clever solutions to solve real problems. You'll also gain industry experience in whatever industry your employer is in, and that can be invaluable for getting your next role. I worked with someone who started as an L1 support with no schooling, learned to code, started automating small parts of his job, and also learned a ton about the finance industry. He later got a fantastic job in large part because he knew a lot about loan origination and underwriting from working with customers. If you do this, talk to and get to know the engineers you work with. Not just to use them to pivot, but to actually get to know them as people and also learn from them. Many of them will be able to give you excellent advice and mentorship to help you get to where you want.
4. (this one can be a bit controversial but it's my opinion): Don't just look at local options. Moving sucks, but there are lots of great jobs in areas with rapid growth that will even sometimes pay for your move. I would definitely look in areas like Texas, Utah, and Colorado. I've even seen some interesting roles coming out of Arkansas, Chicago, and Minnesota as well. Hell, Boise Idaho has some good roles pop up here and there too, especially if you are interested in embedded systems.
5. Unless you are well differentiated in it, I would avoid chasing "AI" or even "Big Data" roles as those are insanely competitive and saturated right now, so you'll be competing against people with a ton more experience than you. Also everyone is currently throwing cash at AI, but I think the vast majority of those companies aren't going to see anywhere near the ROI they expect and will start slashing. As a n00b you'll be among the first to get the axe, and even if you don't you may find the work drying up and getting assigned stuff that isn't what you want to do. Generally speaking I recommend trying to work on whatever core product the company makes, excepting maybe if you're a researcher and it's a big tech co
Here's my advice and what I would do in that situation again, though you should definitely adjust/adapt to your strengths/goals:
1. Don't "spray and pray" your resume out there (at least, don't do that to jobs you actually want). When jobs get tight it feels natural to want to spread your (resume) seed as widely as possible hoping one will germinate, but realistically that doesn't work. Instead I would find job postings that you want, and make yourself spend 20 to 30 minutes tailoring the resume for the job. Don't lie or even exaggerate, but don't include irrelevant information and definitely don't omit anything relevant. If it's something you have and it's mentioned in the job post, it should be on your resume, unless you don't think you could speak intelligently on the subject. For example I put in a job posting I needed someone with bash scripting experience, then interviewed somebody who put bash on their resume, but when I asked about it they hadn't done much more than just run simple commands. They didn't even know how to set a variable in bash. They did not get an offer.
2. Be willing to take something in QA or another adjacent area even if you feel it is beneath you (especially being from MIT. You went to a phenomenal school and deserve to be proud, but don't let that turn into counterproductive pride). Even the best school only partially prepares you for the workforce, and you can learn a ton even slinging test code. (to be honest, my time working in QA was one of the most enjoyable because I didn't have to deal with Product :-D). Being humbled to dust a few times in life has (IMHO) ultimately given me much better perspective on myself.
3. Take a look for Professional Services and/or Support Engineer roles that involve some coding. These are often a little less pay, but they are also more plentiful and the competition is much lower because many people avoid these roles. However, this can be a great way to get your foot in the door and pivot to a full SWE role 6 to 12 months down the line. You can also get some incredibly useful experience in these because you'll work will real customers/users and will learn a ton about product, bug hunting, and building clever solutions to solve real problems. You'll also gain industry experience in whatever industry your employer is in, and that can be invaluable for getting your next role. I worked with someone who started as an L1 support with no schooling, learned to code, started automating small parts of his job, and also learned a ton about the finance industry. He later got a fantastic job in large part because he knew a lot about loan origination and underwriting from working with customers. If you do this, talk to and get to know the engineers you work with. Not just to use them to pivot, but to actually get to know them as people and also learn from them. Many of them will be able to give you excellent advice and mentorship to help you get to where you want.
4. (this one can be a bit controversial but it's my opinion): Don't just look at local options. Moving sucks, but there are lots of great jobs in areas with rapid growth that will even sometimes pay for your move. I would definitely look in areas like Texas, Utah, and Colorado. I've even seen some interesting roles coming out of Arkansas, Chicago, and Minnesota as well. Hell, Boise Idaho has some good roles pop up here and there too, especially if you are interested in embedded systems.
5. Unless you are well differentiated in it, I would avoid chasing "AI" or even "Big Data" roles as those are insanely competitive and saturated right now, so you'll be competing against people with a ton more experience than you. Also everyone is currently throwing cash at AI, but I think the vast majority of those companies aren't going to see anywhere near the ROI they expect and will start slashing. As a n00b you'll be among the first to get the axe, and even if you don't you may find the work drying up and getting assigned stuff that isn't what you want to do. Generally speaking I recommend trying to work on whatever core product the company makes, excepting maybe if you're a researcher and it's a big tech co