DEV Community

charlie-morrison
charlie-morrison

Posted on

I Built a Job Description Keyword Extractor (and Here's What I Learned About ATS)

Every job description is a cheat sheet. The hiring manager already told you exactly what they want — it's just buried under corporate filler.

I got tired of manually highlighting keywords in job postings, so I built a tool that does it automatically: Job Description Keyword Extractor. Paste a posting, get categorized keywords. Technical skills, soft skills, tools, certifications — all sorted by how often they appear.

Building it taught me a few things about how ATS systems actually work.

Most resumes fail on keywords, not formatting

Everyone worries about fonts and columns and whether their PDF will parse correctly. That stuff matters, but it's not what kills most applications.

The real filter is keyword matching. ATS systems score resumes based on how many keywords from the job description appear in your resume. Not synonyms. Not related terms. The exact words.

If the posting says "Kubernetes" and your resume says "container orchestration" — that's a miss. If it says "cross-functional collaboration" and you wrote "worked with different teams" — miss again. The machine doesn't understand meaning. It counts matches.

Frequency tells you priority

When a keyword shows up three times in a job description, that's not sloppy writing. That's emphasis. The hiring manager really wants that skill.

My tool highlights these: keywords mentioned 3+ times get green tags, 2 times get yellow. If Python shows up five times and Go shows up once, you know where to focus your resume's real estate.

The categories matter for resume structure

Most people dump all their skills into one section. But job descriptions naturally split into:

  • Technical skills (programming languages, frameworks, concepts)
  • Tools and platforms (Jira, AWS, Figma, Salesforce)
  • Soft skills (leadership, communication, stakeholder management)
  • Certifications (AWS Certified, PMP, specific degrees)

Your resume should mirror this structure. A skills section with 40 random technologies tells the ATS nothing about priority. But "Core Skills: Python, Django, PostgreSQL" followed by "Tools: AWS, Docker, Terraform" maps directly to how the job was written.

What I actually built

The tool runs entirely in your browser. No backend, no API calls, no data collection. You paste text, JavaScript parses it against ~500 known skill/tool patterns, and you get a categorized breakdown.

It's not perfect — natural language is messy, and some keywords are ambiguous ("Go" the language vs. "go" the verb). But for the core use case of "what keywords should I make sure are in my resume" — it works.

The killer feature (for me at least) is the copy button. Extract keywords, copy the list, open your resume, and check them off one by one. Five minutes of work that can make the difference between your application reaching a human or getting filtered out.

The workflow I'd recommend

  1. Find a job you want to apply for
  2. Paste the description into the keyword extractor
  3. Copy the high-priority keywords
  4. Update your resume to include those exact terms (naturally — don't keyword-stuff)
  5. Run it through the ATS checker with the same job description
  6. If your score is below 70%, keep tweaking

This is what targeted applications look like. One resume per job posting, customized for that specific role. More work than spray-and-pray, but the response rate is incomparable.


The tool is at charliemorrison.dev/job-keywords. There's also a resume checker, cover letter generator, and a few others — all free, all browser-based.

Curious what keywords you find in your current target role?

Top comments (0)