Hacker News new | past | comments | ask | show | jobs | submit login
Resume Matcher – An open source, free tool to improve your resume (github.com/srbhr)
145 points by nevodavid10 on Nov 29, 2023 | hide | past | favorite | 54 comments



Upvoted this post. I see it's Apache licensed, somebody should be running it somewhere as a service with an easy, small payments option. A service which genuinely validates a resume as parseable by the majority of popular ATS and even spits out a summary would be useful from an adversarial (applicant) POV. I'd pay $5-$10 by credit card if I trusted the processor. I'm not worried about privacy particularly, given that resumes are routinely uploaded to e.g. Virus Total although it would be nice if it wasn't a wholesale clearinghouse for plagiarism and copying.

This came up recently somewhere else and my two cents:

1) The best role for LLMs in ATS is in rewriting all resumes consistently in a style which matches the biases / "likings" of the reviewer (Humphry Bogart, Exene Cervenka, Kermit the Frog). Applicants guessing at this merely gives them a better shot at being mistakenly included in the cohort which adopts the preferred voice "naturally". If this "liking" is what resumes are supposed to be judged on then where's the math, it's all a smokescreen for bias innit?

2) Some ATS needs to be the first mover in allowing applicants to download / upload a JSON BLOB of all of their info. I'd recommend cryptographically signing it (and calling it a "service") on download like DKIM, and I think a bunch of things would emerge with that.


Hi, my goal is to help people find jobs. Amidst lay-offs and panics, I wanted to create a tool (with whatever knowledge I have) to help people understand whether the Resume Templates they use are friendly. - Are keywords getting highlighted or not?

A scenario I faced was. - I wrote Java in my resume for the role of Java Developer. But there were other words like J2EE, Gradle, Maven, etc. I possess the knowledge, but I didn't write it. - So, I wanted to detect such keywords and develop something that can highlight such keywords.

Conclusion: - I landed three interviews. 1. Big Service Based Company 2. Startups


What stops me from trying it out is that I get to the bottom of the README and I see that I need to register for a service not mentioned before (Cohere) and then register that with Qdrant. At this point I think "oh well it's running in the cloud then, not locally". I don't know anything about Cohere or Qdrant to begin with and I have to choose what I spend my time learning about. I may or I may not.


Qdrant is open source. You can run it on your locally. https://github.com/qdrant/qdrant


I am always thankful that I have not been on the job market for decades. I have hired lots of people during that time. I would like to think I did not run them through the torture chamber job-seeking seems to be today.

I have many friends and acquaintances who tell me what it's like from their perspective. Sure, there are tons of job listings on sites like LinkedIn and others. And yet, for some, the experience seems to be sending hundreds of resumes with little or no feedback and even fewer interviews. Some have resorted to writing short one-page resumes custom-matched to the requirements listed in the job post. In some cases they claim this produces better results. However, we are still talking about what I interpret to be in the 5% response rate.

One of my friends got so frustrated after going through a six-interview hiring process in one case and seven interviews in the other --and not being hired-- that he found himself a job in the oil fields in New Mexico manually recording readings every hour while he lives in a trailer in the middle of nowhere. This, after a long career in various technology fields. He fears age discrimination might have a lot to do with it.

So, yeah, not sure how human-to-human contact happens if people never get a response after sending hundreds of resumes. When we need to hire, my rule is simple: Everyone gets a response. Everyone. Because, on the other side of that resume is a dad, mother, brother, sister, cousin, etc. How would you like to be treated? How would you like others to treat those you love? Well, then, the answer is simple. If you are using AI or mechanized processes, you are treating people like cattle.


People like you are rare. It seems like with the ever increasing scale of mechanisation, we are seeing an increasing detachment from everything that makes us human.


Today a highly-experienced CEO in the technology sector told me he thinks one of the reasons for which a lot of this is happening is, as he put it: "People can be victims for anything these days. HR has to be very careful about how they check and filter people. Companies can be sued for just-about anything. Even confirming someone graduated from university can be discriminatory or problematic from an equity perspective".

Not sure what to think.


> Warning

> The results returned from through the web app are currently entirely mocked / faked. This means that the results returned are not real and are just for demonstration purposes. This will be implemented with real data results in a future release.

Is this ready for use yet?


Hi, the web-app is in development. And the way to use this is Streamlit interactive or the streamlit app. With your Qdrant and Cohere API keys for Semantic similarity.


I'm not familiar with streamlit. So streamlit is another way to interact with the backend? How can we see the results?


Yes, it's a python dashboard that contains all the Backend code. You must run the app, add your API keys in config.yml, and upload your resume and job description.

You can see the matching keywords (although the UI is messy) and your resume's semantic similarity score.


I'll be more than happy, if you can contribute to the development of the Web App. _/\_


For people not in HR (human resources): ATS seems to be short for applicant tracking system.


I'm generally confused by how much "ATS-friendly" matters, or what that even means.

On one side of the coin, it logically makes sense that ATS systems would help recruiters pare down the list. I'd assume there is some auto-rejection happening, but how sensitive is it (getting rid of clearly unqualified candidates vs. rejecting marginal candidates vs. actually qualified but still rejected due to not being ATS-friendly)? You here about job postings getting thousands of applicants and it seems like it would be impossible to go through those by hand.

On the other side, I see lots of posts from recruiters saying ATS's do not judge resumes and everything is done by the recruiter. These posts seem to be very skeptical of anything saying it will optimize your resume for ATS's because there is no need to actually do that.

Would love more perspective on this issue.


As for someone looking for a new position, I can give you anecdotal evidence.

A little background: I have 10+ years of professional experience. Polyglot. Experience with extremely small to medium sized companies.

I re-used my previous resume, which did decently well around 2019 when I was looking for a new position, but with updated info for the newest position I had. Applied to a number positions that I was very qualified for -- crickets. This put me in a bad spot mentally, honestly, as it felt like signals that I'm just not "good enough" for fancy "big tech".

I then updated my resume layout to be more parseable (admittedly this is another variable), then signed up for a service that helps ATS-ify my resume. This involved adding numbers to certain line items, reduce repetition, honestly some good feedback in general. Immediate recruiter messages the next day.

I was extremely averse to using a service like this as it just felt "dirty" or was a sign of my personal ethics "giving in" to some sort of system. Honestly, I still kind of feel that way, but this is the game we play now. I know for a fact I've been auto-rejected from a number of roles that I was 100%+ qualified for because of my resume.


I didn't want to use an ATS service either, but it sounds like you had a decent experience, do you mind telling me which service you used?


I used resumeworded.com. I believe I initially found it on this thread [1], which also has a few more suggestions. I think they'll end up being roughly the same -- don't remember why I ended up choosing Resume Worded.

[1] https://old.reddit.com/r/resumes/comments/10icgzi/is_there_a...


So Search Engine Optimization for resumes.

Need to optimize your web site/resume for Google/ATS.


ATS optimisation is absolutely critical these days, at least in tech.

With the amount of applications you receive, the easiest first step is looking for a way to exclude someone. If your ATS can't even parse someone's CV properly, that's a great way to exclude it from consideration.

The next level is keyword matching. If your ATS can't find any of the keywords from your listing in the CV, another easy exclusion.

The whole system is completely bs, for both sides, to the point that personal referrals become more and more important. But if you don't play the game, someone else will, and you lose out.


> If your ATS can't even parse someone's CV properly, that's a great way to exclude it from consideration.

Why?

Is there some official CV format that applicants are expected to follow, which is guaranteed to be parsable by ATS, so that un-ATS-parsable CV shows incapability of following rules?


Look at it from the other perspective.

You're looking for a new senior developer, starting in the next few weeks. That means with your 4 rounds of interviews, you want to start the first round within the next week or 2. Your engineers have capacity to do the 4 rounds for ~10 applicants in that time.

You receive 1000 applications.

You don't have time to read every resume and start calling people in the next few days, so you build a tool to automate it. The tool parses text from PDFs, tries to categorise it into "experience", "projects", "location", so you can exclude people with <4 years of experience and not in your country, and find those whose projects showed skills you're looking for.

The tool correctly parses 500 of the resumes, and finds 50 who match your experience, location and skill requirements. Now you manually read those 50 properly, and reach out to the ones who stand out.

That tool is the ATS. You don't care about the 500 who couldn't be parsed, or whether some of the 470 were parsed incorrectly. It's not a test of the user's ability to follow rules. It's just a necessity to get hiring done in a reasonable time frame.


While I don't blame the hiring managers or recruiters or whatever (my team is constantly struggling with not having enough time/energy to hire well), if the only goal is to reduce the volume of applications, there are better ways. In fact this is just about one of the worst ways to do so probably, since it's pretty much arbitrary.

A simple way would be to make the job listing quite specific about expectations and say "Please do not apply if you can't do/don't know X and Y at minimum. If you can/do, submit your resume with a note affirming that you can/do." Any resume that doesn't come with that note can get canned, some people will lie, but you filter out the lowest effort applications which seems to me a better proxy for quality than beating your adversarial AI in a blind game.


What tool? Can you provide a link or name for the tool?


> The whole system is completely bs, for both sides, to the point that personal referrals become more and more important. But if you don't play the game, someone else will, and you lose out.

Seems to me that "great way to" in this case is sarcastic. It's a "great" way for HR people to solve the problem because it requires zero effort even if its stymies both applicants, and their own efforts to uncover worthy candidates.

In the end, as is the case with so much of our modern world, the root of the problem is some company overselling the capability of their AI-driven product and some executive with no accurate way to gauge the drawbacks saying "wow we can spend $x thousand per year for this service that will save us 3($x) thousand in recruiting payroll. I'm in." In the ATS world, resumes require SEO to be useful for most companies... that is, unless you're giving it to a human being that asked you for it because you already have a rapport with them.


The way ATS is growing, I no more know what a resume should contain. Are there any ATS standards?


IMHO, if you're really set on improving your resume, a service is worth it. Use one for the cheapest option possible and run it a few times on your resume -- you'll see the patterns and things it looks for.

In general, it would be things like:

    * Avoid repetitive action words - "Built systems, built software, built infrastructure..."
    * Add numbers/metrics where you can: "Improved site performance by 20%+" 
    * Line items should not be over 2 lines

Aside from that, choose a _standard_ resume format/layout. Don't get fancy with columns, colors, etc.


Before anyone gets too excited about keyword stuffing with white text and such: supposedly ATS systems detect this and dock you for it, though I've never heard proof either way.


You could sell an ATS system that randomly selected n resumes from the total and it would be almost as effective.


have you posted a job listing recently?

the amount of crap coming in is ridiculous, and nothing like a few years ago. people apply to anything from anywhere

looking for a full stack web engineer? i'm a senior data analyst on the other side of the world, and you have python in your job description, and i know python, and i don't have a visa, and you explicitly said you can't sponsor visas right now, but i'm applying anyway

once you've seen that a few thousand times, you'll realise even though it's far from perfect, automated filtering is a must. that's all an ATS is. some people get so turned off by the acronym, but i bet if they were on the receiving end, their first instinct would be to build their own "automated filter" (ATS)


Recruiters that say ATS does not judge are full of crap. Unless you get a referral, or you get manually hand picked from the pile, ATS will decide if someone actually reads your resume. If your resume is a 100% match and you still do not get a call then there are other factors to consider. The organization posting the job is full of full of crap. I have been automating the job searches way before the pandemic. Now, I maybe get a call or two with 100+ job applications. If someone can afford to stay out of a job, I would say watch from the sideline until things cool off. It is not you that is the problem. Anyway, tools such as this can be very helpful vs ATS.


The ATS won't judge a resume, but it will parse it and display in an easier format for the recruiter to browse through.

If your resume does not parse well (for example, a PDF with two columns can sometimes mean the right column text ends up above the left column text) the recruiter will have outdated / wrong information in front of them when they make the decision to do a screening call or not

I know because my cv had two columns for the longest time, and I kept getting recruiters call me "how's it going at <company I left 6 years ago>" and they had my latest cv


Kinda seems idiotic that we're making PDFs of our resume data in the first place then. I know that's backwards historically, since paper resumes came first, but at this point it should just be a JSON file right? Let the hiring company's automation ingest the data and spit it out in whatever readable format they like.


> On one side of the coin, it logically makes sense that ATS systems would help recruiters pare down the list. I'd assume there is some auto-rejection happening, but how sensitive is it

When you have 1,000 applications for a job you don't care much about false negatives (having the system reject candidates you might have wanted). Instead you want the software to give you 100, or even 30 resumes to sift through in the hope of phone screening half of them, interviewing only a few, and getting someone who can do the job as quickly as possible.


YMMV, but I started getting more responses when I switched from a LaTeX/PDF CV to a MS Word document with basic formatting (heading styles, bullet points, no tables).

I suspect that quite a few ATS were struggling to parse the PDF.


The automation causes them to miss a number of qualified candidates, but at least one gets through and thisisfine.jpg. These aren't regex strings. They key on keywords and make the stupid mistakes common with keyword filters.

Also, they make the hiring process worse. Know the right keywords to put into a resume and you can be a grand mal idiot, and you'll still get interview time.

I get the other side of it. No HR is staffed to cull through 1000s of resumes, but the systems meant to aid them, are poorly developed and tossed out the door in the name of PROFITS.

Note: Profits aren't a bad thing. PROFITS are, because they ignore everything else for the sake of PROFITS, hence the caps.

A simple example.

How many times would anyone here enjoy uploading a resume, then immediately after, having to either type in the entire fucking thing, or spend 20 mins "correcting" the horrific parsing. If more dev time had been spent the process would be much better for the prospective employee, but they didn't. Companies built half-assed parsing, called it done, and moved on.

Developing these systems into more than just the horse shit out there now would go a long way towards solving both issues.

Source: I've been Senior Technical/Hiring manager for most of my career.


I feel like when I apply for jobs via tech recruiting firms I sidestep this nonsense because I almost always get a resume lined up. It seems obvious to me that ATS is just like whiteboard interviewing, just a tool to trim down on candidates based on silly metrics. In my case I do plenty of web dev, if I am writing any algorithm from scratch I am most likely doing something wrong if its not available to me in some fashion.


I read the 'How does it work?' section and tried a job description and couple of my resumes. I don't fully understand how this tool should be used/or what it is telling me about my resume.

It gives values for keywords from resume (got it) Then it finds common words between Job Description and Resume I also see another table of values for the job description

Now what? Do I need to compare the tables? Do the values need to be within certain range?


Resume tricks like this are nonsense. Are there recruiters who are swayed by things like this? Sure. Do you want to work for those companies? Probably not.

Stop shotgunning your resume to dozens of companies. Research a few companies where you might actually want to work. Do this from time to time even if you aren't looking; don't wait until you are desperate for work. And the most important thing is to actually have something to offer. If you do the bare minimum and accomplish very little, you probably aren't going to trick some great company into hiring you with resume tricks.


Unfortunately this doesn't line up with reality. "Tricks" like these are needed to get through the nonsensical recruitment/HR obstacle course for many companies.


I have never had to do anything like this, and I have never applied to more than a few companies before receiving an offer except during the dotcom crash. Even then it wasn't dozens of companies.


Can you provide some context to your past experiences? In x years, I had y number of jobs, of those y jobs, I only had to apply to z number of companies before getting an interview?

Also, say google is hiring an ML engg and there are 1000 applications, what do you think does the recruiter do to 1000 resumes?


> Stop shotgunning your resume to dozens of companies.

Yeah, even with individually crafting the resume and cover letter, my response rate was incredibly low during my most recent job search. After doing that for a while, you realize it's not worth the time/emotional investment.


ATS == Applicant Tracking System


I saw this before actually! Pretty cool repo :)


Thank you for checking it out! ;)


is there docker image to just setup and use, the installation is hard


There's a docker section


This is not a criticism of this software or the author as they have no personal responsibility for the larger system they operate in, but sometimes I see something like this, and I just think we live in a dystopia. Have we gotten to the point that jobseekers and employers are using adversarial AIs against each other in some attempt at optimization? What are we doing here? We seem to be on the path to this stuff oozing its way into every aspect of society only to make things worse.


A book from nearly 100 years ago recommends hiring a specialist to help you write your job application letter. What I'm seeing here is kinda the same thing except available to people with less money.


Which book is that? I'm interested in adding it to my reading list


Think and Grow Rich by Napoleon Hill. On the face of it, a new age book about turning your thoughts into reality. (And a pretty good one, as far as that goes...)

The author interviewed hundreds of the most successful people of his day and distilled their success principles.

It's packed to the brim with practical advice about how to run a business, and how to achieve any goal. Worth a read.

TLDR pick a goal you really care about, develop absolute faith that you will attain it (i.e. practice seeing it as already done, until it feels real), lay out a concrete plan of action for its attainment, and get to work!

(The section on quality and quantity of service rendered is of particular interest.)


It's an unfortunate reality of modern communication and tools.

The incredible ease of modern communication allows businesses to show their offer to many more candidates that previously possible, and allows those many more candidates to respond from a greater distance and with more ease.

However, now there is a new problem - too many offers to sort through. It eats up their time with candidates that don't suit their needs.

So, what do they do? They increase requirements and use automated systems to cull the results as much as possible. They get more and more picky. This is an entirely reasonable answer to the problem.

However, now applicants need to work harder to show they're worth considering and avoid the automatic culling.

It becomes an arm race. Employers have incentive to reduce the incoming applications to keep their workload lower, while applicants obviously want to get the job so must make their application get through.


I don’t see how LLMs aren’t just calculators but for words. It just means that everyone needs to up their game in terms of critical reading skills.


The tragedy of the commons.

We are in the early phases of a recession. The tech-cession is already in full swing. Inflation is through the roof.

There are very few jobs hiring relative to layoffs. Every optimization, no matter how stupid, matters.

Capitalism rewards the razor thin margins, regardless of how filled with puss and scum those margins are.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: