scrape

Searches job portals via CLI tools and deduplicates new postings against prior runs.

Updated Sep 23, 2026
One-click install
npx skills add https://github.com/zaheer037/job-search --skill scrape-zaheer037
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: scrape
Source: https://github.com/zaheer037/job-search/tree/main/.agents/skills/scrape
Command: npx skills add https://github.com/zaheer037/job-search --skill scrape-zaheer037

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Manually checking multiple job boards every day and remembering which postings you have already seen is repetitive and error-prone. This Skill automates the discovery step of a job search: it queries installed portal-search CLIs (LinkedIn, local job boards), deduplicates results against previous runs and your application tracker, and presents only genuinely new matches with a quick fit assessment. ## Core Features & Use Cases - Multi-portal search: Discovers every installed portal CLI under .agents/skills/ and runs them in parallel, falling back to WebSearch when a CLI is unavailable or fails. - Deduplication and state tracking: Stores every seen posting in seen_jobs.json with canonical keys, fit ratings, deadlines, and source metadata so repeat runs never resurface old jobs. - Fit assessment and health checks: Assigns a high/medium/low match signal with a language-requirement gate, flags mass-posted listings, and probes portals whose parsers may have silently broken. - Use Case: Say "/scrape data science" on Monday morning and get a deduplicated table of new postings from the last 14 days, sorted by fit, with LinkedIn referral-search links for each promising role. ## Quick Start Ask your agent to find new jobs matching your profile by saying "find new jobs" or "/scrape" with an optional focus area.

Frequently Asked Questions about scrape

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

FAQPage Schema
How do I automate job searching across multiple job boards?▼

Run the scrape workflow, which discovers every installed portal-search CLI and queries them in parallel using your configured search terms. Results are deduplicated against previous runs and presented as a fit-sorted table of new postings.

How to deduplicate job postings across repeated searches?▼

Each posting gets a canonical key generated by the job_key.py helper from company, title, and URL, stored in seen_jobs.json. Later runs skip any posting whose URL or company-plus-title combination already exists in that file or in the application tracker.

What happens when a job board scraper stops working?▼

A built-in health check inspects each portal's output for null fields or zero yields, then runs one bounded sentinel probe using the portal's documented test query. Suspect portals are reported as degraded, broken, or inconclusive, and can be disabled with user confirmation.

Can I search jobs without the bun runtime installed?▼

Yes. If bun is unavailable, the workflow falls back to WebSearch using site-specific query strings for each portal. Fallback results are tagged as websearch-sourced so you know which rows may come from a stale search index.

How are job postings filtered by language requirements?▼

A posting requiring a language not declared in your profile is marked low match regardless of skill fit. A declared language required at a higher level than yours is flagged as a red flag in the results without being auto-excluded.

Does the job scraper contact recruiters automatically?▼

No. For high and medium fit jobs it only generates LinkedIn people-search URLs for recruiters and team peers that you open yourself. It never scrapes LinkedIn search pages or fabricates contact names.