I love everything @SoloRev posted. It was great, but I figured I'd give a bit of advice as well.
I used to game semi-competively in my local region back in the day (Halo 3, Reach, COD MW2, BO1, BO2, BO3, Battlefield, ect). Here is some other things that I thought of that helped me get "over the hump" a bit.
To begin with, your gaming setup is crucial. Anymore, you've gotta have a decent display with good refresh. I use a 27 in Benq gaming monitor with 144hz refresh on 2560 x 1440 with 16:9 display. Also try to calibrate your display if possible. At least google a calibration for it. There are so many sites for this. I recommend https://www.tomshardware.com/ as they have a lot of good reviews and calibrations for most every gaming monitor. Go through a few to see which one works best for you. Make sure you go into your display properties and have the RGB full-range enabled or YCbCr depending on your setup. It definitely makes a noticeable difference...especially being able to differentiate between different black levels. Some monitors display all black levels the same, but using the full RGB range, or YCbCr combined with dynamic contrast and some type of extended black range, you can differentiate those darker shades and it really can help to spot an enemy who is being really cheap or a sniper camping in a dark corner of the room in top window.
As for the skills part of it, I'd say a lot of it is memorizing the spray patterns of the various weapons. That's what the pro gamers do. Practice the spray patterns at mid and close distances over and over and over till you have it down to muscle memory. Get used to the ranges and being able to identify which range the enemy is at quickly so you know what pattern to use or if it's better to go semi/small burst of 2-3 rounds rather than an auto-spray.
However, since you said your aim is pretty good, the next step is map familiarization and studying the enemy tactics. I honestly went through a period in my FPS gaming when I read Sun Tzu's "The Art of War" and tried to apply that logic to my strategies. Thinking "What does the enemy expect me to do in this situation"?, and deciding if I want to do the expected or do something else. "Make them think you're weak where you're strong and vise versa" Another one was to "Know yourself and your enemy." I found a great way to do this was to record or streaming matches and re-watch your matches, being extremely critical of yourself. Ask yourself at each stage, what was I thinking the enemy was doing at this point in time? What evidence did I have to support this? What evidence did I have against this? Is there anything I missed?
I found that re-analyzing my matches and being extremely critical of myself allowed me to see some flaws in my thinking in me handling certain scenarios. Specifically instances when I would be a bit reckless when pushing to take an objective when I could have actually drawn the enemy out and stayed much safer. In time, you will begin to really "see" the battlefield and be able to assess the unfolding situations and react more appropriately.
Also, having specific "situational" load-outs. i.e. objective taking under smoke cover loadout, support sniper loadout, mid defense loadout, objective defense loadout. I'm not sure if this applies so much in CS-GO though. This was more from when I was almost exclusively playing COD.
You can only control so much yourself. If you have a headset, try to communicate with your team with enemy positions as much as necessary. Communication is really key to winning objective-based matches. Familiarize yourself with the common names of the areas of each map so your callouts can be as precise as possible in as short of a time as possible. A callout that takes 8 seconds to relay a position is almost worthless. Work with your teammates to develop some overall beginning strategy for each round if possible. If they're not communicating or using a good strategy, at least let them know what you're doing and what your thoughts are, but don't become abusive about it. Anymore, online gaming has become super toxic, especially with the large skill gaps between some players. However, if you see someone being overly aggressive in their playstyle, let them know they can hang back a bit, or offer to take that advanded position from them if they keep rushing out and getting killed within the first 45 seconds of every match. Stupid or noob teammates can definitely make things extra difficult for the rest of the team so take into account for them if you notice it and adjust your strat if needed. Find a position where you can cover your chokepoint and possibly provide a bit of vision or cover-fire for them too.
Your lines of sight are crucial but you don't want to expose yourself. Make sure to present as little of a target to the enemy as possible. Use cover and wall hugging whenever possible. Be careful when peeking from cover and don't become predictable with your popshots when peeking. Also try to vary it up with where you're peeking from if possible. Don't keep popping up from the same spot on the headglitch or the same corner of the box everytime. This also can depend on what weapon the enemy has, especially AWP or rifles. Also, don't be afraid to change it up often. Don't keep going to that same box or headglitch in the corner even if you've been owning the enemy team from it. The same goes for pushing strats when on offensive. Don't keep rushing through the same choke everytime. Try faking a push using smoke to get the enemy team to lean towards that area, then jump down or go around through a different path to get on their flank or just rush the other objective site instead. Just switch it up often and don't get stuck on one strat on either end even if it's been working okay.
Keep working on your buying so you can buy on the fly if needed and get into the fight quickly. Setup a macro for some buys if you can. (I haven't played CS-GO in a few years so IDK if macros are allowed)
Sometimes you just need a break from it. I've taken a few days or a couple weeks off of FPS gaming at times to just get a break. Often you'll come back with a different perspective on something or at the minimum, you'll come back refreshed and ready for battle!!
Don't forget to practice, practice, practice, practice, and practice some more!! It's definitely true in competitive gaming that it takes 10000 hours of practice to fully master a skill.
Hope this combined with SoloRev's info above help you start fragging like crazy!!