It sounds like you have a lot going for you and don’t have any glaring flaws or automatic disqualifiers. It sounds like it does come down to your confidence and attitude. Read a book about flirting. Your book choice shouldn’t be based on getting laid, because those are geared towards one night stands and picking up girls at bars or clubs - which doesn’t sound like your scene.
Find one for flirting and go out and practice. Your goal should start with getting a smile and some reciprocity. Don’t try to hit a homer on your first swing. Your personality will open up and you will naturally be more flirtatious. This will get you a girlfriend and eventually laid.
You’re super lucky because a good majority of people will have automatic no’s. Having none puts you more of a, as Hitch would say, “Just don’t fuck it up” category. They want to like you. If you haven’t watch that movie ASAP.