On the point answer:
In the file resume.csv of the template the environment that is used to create these "sections" is defined as:
% Defines the rSection environment for the large sections within the CV
\newenvironment{rSection}[1]{ % 1 input argument - section name
\sectionskip
\MakeUppercase{\bf #1} % Section title
\sectionlineskip
\hrule % Horizontal line
\begin{list}{}{ % List for each individual item in the section
\setlength{\leftmargin}{1.5em} % Margin within the section
}
\item[]
}{
\end{list}
}
As you can see, the environment starts with the command \sectionskip that is defined later with the code:
\def\sectionskip{\medskip}
(just at the end of the file).
To solve the problem you could redefine the \sectionskip command like:
\def\sectionskip{\vspace{1pt}}
(where 1pt is a real small -almost invisible- length).
Even if you place there 0pt or even a negative length, you will discover that the space between the sections will be still big enough because the environment rSection as defined above, will create an invisible list (after reading its argument) and this list will give some extra space.
To control these spaces, you have to:
- For the vertical space inside all the sections of the document (and between their items):
Change \parskip length with the command:
\setlength{\parskip}{4pt} % Replace your desired length here
And this has to be done before the command \begin{document} to take effect in the whole document's sections
For the vertical space inside all each specific section (and between their items):
\parskip 4pt % Replace your desired length here
And this has just after the command \begin{rSection}{<Name of section>} to take effect only in the specific section.
Finally, to control the space between the items of rSubsections you may want to change additionally the length \itemsep by using the command:
\itemsep 3pt % Replace your desired length here
just after the \begin{rSubsection}{<Name of subsection>}{<Some stuff>}{<Some stuff>}{<Some stuff>}... (the rSubsection environment takes for arguments and its environment is also a list)
Attention: The following part is more important than all the above solutions:
As mentioned in the other answer the documentclass that you used is really outdated and should not be used anymore. You can see it in the template that contains the code code like:
\newenvironment{rSubsection}[4]{ % 4 input arguments - company name, year(s) employed, job title and location
{\bf #1} \hfill {#2} % Bold company name and date on the right
\ifthenelse{\equal{#3}{}}{}{ % If the third argument is not specified, don't print the job title and location line
\\
{\em #3} \hfill {\em #4} % Italic job title and location
}\smallskip
\begin{list}{$\cdot$}{\leftmargin=0em} % \cdot used for bullets, no indentation
\itemsep -0.5em \vspace{-0.5em} % Compress items in list together for aesthetics
}{
\end{list}
\vspace{0.5em} % Some space after the list of bullet points
}
In this code the usage of \bf and \em commands shows that the template has been created many years before and haven been updated from then. An update on this could be
a replacement for these commands with commands like: {\bfseries #1} and \emph{#3}\hfill \emph{#4} but this is not the only problem (not for your choice and not even for the template).
The most important is that you got your CV template from the link that you provided when actually the real template in this site is here:
In overleaf cite the cv templates can be found on the link:
https://www.overleaf.com/latex/templates/tagged/cv
and the link that you used is:
https://www.overleaf.com/gallery/tagged/cv
that is just a place that anyone can add its cv even if doesn't really know how to use the template.
Finally, check inside tex.stackexchange's question about available templates for CVs and keep in mind that in most cases it is more important to use a template that you understand (at least how to use it) than to use a complicated template that sems to give a "beautiful" result but need hacks even to change the smaller property of the output.
Welcome to TeX.SX!