Plot
Gabriel is a low-ranking guardian angel whose job is to save people from crashing while texting and driving, but he wants to save lost souls which is the responsibility of another angel named Azrael, who is one of the few angels allowed to use his ability to "Guide a soul”. One day, he saves Arj, an aspiring documentarian who does odd jobs, works part time at a hardware store and lives in his car. Curious, Gabriel observes Arj for a few days.
Arj begins dating his coworker Elena who is trying to unionize the store. While doing tasks for hire, Arj meets Jeff, a wealthy tech investor, and Jeff hires Arj as his assistant. Jeff recommends a supposedly affordable restaurant for Arj to take Elena to, but when the restaurant ends up being very expensive, Arj uses Jeff's company credit card to pay for the meal. Jeff fires him as a result.
Arj discovers the app he previously used to earn money has banned him and he turns to donating plasma. He falls asleep afterward in a Denny's and discovers his car has been towed due to unpaid parking tickets. Sensing that Arj has hit rock-bottom, Gabriel shows himself to Arj and presents him with a vision of his future to inspire hope, but Arj perceives his future to be bleak. Gabriel tells him that having wealth and success like Jeff will not fix his problems, and switches Arj and Jeff's lives to prove his point. Arj discovers that he is now a wealthy tech investor with all of Jeff's assets and Jeff is now his assistant. To Gabriel's disappointment, Arj is ecstatic and realizes that being rich has solved most of his problems.
Gabriel's actions are discovered by Martha, his supervisor. She tells him that Arj needs to agree to switch back lives with Jeff, and takes away Gabriel's wings as punishment, which deprives him of some of his angel powers. During a party, Gabriel confronts Arj and gives Jeff his memories back, only to inadvertently send him into shock. The three discuss the situation, and Arj eventually agrees to switch back lives after a few more days, but refuses to assist Jeff financially so Jeff can see how Arj has lived. Gabriel tags along with Jeff, and they move into a motel and attempt to find income sources. They struggle to make money and end up sleeping in their car, and Jeff is shocked by how poorly gig workers are treated, as it's a business he has inadvertently made worse.
Arj approaches Elena and begins a relationship with her, but she breaks things off when he implies her union work is unimportant. While driving, he texts Elena in an attempt to reconcile and crashes his car, ending up in a coma. Martha fires Gabriel as the situation has become worse and turns him human. Gabriel gets a job as a dishwasher, and soon becomes frustrated by how difficult it is to make a living.
Arj wakes from his coma and feigns memory loss in order to avoid switching back with Jeff. After being fired as a delivery worker because the company has switched to robotic deliveries, Jeff plans to sneak into Arj's home and fence his expensive watches. He and Gabriel arrive as Arj is throwing himself a birthday party.
Arj encounters Elena working as a caterer at the party. At the end of the night, Elena tells him that being wealthy is not something she wants to be, but wants to continue to fight for what she believes in, even if it will not make her rich. Later, Arj stumbles on Jeff attempting to steal the watches and, frightened, shoots him in the arm and accidentally reveals his memory loss was fake. At the hospital, he agrees to switch back, but Gabriel says it cannot work unless Arj actually desires to go back to his own life out of hope and not merely guilt. Martha visits Gabriel and tells him that other people can inspire hope in each other; they do not always have to do it on their own or need angels.
Arj, Jeff and Gabriel go cumbia dancing with Elena and her friends. Arj tells Gabriel he is afraid of switching back because he will be struggling again and does not want to face the unknown. Gabriel tells him that he was scared after becoming human since he did not know what would happen, but while he has struggled with chain smoking, he has also enjoyed many worldly pleasures and had come to love everyone that he has met. Reassured by Gabriel's words, Arj willingly switches lives back with Jeff.
Arj is transported back to the time right after his car was towed, and Jeff is transported back to his normal life. Jeff pays Arj's impound fees, and during a meeting of one of the food delivery apps he invested in, demands to his board of directors that they treat the people working on the app much better with benefits and higher pay. With a new lease on life, Arj begins work on a documentary about gig workers and continues his romantic relationship with Elena, as Gabriel watches over them.
In the final scene, Arj and Elena have gotten tacos, and Arj leaves a taco behind for Gabriel, as he had previously promised to do. After a pause, the taco folds up and slowly lifts up off of the plate.