One little tip I learned the hard way: an applicant tracking system (ATS) can claim to have imported your fine-looking Word or PDF resume, but that does not mean that it has correctly parsed it and populated the key fields (eg skills) that it shows to the hiring manager.
The problem seems to be that ATSes struggle with the "modern" style of resume, much beloved of Word template authors, where you might have a left column with your contact details, github, and maybe some skills and then a borderless table on the right side with your positioning statement and job history.
I went from zero callbacks to 80% after I junked Word and rewrote my resume in a much more old fashioned, linear format. I used Overleaf (LaTeX) like it was 1999 and exported to PDF.
I have seen one behavior with ATS that was actually tracked down and might hit fellow HN readers. A recruiter I worked with at a company asked me why I didn’t have any experience with artificial intelligence. I said it was all over my resume - I’ve been in the field for more than a decade. He said that it didn’t show up until that ATS.
It turned out the ATS didn’t properly parse ligatures like “ffi”, “fi”, etc. It rendered them as a blank space, so “artificial” became “arti cial”. I turned over ligature rendering in my resume and started to get more callbacks.
Upon further inspection, I discovered that a lot of LLMs also have problems with ligatures and just ignore them when fed a pdf.
So, maybe those annoying job apps where you upload a resume and still have to fill everything in an HTML form aren’t the worst thing.
Latex and git has been advantageous to authoring a resume for me. It separates the layout design ant content.
“Oh no it’s 2 pages with only education on p2.”
Quickly comment out a bullet and print off a fresh 1 page pdf. I don’t use dumb words or phrases now to fit layout, at least far fewer. And git makes me less worried about deleting when it isn’t working.
One pattern i use, that i think makes things simpler, is to have a layout/contact template with definitions, then different context specific main latex files inputting from a sub directory of section blocks: experience, skills, education, etc.
I’d thought I was slick with word table layouts for sections, until a counselor told me the table structures persist in the supposedly flat pdf.
I wish there were an standard optional JSON attachment with a ridiculous small kb size limit to upload along with a human readable resume to help out the user data AST parser.
Another option is Typst, which claims to simplify the workflow for producing similarly structured documents.
Here's an example of a simple resumé [0].
You can see in the "Quick Start" section how the resumé template is used, which is very similar to how you described yours.
I’ve heard of typst before. A light language for better markup sounds great.
LaTex is a dark art and I just repeat basic incantations learned from the elder boards.
But, I cannot bring myself to write docs in a web browser and use web app storage. I have a personality disorder that requires me to use a local text editor for personal use cases.
Also I will buy a perpetual license for software. Like sublime text i just renewed a 3 year license to text+merge.
I get that subscription licensing is better for the dev business but I can’t do it.
I may be a tad late, but typst does have a compiler you can use locally with your favorite local text editor.
Cool, I will try it. Thank you
> I wish there were an standard optional JSON attachment with a ridiculous small kb size limit to upload along with a human readable resume to help out the user data AST parser.
AFAIK one can embed arbitrary RDF into PDFs, and then one wouldn't need an extra field https://pdfa.org/wp-content/until2016_uploads/2011/08/pdfa_m...
Blaming the ATS is a popular myth.
There may be edge cases where some obscure software can't parse a weird resume format, but in general if you put anything remotely resembling a common resume format (Company name, dates worked there, optional description and/or bullet points) it will be parsed properly.
I'm in a big Slack where people ask and give career help. Several hiring managers have offered to test people's resumes on their company's ATS over the years. Nobody has ever found a combination that actually failed the ATS except when it was an obvious problem (like someone who made their resume in Illustrator) or an obvious user error (exporting a resume as an image).
I wouldn't say it's a "myth". My experience is a lot more like the OP's than what you describe.
A few job sites, like WorkDay, have mangled my PDF resume every time I upload it. Like the OP, I've had to massage the layout and formatting to make it more compatible.
It's not a myth (I wrote ATS systems, and you usually just pay some third party to do the core parsing job as a library or a service and take your failures on the nose) but at the same time most recruiters are NOT going into past resumes and filtering through them, and most of the wide shot resume hits you get on linkedin are for the lowest tier of jobs.
Almost all recruiters are "most recent resume in" type of folks or "curated long term list" type of folks - they'll either circle you for years trying to get you hired for something or they'll forget your name in 25 minutes.
Same experience from me. Most website will show you the result of the CV parsing and in the end I find it takes me less time to populate the different parts manually on the recruiter's website than to try to correct the mess those systems made with the risk of errors it introduces. I wish there was some kind of json/xml standard for CVs.
Same. Instantly got two hits back after reformatting. I also simplified my experience section by reducing technicals and focusing more on role responsibilities.
My sense is _most_ resumes are actually reviewed by a human. Most job postings aren't getting 1000s of applicants. If they are, 3 people can review 1000 applications in 2 hours (30s look).
Most companies are not Google. I did some hiring (3 or 4 positions) at a 10 year old stagnant growth “startup” and we got at most 10 applications per day to these engineering positions. This was 2022-2024 so not just the good years.
I've been applying to jobs for the last three months and many companies use systems that automatically parse your resume and then let you manually correct the parsed data. It's nearly always a mess, and I use a very straightforward linear resume template.
It's possible that there is some selection bias here, where mediocre parsing systems give you the option to manually correct everything because they know they are mediocre. I remain skeptical.
I make my resume in Figma, would that break it?
Would you yourself be able to write a Figma-generated PDF parser that reliably extracts necessary semantic content from rasterized text with random layout? If no, likely an average programmer that wrote the application tracking system wouldn't be able to do that either. If yes, then you are very good, and top companies are hunting for you already, you don't need a Figma resume.
Good point! I actually tried my figma pdf resume with the open parser tool mentioned in the thread and sure enough, complete garbage output.
When applying for jobs via LinkedIn it’s very important to use a PDF. A huge number of people submit Word documents, however, LinkedIn doesn’t render them in the browser. Given that most roles get hundreds of applications, unless someone’s previous roles really catch my eye, I am probably not going to download anything.
- [deleted]
From my experience, if you are randomly applying via an ATS without a prior outreach , you’ve already lost.
Especially for remote positions, there are hundreds of people applying for every open req and it’s hard to stand out
How do you do the prior outreach without coming across as spammy though ?
That I don’t have a general answer for. Except for the year before last, it’s been responding to recruiters that reached out to me.
The year before last when I did do targeted outreach, it was because I both had relevant experience in a niche AWS service and I was a major contributor to an open source official “AWS Solution” while I was at AWS that was popular in that niche.
But that trick had a very small window.
So I guess the answer is do something that allows you to stand out from the crowd and then you can do prior outreach and tell them why they should hire you over someone else.
My biggest piece of advice is don’t be a “ticket taker”. Volunteer to lead larger initiatives.
> My biggest piece of advice is don’t be a “ticket taker”. Volunteer to lead larger initiatives.
Sure. But who’s going to do all those boring tickets? I know people need to work for themselves, but this just feels so wrong.
I'd recommend before others go too far down the ATS rabbit hole to checkout the wiki from /r/EngineeringResumes
https://www.reddit.com/r/EngineeringResumes/wiki/index/#wiki...
(In short, they might not be as important as you think they are)
And please do not pay anyone for "ATS compatible resume templates" or other ATS related services.
I don't think people realize how many of the ATS myths have been promulgated by people trying to sell services to job seekers. The ATS myth resonates with people for some reason, so desperate job seekers will often pay (unnecessarily) for various "ATS friendly" templates or ATS reviews.
Can you elaborate on the exact layout syntax these ML idiot savant agents want to read? Lack of an industry wide standard data interface makes this terrible.
Take your resume, select all, copy, paste into notepad. Does it still look how you expect? Then youre ok. Otherwise, fix it until it does.
That's it. That's all you need to do.
Even that can fail. I’ve had multiple cases now where my name (!) was auto-parsed wrong in a way human would never do, not even after copy-pasting into Notepad.
The reason? My resume lists my name as follows, where I means the initial for my middle name:
Firstname I. (Nickname) Lastname
And yes, even professionally I do use my nickname and my last name, except for things which must match my government ID, such as offer letters and payroll/tax records, where of course I omit Nickname and use the legal Firstname as well as sometimes the middle initial or full middle name.
With this format, how does Personio parse my name? It thinks I’m called Firstname Nickname. No human would make this mistake, nor would a copy-paste into Notepad cause a human to do that.
And if it has any LLM intelligence at all, it should know that this is unlikely, because Nickname is actually a very common nickname for Firstname, so it should suspect a disperse and have a human double-check its conclusion. Alas.
I’ve also had other issues with these systems misparsing my employment history, since they don’t always properly parse jobs that span corporate acquisitions (changing title and employer at that point but being the same job) and are accurately reflected as such on the resume.
>Even that can fail. I’ve had multiple cases now where my name (!) was auto-parsed wrong in a way human would never do, not even after copy-pasting into Notepad. [...]
sounds like they did something like:
which is an issue, but unrelated to what everyone else is talking about, which seems to be how text data is being parsed/encoded inside pdfs. Pasting into notepad would check for that issue, but obviously wouldn't do anything for bad first name/last name extraction logic.first_name, last_name = name.split(" ")
I felt that the general topic was "software failing to do the right thing parsing the text in PDF resumes in ways a human would get right", which includes all of these types of problems, not specific to encoding issues. But, sure.
I think mashing up of names happens a lot, since they are not common words. Personally I don't see what the problem is of your name being mangled in a parsed resume, other than when it would look offensive. The name mangling can get easily cleared up after first contact with a real person.
I’ve indeed cleared it up quickly every time it’s happened, but in my opinion, it makes the company look unprofessional in an easily avoidable way. (And yes, I’ve been in the hiring manager role myself - I’d feel the same way if this happened to one of my candidates.)
I call this easily avoidable because name is usually a separate field in the application or referral forms, so this is the bad auto-parsing overriding accurate manual input.
Parsing names is like writing a time library. Sounds easy until you learn the hard way that it definitely isnt.
Some examples that come to mind from my experience are applicants with Chinese names that also use a western name professionally ("Yu-Chen Liew, but I go by Janet"), Spanish names that include patronymics ("Penelope Cruz Sanchez") and cultures that place the family name first ("Park Lee"). Maybe (f,l) = split(name, " ") works in some very homogeneous country like Iceland, but it sure doesnt work in the US.
Yes, agreed - except that the Spanish name convention you describe isn't about patronymics exactly. Patronymics are something like a given language's version of "son [or daughter] of X" where X is a given name of the parent (usually the father).
By contrast, Spanish last names simply use two last names, with a child taking one last name from each parent. Traditionally this is the father's first last name followed by the mother's first last name, though efforts toward gender equality have made the law more flexible nowadays in both Spain and many other countries.
It doesn't violate Spanish naming conventions for given names to be reused in the next generation, and some families do that, but that isn't patronymic since it's not a "son/daughter of X" name, just a reused given name.
Gah. Once again I notice an autocorrect typo beyond the edit window: “disperse” should of course read “misparse”. Thank you iPhone keyboard.
This depends on the PDF viewer. I recommend trying a couple different ones (at least Acrobat and macOS Preview).
I can only speak for what worked for me. A shorthand heuristic might be that if the resume can be read in linear fashion by a screenreader without any weirdness or non sequiturs, it's probably pretty good (another argument in favor of paying attention to accessibility!)
In my case, I had a simple layout with sections clearly delineated and very simple formatting (bulleted lists). Dates were spelled out eg September 2024 rather than 9/24. UTF-8 throughout. No difficult latex packages, just classic ones like enumitem and fancyhdr.
Word/Google Docs -> PDF conversion is perfectly fine, and every system will understand it. Just don't try to get fancy with layouts and stick to headings, subheadings and bullets. People reading the resume will appreciate this as well.
This is how I formatted my resume using Pandoc to generate a word document from a Markdown file. Having everything in Markdown also made it easy to quickly create customized resumes by reordering specific sections or lists in a section as well as tracking changes in Git.
There is an industry standard - HR-XML[0] (disclaimer: I was on the committee for a little while). But I would be surprised if any of the job boards let you import it directly.
Frankly, plain text rendered to PDF is probably going to be the most easily parsed by their systems. If they let you add attachments separate from your resume, then stick your "beautified" resume there.
[0] For the curious: https://www.hropenstandards.org/
Get a boring LaTeX template like "Jake's Resume"
I've spoken with two technical recruiters who say they prefer reading templates instead of hand-crafted Resumes on top of them also parsing better in the ATS system ):
Can confirm a similar attitude from an HR person - they prefer a single-column, easy to scan resume that follows a tried and trusted standard structure and layout.
I wish I could just send JSON…
Please see the job history array.
What happens when companies come up with competing json schemas and you need to massage your data into 15 different schemas?
The other approach is to apply to smaller companies that will actually have human read your CV. Depends on where you want to work of course.
They don’t read your resume either, it goes into Greenhouse or some other ATS. Either gotta work with the parser or have a personal referral.
I've used LaTeX, online resume generators and Google Docs templates, but they were unfruitful. I've applied to 350 jobs and only got one screening recruiter call (then was ghosted). Despite having 2+ YoE and published research as well as having worked as a contractor for FAANG (I even made one loads of money in stock after they applied my recommendations)!
If you've applied 350 times with that kind of success, then it might time to revise your approach, your CV or both.
I've never found good leads with cold approaches. Even when getting contacted and receiving an offer, it was always low salaries on that method. What worked best was going to related events, talking to people hosting the booths, talk to presenters of topics where I'm an expert and this way get warm introductions.
Yeah, it's probably because I took a non-tech job (stock broker) for the health insurance. Also I went back to college after I quit my last FT cybersecurity job. I also used ApplyAll which may of messed up parsing my resume in Workday.
If you're into tech development nowadays, it goes a long to list a portfolio of things you've built. That goes a long way to tell an employer if you have the skills to build what they need.
Yeah, I just have a text file and convert it to HTML for people that want to view it on the web. Has never been a problem. I'm not a graphic designer and if that's a skill you want, you got the wrong girl.
I have done two different types of resumes; long and sort. When I was learning about resumes in high school and college, they said to just list your jobs and maybe some key skills. I have been told this is useless to recruiters. So I rewrote things to have a couple paragraphs about major projects at this jobs. I have been told this is too long and nobody has time to read it. So now I have both and you can pick the one you want.
I got laid off recently so this is fresh in my mind, but I got a job through my network instead which did not involve a resume or interviews. That's really how it should be. (I'm kind of just waiting for the founders from my last startup to start something new... they didn't survive the reorg either, which was a "sort by salary descending and only keep the last 3". The joys of having your software startup bought by an indecisive large company that doesn't do software ;)
> I got laid off recently so this is fresh in my mind, but I got a job through my network instead which did not involve a resume or interviews. That's really how it should be.
Not sure about the 'should', but I think it is. Over the years I had the pleasure to work with quite a few good people, but there were also some buffoons (not counting those in marketing). I can only imagine, that the resume of the latter will look more appealing.
- [deleted]
+1 here. I have two resumes. One looks nice/modern and its what I send recruiters/managers once I have an interview scheduled. One is an ugly, to me, plain looking word doc that application tracking systems can gronk.
Coming back here to really thank you for this. I converted my resume into LaTex today then to pdf. Began uploading it to a few listings and where I would previously have to go back in and correct things this is no longer happening. Much thanks.
- [deleted]
> much beloved of Word template authors, where you might have a left column with your contact details, github, and maybe some skills and then a borderless table on the right side with your positioning statement and job history
The design always struck me as a clumsy attempt to take up space.
For me, a similar approach is actually the exact opposite. It's always a struggle to fit a good summary of your professional life on a single page and being able to put some short stuff in multiple columns can help you save space. For example I usually have certifications, trainings, etc in two columns since they're often fairly short entries.
I wonder if there's an open(-source) ATS system out there against which we might test such simpler templates?
I would try with https://www.open-resume.com/resume-parser
they offer the option to parse your cv and see what "comes out on the other side"
I am not sure whether the idea of the parser is to be a starting point to then use the editor, or a test.
Openresume really butchers mine despite using a pretty standard latex template. I wonder if my resume is really that bad?
It parses "Jake's Resume" well
https://www.overleaf.com/latex/templates/jakes-resume/syzfjb...
I wonder what the origin of that template is, because it looks almost identical to mine, and I yoinked my template from somewhere back in 2012-2013. It says it's based on sb2nov/resume [0], but that only goes back to 2017. They must've based it on something as well.
It would be useless to test against a system that companies weren't using. I wouldn't count on anything open source in the HR space, to be honest.
I remember seeing a list of companies you could "apply" to with your resume that would then show the ATS-parsed version back to you. Every single person who used it got a reasonable result back, which is usually enough to put an end to all of the ATS myths out there.
Yep, you are quite right. Curious about that list of companies, if you are keeping it?
Thanks for posting this!
[dead]