The issue here has two parts:
- Choose the right/best layout for the cover letter
- Add the title at the proper place
Because you did not tell us if you build your cv and the cover letter in one file I guess you do ...
So you have first to change for the cover letter the used head (it is easier to use an already existing layout than to complete rewrite the code for the header ...) like this:
\title{title of the job} % <============================================
\moderncvhead{3} % <====================================================
\makeatletter
\patchcmd{\makehead}%
{\ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}\\}%
{\ifthenelse{\equal{\@title}{}}{}{\\}}% <=============================
{}%
{}
Command \moderncvhead{3}
uses the header used in style banking
and with the following patchcmd
I simply deleted the predefined title. We add the missing title with the code:
\patchcmd{\makeletterhead}%
{\par}%
{%
\par%
\textbf{\@title}\\[2em]% <==========================================
}%
{}%
{}
\makeatother
Please see that \makeatletter
and \makeatother
are needed to be able to use @
in the code ...
Of course you can use another value instead my used 2em
to define the space between the title and the following To:
in line
\textbf{\@title}\\[2em]% <==========================================
So please see the following complete mwe
\documentclass[11pt,a4paper,roman]{moderncv}
\usepackage[english]{babel}
\usepackage{blindtext}
\moderncvstyle{classic} % <================================ classic banking head 3, body 3
\moderncvcolor{green}
% character encoding
\usepackage[utf8]{inputenc}
% adjust the page margins
\usepackage[scale=0.75]{geometry}
% personal data
\name{John}{Doe}
\phone[mobile]{0123-123456789}
\email{[email protected]}
\title{title of the job} % <============================================
\moderncvhead{3} % <====================================================
\makeatletter
\patchcmd{\makehead}%
{\ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}\\}%
{\ifthenelse{\equal{\@title}{}}{}{\\}}% <=============================
{}%
{error}
\patchcmd{\makeletterhead}%
{\par}%
{%
\par%
\textbf{\@title}\\[2em]% <==========================================
}%
{}%
{}
\makeatother
\begin{document}
\recipient{To}{Employer}
\date{\today}
\opening{Hi!}
\closing{Thanks in advance!}
\enclosure[Attachment]{CV}
\makelettertitle
\blindtext
\end{document}
and its result:

EDIT (for first comment):
To get a smaller gap between the name and the jobtitle add the following code
\patchcmd{\makehead}%
{\\[2.5em]}%
{\\[1em]}% <=============================
{}%
{}
Change my used [1em]
to a value fitting your needs ...
See the complete mwe
\documentclass[11pt,a4paper,roman]{moderncv}
\usepackage[english]{babel}
\usepackage{blindtext}
\moderncvstyle{classic} % <================================ classic banking head 3, body 3
\moderncvcolor{green}
% character encoding
\usepackage[utf8]{inputenc}
% adjust the page margins
\usepackage[scale=0.75]{geometry}
% personal data
\name{John}{Doe}
\phone[mobile]{0123-123456789}
\email{[email protected]}
\title{title of the job} % <============================================
\moderncvhead{3} % <====================================================
\makeatletter
\patchcmd{\makehead}%
{\ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}\\}%
{\ifthenelse{\equal{\@title}{}}{}{\\}}% <=============================
{}%
{}
\patchcmd{\makehead}% <=================================================
{\\[2.5em]}%
{\\[1em]}% <=============================
{}%
{}
\patchcmd{\makeletterhead}%
{\par}%
{%
\par%
\textbf{\@title}\\[2em]% <==========================================
}%
{}%
{}
\makeatother
\begin{document}
\recipient{To}{Employer}
\date{\today}
\opening{Hi!}
\closing{Thanks in advance!}
\enclosure[Attachment]{CV}
\makelettertitle
\blindtext
\end{document}
and its result:

EDIT (for your edit in question):
You need to add another patch to the code:
\patchcmd{\makehead}% <=================================================
{\\\null}%
{\\}% <=============================
{}%
{}
With the complete mwe
\documentclass[11pt,a4paper,roman]{moderncv}
\usepackage[english]{babel}
\usepackage{blindtext}
\moderncvstyle{classic} % <================================ classic banking head 3, body 3
\moderncvcolor{green}
% character encoding
\usepackage[utf8]{inputenc}
% adjust the page margins
\usepackage[scale=0.75]{geometry}
% personal data
\name{John}{Doe}
\address{111 nowhere street}{nowhere, nw}{11111}
\phone {(111)-111-111}
\email{[email protected]}
\title{title of the job} % <============================================
\moderncvhead{3} % <====================================================
\makeatletter
\patchcmd{\makehead}%
{\ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}\\}%
{\ifthenelse{\equal{\@title}{}}{}{\\}}% <=============================
{}%
{}
\patchcmd{\makehead}% <=================================================
{\\[2.5em]}%
{\\[1em]}% <=============================
{}%
{}
\patchcmd{\makehead}% <=================================================
{\\\null}%
{\\}% <=============================
{}%
{}
\patchcmd{\makeletterhead}%
{\par}%
{%
\par%
\textbf{\@title}\\[2em]% <==========================================
}%
{}%
{}
\makeatother
\begin{document}
\recipient{To}{Employer}
\date{\today}
\opening{Hi!}
\closing{Thanks in advance!}
\enclosure[Attachment]{CV}
\makelettertitle
\blindtext
\end{document}
you get:

banking
style. For an example output see here: mirror.physik-pool.tu-berlin.de/pub/CTAN/macros/latex/contrib/…