Open Rogeralpha opened 7 years ago
Old issue, but leaving a link to a related one that seemed to work for me, in case anyone ends up here:
https://github.com/posquit0/Awesome-CV/issues/275#issuecomment-475865923
@NiallDillane I don't understand why this solution works, do you mind explaining?
Still doesn't seem like it's parsing properly when I run it through https://resume-parser.vercel.app/
Hi all, I found a solution that worked for me, got it from ChatGPT with the following Prompt: "How do I add pdf-parsable spaces between all words for bulleted items in the LaTeX Awesome-CV?"
Edited Response (Had to change "cvlist" from the original response to "cvitems"):
To add PDF-parsable spaces between all words for bulleted items in the Awesome-CV LaTeX template, you can modify the cvitems
environment. The cvitems
environment is used to create the bulleted lists in the Awesome-CV template. We'll customize this environment to include parsable spaces between words.
Here's how you can achieve this:
Open the awesome-cv.cls
file in a text editor.
Search for the definition of the cvitems
environment. It should look something like this:
\newenvironment{cvitems}{
\begin{itemize}[leftmargin=2ex, nosep, noitemsep]
\vspace{-2mm}
}{
\end{itemize}
}
cvitems
environment to include parsable spaces between words. We'll use the \hspace{}
command to add space between each word.\newenvironment{cvitems}{
\begin{itemize}[leftmargin=2ex, nosep, noitemsep, label=]
\setlength\itemsep{0pt}
\setlength\parskip{0pt}
\setlength\parsep{0pt}
\renewcommand\labelitemi{\hspace{0.5em}\textbullet\hspace{0.5em}}
}{
\end{itemize}
}
In this modification, we set the label
option to be empty and redefine the labelitemi
command to include \hspace{}
before and after the bullet symbol, effectively adding spaces between each bullet point and word.
Save the awesome-cv.cls
file after making the changes.
In your main .tex
document, use the updated Awesome-CV class:
\documentclass[11pt, a4paper]{awesome-cv}
\begin{document}
% Your CV content here, use the cvitems environment as usual
\section{Education}
\begin{cvitems}
\item First item in the list.
\item Second item in the list.
\item Third item in the list.
\end{cvitems}
\end{document}
With these modifications, the cvitems
environment in Awesome-CV will now display the bulleted items with spaces between words in the PDF output, making it copy-pasteable and searchable. The spaces between words will be handled automatically, and you don't need to manually adjust the spacing for each item.
Is there an offline tool we can run the example through in CI? Would be great to have as a test.
I'm not sure how much content there's supposed to be, but the webapp linked above doesn't error at least. Need something more concrete to go on here really.
The solution proposed by @chelseanbr does not work for me on the tool proposed by @Quang-Vinh
@OJFord you mean a tool that compares the .tex file (using detex
) and the extracted text from the .pdf or something more nuanced?
Actually less advanced would be fine: we have the example tex with known fixed (as fixed as the test) content; if we could just run an 'ATS' tool over the rendered example, we could then compare that output to a fixed test of the expected information.
$make example.pdf
$result="$(ats example.pdf)"
$expect='{
"name": "Claude",
"job-history": [ ... ],
...
}'
$test "$result" = "$expect"
sort of thing.
I've used some generic PDF parsers/text extraction tools before, but if there's something ATS-specific that'd be great, otherwise we'll be guessing whether a whitespace change or something will affect them when it changes.
I tried to search for specific ATS either as CLI or as a Python package but the only thing I found was the following tool, which under the hood utilizes pypdf
. But It does a decent job of creating a json of the relevant information if provided with an ATS-friendly template.
Over the past...almost decade...I haven't found a consistently satisfactory solution for this. With the recent progress towards creating accessible pdf files with LaTeX (see LaTeX 2023-06-01 Release Distributed and automatic tagging, maybe this will be easier and more consistent in the future.
I think the best solution for ATS compatibility is to upload a .txt, .rtf, or .docx version of the resume to the ATS let it process everything, then remove the original file and upload the pretty PDF.
Pandoc from the example .tex to .md isn't too bad. Maybe to a template or filter could simplify that for folks and guarantee every ATS will be able to process the text without spacing issues.
Most organizations use ATS now to parse information from your resume. Recruiters search buzz words using the ATS system as well. The .pdf output doesn't pass the ATS test i.e whenever i select all the text and paste it on a word or notepad, only a few lines show up. As you can see this will be a big issue and this will never reach the human eye. Any suggestions?