{"adoption": {"forks": 8, "observed_at": "2026-08-28T04:05:25.070739+00:00", "stars": 1707}, "canonical_url": "https://ross.abutalabs.com/products/how-to-scrape-google-jobs", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Learn how to build your own Google Jobs scraper that simultaneously scrapes Google Jobs for multiple search queries and geo-locations with Python and Oxylabs’ Google Jobs Scraper API. https://oxylabs.io/blog/how-to-scrape-google-jobs", "domain": ["crawlers", "developer-tools", "tutorials"], "enriched": true, "function": ["web-scraping", "parser", "developer-tools"], "health_score": 73, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["oxylabs/how-to-scrape-google-jobs"], "name": "oxylabs/how-to-scrape-google-jobs", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2026-06-19T08:26:50+00:00", "repo": "oxylabs/how-to-scrape-google-jobs", "stars": 1707, "tags": ["google-jobs", "serp-scraping", "tutorial", "scraper-api", "job-listings", "sample-code"], "topics": ["google-scraping", "python", "scraper", "scraper-api", "scraper-python", "serp-scraper-api", "serp-scraping", "web-scraping", "google-search-api", "google-search-scraper"], "urls": [], "use_cases": ["scrape job listings from google jobs", "extract job titles salaries and locations from google jobs", "scrape google jobs for multiple queries and locations", "learn web scraping with python", "export google jobs results to csv"], "what_it_is": "A tutorial repository with sample Python code showing how to scrape Google Jobs listings, both with a free scraper and at scale using Oxylabs' Google Jobs Scraper API. It includes a runnable CLI tool that saves scraped job data to CSV.", "when_to_avoid": ["you need a production-grade maintained scraper library", "you want to scrape job sources other than Google Jobs", "you can't rely on third-party paid APIs or fragile free scraping"], "when_to_choose": ["you want a working example of scraping Google Jobs with Python", "you're evaluating Oxylabs' SERP Scraper API for job data", "you need a quick free tool for small-scale Google Jobs scraping"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/how-to-scrape-google-jobs", "repo": "oxylabs/how-to-scrape-google-jobs", "role": "main", "score": 65}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.070739+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.648787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc8966b72e3b177d66a51c48af5b54d0af677eab399a7396634477c9c1fadb34", "fetched_at": "2026-08-28T04:05:25.070739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxylabs/how-to-scrape-google-jobs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.070739+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.648787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc8966b72e3b177d66a51c48af5b54d0af677eab399a7396634477c9c1fadb34", "fetched_at": "2026-08-28T04:05:25.070739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxylabs/how-to-scrape-google-jobs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.648787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc8966b72e3b177d66a51c48af5b54d0af677eab399a7396634477c9c1fadb34", "fetched_at": "2026-08-28T04:05:25.070739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxylabs/how-to-scrape-google-jobs"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.070739+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.070739+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.070739+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.648787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc8966b72e3b177d66a51c48af5b54d0af677eab399a7396634477c9c1fadb34", "fetched_at": "2026-08-28T04:05:25.070739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxylabs/how-to-scrape-google-jobs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.070739+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.070739+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.648787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc8966b72e3b177d66a51c48af5b54d0af677eab399a7396634477c9c1fadb34", "fetched_at": "2026-08-28T04:05:25.070739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxylabs/how-to-scrape-google-jobs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.070739+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.070739+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.070739+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.648787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc8966b72e3b177d66a51c48af5b54d0af677eab399a7396634477c9c1fadb34", "fetched_at": "2026-08-28T04:05:25.070739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxylabs/how-to-scrape-google-jobs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.070739+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.070739+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.648787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc8966b72e3b177d66a51c48af5b54d0af677eab399a7396634477c9c1fadb34", "fetched_at": "2026-08-28T04:05:25.070739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxylabs/how-to-scrape-google-jobs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.648787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc8966b72e3b177d66a51c48af5b54d0af677eab399a7396634477c9c1fadb34", "fetched_at": "2026-08-28T04:05:25.070739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxylabs/how-to-scrape-google-jobs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.648787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc8966b72e3b177d66a51c48af5b54d0af677eab399a7396634477c9c1fadb34", "fetched_at": "2026-08-28T04:05:25.070739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxylabs/how-to-scrape-google-jobs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.648787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc8966b72e3b177d66a51c48af5b54d0af677eab399a7396634477c9c1fadb34", "fetched_at": "2026-08-28T04:05:25.070739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oxylabs/how-to-scrape-google-jobs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 88, "longevity": 66, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 937, "days_push": 75, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 65, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}