job-scraper

Scrapes job listing URLs and extracts structured job data into JD text files.

Updated May 10, 2026
One-click install
npx skills add https://github.com/gpokhark/Job-Op-Resume --skill job-scraper-gpokhark
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: job-scraper
Source: https://github.com/gpokhark/Job-Op-Resume/tree/main/.claude/skills/job-scraper
Command: npx skills add https://github.com/gpokhark/Job-Op-Resume --skill job-scraper-gpokhark

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Manually copying job listings into a usable format is tedious and error-prone, and many career sites block simple HTTP requests or hide fields like the posted date. This Skill fetches job pages through an escalating fetch chain and produces a clean, structured JD text file ready for resume tailoring. ## Core Features & Use Cases - Escalating fetch chain: Tries plain HTTP, then headless-browser fetch, then stealth fetch, then a Playwright MCP browser session for client-rendered or bot-protected sites like Workday. - Structured field extraction: Pulls title, company, location, posted date, job ID, description, responsibilities, qualifications, and salary into a standardized JD .txt file saved under output/<Company_Name>/. - Posted-date workarounds: Consults a per-platform reference file (Phenom, Ashby, Clinch, Liferay, and more) to recover posted dates that never appear in rendered page content. - Batch Fit-Scoring Mode: Given multiple job URLs, launches parallel subagents that scrape each listing, score fit against your latest main resume, and consolidate results into a ranking table. - Use Case: Paste three job URLs from different companies and receive three JD files plus a ranked fit table showing which role best matches your resume. ## Quick Start Scrape this job listing and save the structured JD file: https://jobs.ashbyhq.com/example-org/some-job-uuid

Frequently Asked Questions about job-scraper

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I scrape a job listing that blocks normal HTTP requests?

Use an escalating fetch chain: try a plain HTTP get first, then a headless-browser fetch with a wait for JavaScript, then a stealth fetch for bot-protected sites like LinkedIn or Greenhouse. If all three fail, fall back to a Playwright browser session that captures the fully rendered page.

How to extract the posted date from a job listing that doesn't show one?

Check a per-platform workarounds reference before giving up. Phenom sites expose postedDate in the search-results page's phApp.ddo object, Ashby exposes publishedAt via its public job-board API, and Clinch and Astemo carry JSON-LD datePosted fields.

Can I scrape multiple job listings at once and compare them?

Yes, passing multiple job URLs triggers Batch Fit-Scoring Mode. Each URL is scraped in a parallel subagent, scored 0-100 against your latest main resume with matches and gaps, and results are consolidated into a single ranking table with failures listed separately.

Does this work with Workday or other client-rendered career sites?

Yes, sites like Workday that render content client-side are handled by the Playwright MCP fallback. It navigates to the URL, waits for the job description to render, and reads the accessibility-tree snapshot containing the full listing text.

What happens when a job page cannot be fetched at all?

If all four fetch attempts return empty or blocked content, the skill reports that the site may require login or block automated access. It suggests manually pasting the JD text into a .txt file for the downstream resume generator instead of fabricating content.