Google Jobs API & Scraper - Salary & Apply Link [NO LOGIN] ✅
Pricing
from $1.99 / 1,000 jobs
Google Jobs API & Scraper - Salary & Apply Link [NO LOGIN] ✅
Google Jobs API: job listings with title, company, location, salary (when shown), job type, posted date and apply link. Salary parsed to min/max, currency and period; job type and remote flag normalized; duplicates removed across all titles and cities. Track new jobs daily. CSV, Excel, JSON, API.
Pricing
from $1.99 / 1,000 jobs
Rating
5.0
(3)
Developer
Unseen User
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
💼 Google Jobs API & Scraper (No Login)
Scrape Google Jobs by keyword and location: title, company, location, salary, job type, posted date and apply link. Built-in dedupe and new-job tracking.
Use it as a Google Jobs API: send job titles and cities, and get clean job listing data back as JSON, CSV or Excel, or call it from your own code like any jobs API.
⚡ Why This Actor?
Single-purpose atomic actor: input job titles and locations, get back clean Google Jobs listing cards (title, company, location, remote flag, salary text plus parsed min/max, job type, posted date, apply link). Built-in deduplication and new-job tracking (isNew on every row).
Be clear about what this is NOT: this actor does not return the full job description, qualifications, responsibilities, benefits, or the list of every apply option. Google Jobs shows those only after you open a job, and this data source returns the results list, not the opened job. You get exactly one apply link per job (the source Google shows first). If you need full descriptions, this is the wrong actor.
🧭 How to Scrape Google Jobs Step by Step
- Click Try for free and open the Input tab.
- Add one or more job titles to queries, for example
registered nurseordata analyst. - Pick the country. Add cities to locations for specific places (
New York,Austin,Texas,United States), or leave it empty to search the whole country. - Set maxJobsPerSearch (0 = all results, up to 200 per search).
- Click Start. Each job arrives as one row with title, company, location, salary (when shown), job type, posted date and apply link.
- Export the results as JSON, CSV or Excel, or read them through the Apify API or MCP.
No browser automation, proxies or HTML parsing to maintain, and no Google account needed.
🎯 Use Cases
- Job board backfill - fill empty category or city pages with fresh listing cards (title, company, location, apply link) and refresh them daily, publishing only rows with
isNew: true - Salary benchmarking - collect posted salary ranges for a role across cities, parsed into min, max, currency and period
- Often scheduled monthly, to follow posted pay for a role over time.
- Hiring-signal sales triggers - spot which companies are hiring for a role in a region this week and route those accounts to your sales team
- Often scheduled weekly, to see which companies started hiring for a role.
- Labor market research - count openings per role, city and employment type to track demand over time
- Often scheduled weekly or monthly, to build a time series of openings.
- Recruiting market mapping - see which employers and which job boards dominate a role in a given city before you plan a campaign
- Competitive monitoring - watch which roles a competitor posts publicly, by location and job type
- Academic research - build longitudinal datasets of posted wages and remote-work share by role and country
🚀 Quick Start
- Click Try for free on this Actor's page
- Enter the required identifier (see Inputs Overview below)
- Run the Actor
- Download results as JSON, CSV, or XLSX, or pull via Apify API
Simplest input:
{"queries": ["registered nurse"],"country": "United States","locations": ["New York"],"maxJobsPerSearch": 50}
Free Apify plan: free users receive up to 5 job rows per run (status rows do not count). Any paid Apify plan removes this limit. The limit is set by the Actor developer, not by Apify.
⚙️ Inputs Overview
| Input | Type | Required | Description | Example/Allowed Values |
|---|---|---|---|---|
queries | array of strings | ✅ | Job titles or keywords. Each query is searched in every location (queries x locations). Allowed: 1-100 queries, up to 700 characters each. | ["software engineer", "data analyst"] |
country | string | ✅ | Country to search in: one of the 76 countries where Google Jobs is available, picked from the dropdown. Default United States | United States, United Kingdom, Germany, ... |
locations | array of strings | ❌ | Cities or regions inside country. A plain name ("Austin") is resolved automatically; the full format ("Austin,Texas,United States") is used as-is. Empty = whole country. | ["New York", "Austin,Texas,United States"] |
language | string | ❌ | Language of the results: pick one from the list, or enter any other language code. Default: Auto (from country), the country's main language (Germany → de, United States → en, ...). | en, de |
radiusKm | integer | ❌ | Search radius around each city, in kilometers, from 1 to 300. Only used when a city is given in Cities or regions. | 50 |
maxJobsPerSearch | integer | ❌ | Maximum jobs per query x location pair (0-200). 0 = all results: every job available for the search, up to 200 (Google's maximum). Default 100 | 100 |
trackNewJobs | boolean | ❌ | Remembers every job returned under memoryKey and marks each row with isNew (true/false) and firstSeenAt. Every job is still delivered. Default false | false |
memoryKey | string | ❌ | Tracking name (for new-job tracking). Any name you choose, for example nurses-nyc. Runs with the same name share one memory of seen jobs, so jobs from earlier runs get isNew: false. Use a different name for each separate monitor. Only used when trackNewJobs is on. Default default. Letters, digits and hyphens only, up to 40 characters. | nurses-nyc |
maxSearchesPerRun | integer | ❌ | Maximum query x location pairs per run (0-100). 0 = no limit. Default 50 | 50 |
Not available: filters for date posted, remote and job type. Every row has employmentTypes, isRemote and postedAtIso.
💰 Pricing
Pay-per-event model on Apify. You pay a small start fee per run, a small fee per finished search, and a fee per job.
| Event | Price | When it is charged |
|---|---|---|
Actor start (apify-actor-start) | $0.02 per run | Once per run (256 MB default memory = one event) |
search | $0.003 per search | Each query x location search that finishes, with results or with no results. Never for searches that fail or time out |
job | $1.99 per 1,000 jobs ($0.00199 each) | Each unique job row delivered to your dataset |
Status rows (errors, notices, limits) are never charged.
Free plan limit: Free Apify users receive up to 5 results per run. Upgrade to any paid Apify plan to remove this limit. This limit was set by the Actor developer, not by Apify.
Worked examples vs. rivals (job cards only for this actor; most rivals include descriptions):
| Run | This actor | epctex ($4.50/1k) | gio21 ($3.00/1k) | johnvc (from $10/1k) | orgupdate ($180/1k Starter) |
|---|---|---|---|---|---|
| 1 query x 1 city x 50 jobs | $0.02 + $0.003 + $0.10 = $0.12 | $0.23 | $0.15 | $0.50 | $9.18 |
| 5 queries x 2 cities x 50 jobs = 500 jobs | $0.02 + $0.03 + $1.00 = $1.05 | $2.25 | $1.50 | $5.00 | $90.18 |
| 25 queries x 1 country x 200 jobs = about 5,000 jobs | $0.02 + $0.08 + $9.95 = $10.05 | $22.50 | $15.00 | $50.00 | $900.18 |
Daily monitor: 3 searches x 30 jobs, trackNewJobs on | $0.02 + $0.009 + $0.18 = $0.21 per day | $0.41 | $0.27 | $0.90 | $16.38 |
Searches with no results cost $0.003 each (the search event) and give you one uncharged NO_RESULTS status row. No job charge applies to them.
See exact per-event pricing on the Actor's Apify page.
🌍 Supported Countries and Languages
The country dropdown lists the 76 countries where Google Jobs is available (checked live in October 2026), among them the United States, United Kingdom, Canada, India, Germany, France, Spain, Italy, the Netherlands, Brazil, Japan, Singapore, South Africa and the United Arab Emirates. Google Jobs is not offered in some countries, for example Australia, Ireland, Israel, Mexico, Norway, Poland and Sweden: a run for such a country ends with one free LOCATION_NOT_FOUND row and nothing is charged. Cities and regions are looked up in the Google Jobs location list of the chosen country. Live-tested so far: United States, United Kingdom, Germany.
Language: pick a language from the dropdown, or enter any other language code. When language is Auto (empty), the Actor uses the country's main language. Results come back in that language: German searches return "Vollzeit" instead of "Full-time" and "über Bundesagentur Für Arbeit" instead of "via ...". Salary parsing and the remote flag are most reliable in English.
📅 Daily Monitoring Recipe (trackNewJobs)
- Run once with your queries, locations and
"trackNewJobs": true, "memoryKey": "my-monitor". Every job comes back withisNew: trueand is remembered. - In Apify Console, open the run's input, click Save as a task, then add a Schedule (for example daily at 07:00).
- Every scheduled run delivers all jobs the searches return. Jobs first seen in this run have
isNew: true; jobs seen in earlier runs haveisNew: falseand keep their originalfirstSeenAt. - In your Google Sheets, Make, Zapier or webhook integration, keep only rows where
isNewistrueto get "new jobs today". Keep theisNew: falserows if you want to know which listings are still live.
Memory is kept in a named key-value store in your own Apify account (google-jobs-memory-<memoryKey>). Delete that store to reset the monitor. Jobs not seen for 90 days are dropped from memory, so a listing that comes back after that counts as new again.
🧾 Sample Output
Job row:
{"jobId": "m1LVhdpd23Xr8A_oAAAAAA==","title": "1-1 School Registered Nurse (RN)","companyName": "White Glove Community Care","companyLogoUrl": "https://.../cdn/i/10231115-2850-0447-0000-9a4c27b33653:1","location": "New York, NY","otherLocationsCount": 0,"isRemote": false,"via": "Indeed","viaRaw": "via Indeed","applyUrl": "https://www.indeed.com/viewjob?jk=fc0e4053a65dcc46","salaryText": "65–75 an hour","salaryMin": 65,"salaryMax": 75,"salaryCurrency": "USD","salaryCurrencySource": "country_default","salaryPeriod": "hour","employmentType": "Full-time and Part-time","employmentTypes": ["fulltime", "parttime"],"postedAgo": "9 days ago","postedAtIso": "2026-10-14T11:15:23.000Z","postedAtIsEstimate": true,"isNew": true,"firstSeenAt": "2026-10-23T11:15:40.112Z","rank": 3,"searchQuery": "registered nurse","searchLocation": "New York,New York,United States","country": "United States","languageCode": "en","googleCheckUrl": "https://www.google.com/search?q=registered%20nurse&udm=8&hl=en&gl=US&...","scrapedAt": "2026-10-23T11:15:24.000Z","_metadata": { "page": 1, "searchIndex": 0, "fetchedAt": "2026-10-23T11:15:40.112Z", "dedupSkipped": 0 }}
isNew and firstSeenAt are null when trackNewJobs is off.
Status row (never charged):
{"status": "info","error": { "type": "NO_RESULTS", "message": "No jobs found for \"qwzx plorbt zzv\" in United States." },"charged": false,"searchQuery": "qwzx plorbt zzv","searchLocation": "United States"}
Status row types: INVALID_INPUT, LOCATION_NOT_FOUND, LOCATION_AMBIGUOUS, NO_RESULTS, MAX_CHARGE_REACHED, FREE_PLAN_LIMIT, SOURCE_UNAVAILABLE, INTERNAL_ERROR. Status rows have a non-empty error field. A country where Google Jobs is not available gives one free LOCATION_NOT_FOUND info row.
Field notes
salary*is null for most jobs. Google shows a salary only when the posting or job board provides one. In live tests 10-50% of jobs had one (UK hourly roles high, US software roles low).salaryTextis always the raw text; min, max, currency and period are parsed from it on a best-effort basis and are null when the text cannot be parsed.salaryCurrency: US listings usually show no currency symbol ("100K–150K a year"). Then the currency is taken from the country andsalaryCurrencySourceiscountry_default. When a symbol is present (£, €, $) it issymbol.postedAtIsois an estimate. Google shows "4 days ago"; the timestamp is calculated back from the moment of the search, so treat it as day-level accuracy. About 30-45% of jobs have no posted date at all.locationcan be a list such as "Lakewood, CO (+5 others)". The Actor keeps the first location and puts the extra count inotherLocationsCount. "Anywhere" means remote and setsisRemote: true(English results only).viais the job board or careers site with the "via" / "über" prefix removed ("Indeed", "LinkedIn", "Bundesagentur Für Arbeit").viaRawkeeps the original text._metadata.dedupSkippedis the number of duplicate jobs skipped so far in the run when that row was delivered.pageis the results page (10 jobs each) the job came from.employmentTypeis Google's own localized text ("Full-time", "Vollzeit und Teilzeit"), sometimes with an en dash ("Full–time"). It is null for a few jobs.employmentTypesisemploymentTypeturned into fixed values:fulltime,parttime,contractor,intern(English and German texts, for example "Full–time and Part-time" gives["fulltime", "parttime"], "Vollzeit" gives["fulltime"]). It is[]when the text is missing or not recognized.isNew/firstSeenAtcome from your ownmemoryKeymemory, not from Google.postedAtIsotells you when the employer posted;firstSeenAttells you when this Actor first showed it to you.- No
description,qualifications,benefits,applyOptionsorshareLinkfields. The source does not return them.
🔌 API and MCP
Apify API (run and get items in one call):
curl -X POST "https://api.apify.com/v2/acts/unseenuser~google-jobs/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"queries":["data analyst"],"country":"United Kingdom","locations":["London"],"maxJobsPerSearch":30}'
JavaScript (apify-client), daily monitor keeping only new jobs:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('unseenuser/google-jobs').call({queries: ['data analyst'], country: 'United Kingdom', locations: ['London'],maxJobsPerSearch: 30, trackNewJobs: true, memoryKey: 'analysts-london',});const { items } = await client.dataset(run.defaultDatasetId).listItems();const newJobs = items.filter((row) => !row.error && row.isNew === true);console.log(newJobs.length);
Python (apify-client), Google Jobs API example:
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("unseenuser/google-jobs").call(run_input={"queries": ["data analyst"],"country": "United Kingdom","locations": ["London"],"maxJobsPerSearch": 30,})for job in client.dataset(run["defaultDatasetId"]).iterate_items():if not job.get("error"):print(job["title"], job["companyName"], job["salaryText"], job["applyUrl"])
MCP (Claude, Cursor and other MCP clients): add Apify's hosted MCP server with this Actor as a tool:
{"mcpServers": {"apify": { "url": "https://mcp.apify.com?tools=unseenuser/google-jobs" }}}
Local alternative: npx @apify/actors-mcp-server --tools unseenuser/google-jobs with APIFY_TOKEN set.
❓ FAQ
Q: Is this legal? A: This Actor wraps DataForSEO endpoints that handle the underlying data collection. Your downstream use of the data is your responsibility - see the full Terms of Service and the Actor-Specific Addendum (Part 4) for details.
Q: Do I need a DataForSEO account? A: No. UnseenUser holds the DataForSEO credentials. You only need an Apify account.
Q: What about Google's anti-scraping enforcement? A: Google's Terms restrict automated access that ignores its crawling rules and list "scraping content that doesn't belong to you" as grounds for suspension. DataForSEO handles the data collection - it bears the responsibility for its architecture's lawfulness. Your downstream use must comply with Google's Terms and with the terms of the job boards the listings come from.
Q: What if Google sends a cease-and-desist? A: Notify UnseenUser within 48 hours via the Apify profile contact form (apify.com/UnseenUser) and cease using this Actor immediately.
Q: Can I use this data to train AI? A: NO, not on this Actor's authorization. Google's Terms restrict using content from its services to develop machine learning models, and job postings are written by employers and job boards who hold the rights in their text. Get your own licensing and legal review first.
Q: What about minors? A: This Actor returns job listings published by employers, not profiles of people. Its Terms still prohibit using the data to target or contact children (for example, using teen or student job listings to reach minors). See Part 4 for details.
Q: Why is there no job description?
A: The data source returns Google's results list (the job cards), not the opened job. The full text is on the original posting at applyUrl.
Q: How does new-job tracking work?
A: Turn on trackNewJobs and pick a memoryKey. Every job is still delivered, and each row gets isNew (first time this monitor has seen it) and firstSeenAt.
Q: Why did I get fewer jobs than maxJobsPerSearch?
A: Google simply had fewer listings for that search, or some were duplicates. In tests, a 100-job search returned 93 jobs, 91 unique, and a 200-job search returned 181.
Q: How do I get every job for a search?
A: Set maxJobsPerSearch to 0. That means "all results": every job available for the search, up to 200 per query x location (Google's maximum).
Q: Why did I get only 5 jobs? A: NOTE: Free Apify users receive up to 5 results per run. Upgrade to any paid Apify plan to remove this limit. This limit was set by the Actor developer, not by Apify.
Q: My run says SOURCE_UNAVAILABLE. What now? A: The job data source was temporarily unreachable. Searches that did not finish were not charged. Try again later; if it keeps happening, open an issue in this Actor's Issues tab with your run ID and the error type.
Q: How do I search a city instead of the whole country?
A: Put the city in locations ("Manchester"). If the name is ambiguous ("Springfield"), you get a LOCATION_AMBIGUOUS row listing the candidates and the run continues with your other locations; copy the full name you want ("Springfield,Illinois,United States") into locations.
Q: Will the same job appear twice if two queries find it?
A: No. This Actor deduplicates by Google's jobId across every query and location in the run, so each job is delivered and charged once per run.
Q: How to scrape Google Jobs?
A: Put your job titles in queries, pick a country, and add cities in locations if you want specific places. Run the Actor. Each job comes back as one row with title, company, location, salary (when shown), job type, posted date and apply link, ready to export as JSON, CSV or Excel. No Google account, cookies or proxies are needed.
Q: Is there a Google for Jobs API? A: Google has no public API that returns Google Jobs search results. Its job tools (job posting structured data and Cloud Talent Solution) are for publishing or searching your own job listings. This Actor works as a Google Jobs API: start it through the Apify API (see API and MCP above) and get the listings back as JSON.
Q: Can I get a job posting dataset?
A: Yes. Every run produces a dataset with one row per unique job posting: title, company, location, salary fields, job type, posted date, source (via) and apply link. Search several job titles and cities in one run, export the dataset, or run it on a schedule with trackNewJobs to build the dataset up over time. Rows are the listing cards, not full job descriptions.
Q: Where can I get job market data?
A: Run this Actor for the roles and cities you want to track. Each row has the job type (employmentTypes), the remote flag, the posted date and, when shown, the salary range, so you can count openings and compare posted pay by role, city and job type. Google returns at most about 200 listings per search, so counts show what is listed, not the total size of the market.
Q: Is this a jobs API? A: Yes, in practice. You can start a run and get the results in one call with the Apify API, or add the Actor as a tool in MCP clients such as Claude or Cursor (see API and MCP above). It returns job listing cards from Google Jobs, not a database of every job.
Q: Is there a free Google Jobs API? A: You can try this Actor on the free Apify plan. NOTE: Free Apify users receive up to 5 results per run. Upgrade to any paid Apify plan to remove this limit. This limit was set by the Actor developer, not by Apify.
Q: How much does the Google Jobs API cost? A: You pay per event on Apify: a start fee per run, a fee per finished search and a fee per job delivered. The exact prices are in the Pricing section above. Status rows and searches that fail are never charged.
Q: Which job posting fields do I get, and which not? A: Each row is one Google Jobs listing card:
| Common job posting field | In this Actor |
|---|---|
| Job ID | jobId |
| Job title, company | title, companyName |
| Location, remote | location, otherLocationsCount, isRemote |
| Employment type | employmentType (raw text), employmentTypes (normalized) |
| Salary range | salaryText, salaryMin, salaryMax, salaryCurrency, salaryPeriod (when shown) |
| Date posted | postedAgo, postedAtIso |
| Application URL | applyUrl (one per job), plus the source in via |
| Full description, skills, education, experience | Not included |
Q: Is it legal to scrape job postings? A: See "Is this legal?" above, and the Terms of Service and the Actor-Specific Addendum below.
🎬 Demo Videos
Run this Google Jobs API on a schedule, for example as a daily new-jobs monitor:
Send the job listings straight to Google Sheets, Make, Zapier or your own webhook:
🔗 Related Actors
- LinkedIn Jobs Scraper - job postings from LinkedIn Jobs, with the full LinkedIn job details.
- Google Trends Scraper - search interest over time, by region, with related queries, to see demand for a role or skill.
- Keyword Search Volume - monthly Google search volume, CPC and competition for a list of keywords.
- Google Shopping Scraper - product listings and prices from Google Shopping results.
🔧 How It Works
- Live data, no login. Every run searches Google Jobs at that moment. Nothing comes from a stored database, and you need no Google account, cookies or proxies.
- One search per job title x location. On paid plans the searches of a run are sent together, in batches of up to 100; on the free plan they run one after another. Each job is delivered once, even when several searches find it.
- Typical speed. Results for a search are usually ready after 15-35 seconds, and most runs finish in about a minute.
- What ends a run. All searches finished; the free-plan limit (5 results per run); your "Maximum cost per run" setting; or an input problem found at the start. Each case ends with a clear status message, and every stop except a normal finish adds one status row to the dataset.
- Output. One row per job in the Apify dataset. Export as JSON, CSV, Excel or HTML, or read it through the Apify API.
- Run defaults. 256 MB memory, 64,000 s timeout.
Apify Actor - Terms of Service
Version: 4.0 Effective Date: October 23, 2026
0. ACCEPTANCE BY USE - IMPORTANT
Read this section first.
These Terms of Service ("Terms") form a binding legal agreement between you ("User," "you," "your") and UnseenUser, the Publisher of this Apify actor ("UnseenUser," "the Publisher," "we," "us," "our").
0.1 How You Accept These Terms
You accept these Terms by any of the following actions, each of which constitutes a clear, affirmative act of acceptance:
- (a) Running the Actor - Initiating any execution of the Actor on the Apify platform
- (b) Using any output returned by the Actor for any purpose
- (c) Continuing to access the Actor's listing or documentation after these Terms are visible
0.2 Continuing Acceptance
Each time you run the Actor or use its outputs, you reaffirm your acceptance of the then-current Terms. If you do not agree to these Terms or any subsequent update, you must stop using the Actor immediately.
0.3 No Anonymous Acceptance
You cannot disclaim acceptance by:
- Failing to read these Terms before running the Actor
- Running the Actor through automated systems
- Sharing your Apify account with others who may not have read these Terms
By the act of running the Actor on Apify, you bind yourself, your organization (if applicable), and any individuals or systems acting on your behalf or under your authority.
0.4 If You Do Not Accept
If you do not agree to these Terms, you must not run the Actor. No use is authorized without acceptance.
PREAMBLE - UNDERSTANDING THE ARCHITECTURE
Before using the Actor, please understand the technical architecture of the service:
The Data Flow
You (User) → Apify Platform → Actor (software) → Third-Party API (DataForSEO) → Source Platform (Google)↓You (User) ← Apify Platform ← Actor (software) ← Third-Party API (DataForSEO)
What Each Party Does
- You (the User): Run the Actor on the Apify platform with input parameters you choose
- Apify: Operates the cloud infrastructure that hosts and executes Actors. Apify is a Czech-incorporated company (Apify Technologies s.r.o.) governed by its own Terms of Service.
- The Publisher (us): Publishes software code (the Actor) on Apify's platform. The Actor is a thin wrapper that translates your input into requests to a third-party API and returns the API's responses to you. The Publisher does not operate scraping infrastructure. The Publisher does not store or retain data returned by the Actor. The Publisher does not see, log, or process the personal data of any individuals returned in the Actor's outputs beyond what is incidental to passing the data through.
- Third-Party API Provider: DataForSEO (https://dataforseo.com). This is an independent third-party company that operates data infrastructure that retrieves public search engine result pages and returns them as structured data.
- Source Platform: Google (public search result pages). This is the platform whose publicly visible data is accessed by the Third-Party API Provider.
Why This Matters
Your relationship with the Publisher is that of a software user to a software vendor. The Publisher has the responsibilities of a software vendor (functional code, accurate documentation) and the limits of one (the Publisher is not responsible for how you use the data you obtain).
These Terms operate alongside but do not replace:
- Apify's Terms of Service and Acceptable Use Policy (governing your relationship with Apify)
- DataForSEO's Terms of Service (governing the underlying data infrastructure)
- Source Platform terms (Google) governing the public data accessed
- Applicable law in your jurisdiction and the jurisdictions of data subjects
These Terms incorporate the actor-specific addendum published in each Actor's individual listing ("Addendum"). In the event of a conflict, the more restrictive provision applies.
1. NATURE OF THE SERVICE
1.1 What the Actor Is
The Actor is a software program published on the Apify platform. Each Actor:
- (a) Accepts structured input from you on the Apify platform
- (b) Translates that input into HTTP requests to a third-party API operated by DataForSEO
- (c) Receives HTTP responses from that third-party API
- (d) Returns the response data to you in a structured format on the Apify platform
The Actor's source code is hosted on Apify's infrastructure. The Actor runs in Apify's cloud, not on the Publisher's servers. The Publisher operates no servers running the Actor.
1.2 What the Actor Is Not
The Actor is not:
- (a) A scraping tool - the Publisher does not operate scraping infrastructure, proxies, headless browsers, or fake accounts
- (b) A direct connection to any source platform - connections to source platforms are made by DataForSEO
- (c) A data storage or data retention service - the Publisher does not maintain a database of any data the Actor returns
- (d) A licensed access channel to Google (public search result pages) or any other source platform
- (e) Affiliated with, endorsed by, sponsored by, or authorized by any source platform
1.3 The Publisher's Limited Role
The Publisher's role is limited to:
- (a) Designing and writing the Actor's source code
- (b) Publishing the Actor on the Apify Store
- (c) Maintaining the Actor (updating it when API providers change schemas)
- (d) Providing documentation and customer support via Apify's contact mechanism
The Publisher is a software vendor, similar to a developer who publishes an app on the Apple App Store or Google Play Store. The Publisher is not a data provider, data broker, data processor, or data controller for purposes of GDPR, CCPA, Israel's Privacy Protection Law, or equivalent.
1.4 The Third-Party API Provider's Role
DataForSEO (https://dataforseo.com) is an independent third-party company. It:
- (a) Operates the actual data infrastructure that retrieves public search engine result pages
- (b) Maintains relationships with source platforms (or accepts the operational risk of accessing public data without such relationships)
- (c) Provides its own Terms of Service governing its operations
- (d) Is responsible for compliance obligations relating to the data collection itself
The Publisher is a customer of this provider. The Publisher is not its agent, partner, or representative.
2. WHO MAY USE THE ACTOR
2.1 Eligibility
You may use the Actor only if:
- (a) You are at least 18 years old or the age of majority in your jurisdiction
- (b) You have legal capacity to enter into binding contracts
- (c) You are not located in or resident of a country subject to comprehensive sanctions by the United States, European Union, United Kingdom, or Israel
- (d) You are not on any prohibited persons list
2.2 User Representations
By using any Actor, you represent and warrant that:
- (a) Truthful identity: Information you provide about your identity and intended use is accurate
- (b) Lawful intent: Your intended use complies with applicable law in your jurisdiction
- (c) Source platform compliance: You will independently comply with the Terms of Service of any source platform whose data you obtain through the Actor
- (d) Data subject rights: Where Actor outputs include personal data, you will respect data subject rights under applicable law
- (e) No prohibited use: You will not use the Actor for any of the purposes prohibited in Section 4
These representations are continuous - they must remain true throughout your use.
3. PERMITTED USES
The Actor may be used for any lawful purpose, including:
- Market research and competitive analysis
- Academic research
- Journalism and investigative reporting
- Internal business intelligence
- Brand monitoring
- Recruitment research where consistent with applicable employment law
- Building products that further process publicly available information lawfully
Specific permitted uses for each Actor are described in that Actor's individual listing and Addendum.
4. PROHIBITED USES
You may not use the Actor for any of the following:
4.1 Illegal Activity
Activity illegal under the law of your jurisdiction, the User's jurisdiction, or the jurisdiction of any data subjects.
4.2 Harassment, Stalking, and Personal Targeting
- Compiling profiles for harassment, stalking, or doxxing
- Tracking individuals' movements or activities without their knowledge
- Building profiles of journalists, activists, dissidents, or vulnerable populations for retaliatory purposes
4.3 Discrimination
- Using outputs for discriminatory employment, lending, housing, or insurance decisions based on protected characteristics
- Building lists for discriminatory purposes
4.4 Spam and Unsolicited Commercial Communication
- Sending unsolicited marketing in violation of CAN-SPAM, CASL, GDPR, PECR, Israeli Anti-Spam Law (סעיף 30א לחוק התקשורת), or equivalent laws
- Building "lead lists" from scraped contacts without proper consent infrastructure
- Reselling contact data for spam purposes
4.5 Fraud and Deception
- Identity theft or impersonation
- Generation of fake reviews, testimonials, or coordinated inauthentic behavior
- Election interference or political disinformation
- Securities fraud
4.6 Source Platform Abuse
- Using outputs to circumvent technical protection measures of source platforms
- Creating fake accounts on source platforms based on Actor outputs
- Vote manipulation, engagement manipulation, or platform algorithm gaming
- Building services that competitively substitute for source platforms
4.7 Reselling the Actor's Service
- Reselling raw Actor outputs as your own data product or scraping-as-a-service
- Sharing your Apify credentials to provide third parties indirect access
- Building competing API services using Actor outputs
4.8 AI Training Without Authorization
- Using Actor outputs as training data for commercial AI/ML models without separate licensing authority from the source platform
4.9 Sensitive Targeting
- Specifically targeting or profiling based on health conditions, sexual orientation, religious beliefs, political opinions, or other sensitive characteristics
- Targeting children under 16 (or local age of consent for data processing)
4.10 Privacy Law Violations
- Processing personal data of EU/UK/California/Israeli residents without complying with applicable privacy law
- Failing to honor data subject access, deletion, or objection requests
- Processing data for purposes incompatible with its publication context
5. SOURCE PLATFORM TERMS - YOUR RESPONSIBILITY
5.1 Acknowledgment
The Actor accesses publicly visible data on third-party platforms ("Source Platforms") through the Third-Party API Provider (DataForSEO). Source Platforms include Google (public search result pages).
5.2 Your Sole Responsibility
You acknowledge:
- (a) You are solely responsible for ensuring your downstream use of data obtained through the Actor complies with the Source Platform's Terms of Service
- (b) The Publisher makes no representation that any specific use is permitted under any Source Platform's terms
- (c) The Third-Party API Provider, not the Publisher, bears responsibility for the lawfulness of the data collection itself
- (d) You should review Source Platform terms before commercial use:
- Google: https://policies.google.com/terms
- DataForSEO: https://dataforseo.com/terms-of-service
5.3 Cease-and-Desist Compliance
If you receive a cease-and-desist letter or other legal demand from a Source Platform regarding your use of Actor outputs, you must:
- (a) Cease the contested use immediately
- (b) Notify UnseenUser within 48 hours via UnseenUser's Apify profile contact form (https://apify.com/UnseenUser)
- (c) Cooperate with the Publisher as needed to mitigate
- (d) Not assert against the Publisher any claim arising from your inability to use the Actor for that Source Platform
6. DATA PROTECTION - REFLECTING ACTUAL ARCHITECTURE
6.1 Roles Under Privacy Law
For purposes of GDPR, UK GDPR, CCPA, Israel's Privacy Protection Law (PPL) including Amendment 13, and equivalents:
- You (the User) are the Data Controller of any personal data you obtain through the Actor and subsequently process for your own purposes
- DataForSEO is the entity that collects data from the Source Platform (Google public search result pages) - it bears the responsibilities of a data processor or controller (depending on context) for the collection itself
- The Publisher acts solely as a software vendor, not as a data controller or processor, because the Publisher does not store, retain, or substantively process personal data - the Actor merely passes API responses through
6.2 No Data Retention by the Publisher
The Publisher confirms:
- (a) The Publisher does not maintain a database of personal data obtained through the Actor
- (b) The Actor passes data from the Third-Party API directly to you on the Apify platform - data does not flow through the Publisher's infrastructure
- (c) Apify's standard execution and operational logging may include limited information about Actor runs (input parameters, run duration, data volume) - this is governed by Apify's own privacy practices
- (d) The Publisher does not access, view, or analyze your Actor outputs except as needed for technical support if you specifically share them with the Publisher
6.3 Your Obligations as Data Controller
Where your use of the Actor involves processing personal data, you are responsible for:
- (a) Establishing a lawful basis for your processing (consent, legitimate interest with documented balancing test, contract, etc.)
- (b) Providing transparent notice to data subjects as required by applicable law
- (c) Honoring data subject access, rectification, erasure, restriction, and portability requests
- (d) Implementing appropriate security measures
- (e) Conducting Data Protection Impact Assessments where required
- (f) Appointing a Data Protection Officer if your operations require one
- (g) Registering databases with applicable supervisory authorities
- (h) Honoring opt-out requests for direct marketing
- (i) Cross-border transfer safeguards where data crosses borders
6.4 Israel's Amendment 13 - User Compliance
If your use of the Actor involves Israeli residents' personal data, you must comply with the Privacy Protection Law as amended (Amendment 13, effective August 14, 2025). These obligations are yours as the data controller, not the Publisher's as the software vendor.
6.5 Sensitive Data Targeting Restrictions
You will not use the Actor to specifically target, profile, or build datasets focused on:
- Health or medical conditions
- Religious beliefs
- Political opinions
- Sexual orientation or gender identity
- Genetic or biometric data
- Criminal history
- Children under 16
7. INTELLECTUAL PROPERTY
7.1 Actor Code
The Actor's source code, schemas, documentation, and branding are owned by the Publisher. You receive a limited, non-exclusive, non-transferable, revocable license to use the Actor for permitted purposes during your active subscription/run with Apify.
7.2 Output Data
The Publisher claims no ownership over the public data the Actor returns. Source Platforms may have copyright, database rights, or other rights in their data; data subjects may have copyright in user-generated content. Your use of output data must respect these rights independently.
7.3 Restrictions
You may not reverse engineer, decompile, or reuse the Actor's code in a competing actor.
7.4 Feedback
Feedback you provide may be used by the Publisher to improve products without compensation to you.
8. PRICING AND PAYMENT
8.1 Apify Platform Billing
Pricing is administered through Apify's pricing models. Apify processes all payments. Apify's payment terms govern refunds and disputes.
8.2 Pricing Changes
The Publisher may change Actor pricing with at least 14 days' notice via the Actor's Apify listing.
8.3 No Refunds for Misuse
If your access is suspended or terminated for breach of these Terms, you forfeit any unused balance and are not entitled to refunds.
9. SERVICE AVAILABILITY AND CHANGES
9.1 No Uptime Guarantee
The Actor depends on:
- (a) The Apify platform
- (b) Underlying API provider (DataForSEO)
- (c) Source Platforms' continued public accessibility
Any of these may change behavior, restrict access, or become unavailable without notice. The Publisher makes no uptime guarantees.
9.2 Service Discontinuation
The Publisher may discontinue any Actor at any time. Reasonable notice will be provided when feasible.
10. DISCLAIMERS
10.1 "AS IS" Service
THE ACTOR IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR PURPOSE, NON-INFRINGEMENT, OR ACCURACY OF DATA.
10.2 No Representation of Lawfulness
The Publisher makes no representation that your specific use of the Actor or the data it returns is lawful in your jurisdiction or under any Source Platform's terms. The burden of determining lawfulness for your use case is yours.
10.3 No Endorsement of Source Content
Content returned by the Actor was created by third parties. The Publisher does not endorse, verify, or take responsibility for it.
11. LIMITATION OF LIABILITY
11.1 Aggregate Liability Cap
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL THE AGGREGATE LIABILITY OF THE PUBLISHER FOR ALL CLAIMS RELATING TO THE ACTOR EXCEED THE GREATER OF:
- (a) ONE HUNDRED U.S. DOLLARS (US $100), OR
- (b) THE AMOUNTS YOU PAID THROUGH APIFY FOR USE OF THE ACTOR IN THE THREE (3) MONTHS IMMEDIATELY PRECEDING THE EVENT
11.2 Excluded Damages
THE PUBLISHER IS NOT LIABLE FOR INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, OR FOR LOSS OF PROFITS, REVENUE, OR DATA, EVEN IF ADVISED OF THE POSSIBILITY.
11.3 Time Limit
Any claim must be brought within one (1) year of the event.
12. INDEMNIFICATION
12.1 Your Indemnification of the Publisher
You agree to defend, indemnify, and hold harmless the Publisher from any:
- Claims arising from your use of the Actor
- Claims arising from your violation of these Terms
- Claims arising from your violation of any law (including privacy law)
- Claims arising from your violation of any Source Platform's Terms of Service
- Claims arising from your processing of personal data obtained through the Actor
- Reasonable attorneys' fees and costs of defending such claims
12.2 Defense
The Publisher may assume defense at your expense. You will cooperate with the Publisher's defense.
12.3 Scope
The indemnification covers reasonable, foreseeable third-party claims arising from your use. It does not extend to:
- Claims arising from the Publisher's gross negligence or willful misconduct
- Claims regarding the Actor's source code itself (those are the Publisher's responsibility)
- Claims regarding the Third-Party API Provider's data collection (those are their responsibility)
13. SUSPENSION AND TERMINATION
13.1 Termination by the Publisher
The Publisher may terminate your access for material breach, illegal use, breach of warranty, or upon credible legal demand.
13.2 Effects of Termination
Your license ends, you must cease use, and applicable provisions survive.
13.3 Termination by You
You may stop using the Actor at any time on Apify.
14. DISPUTE RESOLUTION
14.1 Informal Resolution First
Send a detailed written description of the dispute via UnseenUser's Apify profile contact form (https://apify.com/UnseenUser) and wait 60 days for resolution attempt before any formal claim.
14.2 Governing Law
These Terms are governed by the substantive laws of the State of Israel, without regard to conflict of law principles.
14.3 Exclusive Jurisdiction
Any dispute shall be brought exclusively in the competent civil courts of Tel Aviv-Jaffa, Israel.
14.4 No Class Actions
You agree to bring claims only in your individual capacity.
14.5 Attorneys' Fees
The prevailing party recovers reasonable attorneys' fees.
15. MISCELLANEOUS
15.1 Entire Agreement
These Terms (with Addendum and incorporated documents) are the entire agreement.
15.2 Severability
Unenforceable provisions are reformed to the minimum extent or severed.
15.3 Assignment
You may not assign without the Publisher's consent. The Publisher may assign to affiliates, successors, or acquirers.
15.4 Force Majeure
Neither party is liable for failure due to events beyond reasonable control, including changes by Source Platforms or the Third-Party API Provider, or actions by Apify.
15.5 Third-Party Beneficiaries
Apify and DataForSEO are intended third-party beneficiaries of Sections 4 (Prohibited Uses), 5 (Source Platform Compliance), and 12 (Indemnification).
15.6 Survival
Sections 0 (Acceptance), 4, 5, 6, 7, 10, 11, 12, 14, and 15 survive termination.
15.7 Language
English controls. Translations are for convenience only.
15.8 Publisher Identification for Legal Process
The Publisher operates on the Apify platform under the username UnseenUser (apify.com/UnseenUser). The Publisher is a registered legal entity. Upon receipt of valid legal process (subpoena, court order, or equivalent) directed through Apify's official channels, the Publisher's full legal identity may be disclosed as required by law. This Section ensures that you have a valid path to legal recourse if needed.
16. ACKNOWLEDGMENT
By using any Actor, you acknowledge that:
- (a) You have read these Terms
- (b) You understand the architecture: you are using software (the Actor) on Apify's platform that calls third-party APIs
- (c) You accept responsibility for your use, including for compliance with Source Platform terms
- (d) Your indemnification obligations cover third-party claims arising from your use
- (e) Disputes are resolved in Israeli courts
- (f) The Publisher's identity, while not publicly disclosed in this listing, can be obtained through valid legal process via Apify
For questions, use UnseenUser's Apify profile contact form (https://apify.com/UnseenUser) before running the Actor.
APPENDIX - Document Version History
| Version | Date | Summary |
|---|---|---|
| 1.0 | May 5, 2026 | Initial publication |
| 2.0 | May 5, 2026 | Hardened (over-broad - treated User as data broker) |
| 3.0 | May 5, 2026 | Architecturally accurate - Publisher as software vendor |
| 4.0 | May 5, 2026 | Anonymous Publisher. All personally identifying information removed. Acceptance-by-Use mechanism formalized. |
These Terms reflect best practices for anonymous Apify actor publishing as of May 2026. Not a substitute for legal advice. Consult qualified Israeli commercial counsel before deploying.
🛡️ Actor-Specific ToS Addendum - 💼 Google Jobs Scraper
This addendum supplements the Master Terms of Service V4.0. By running this Actor, you accept both the Master ToS and this addendum.
A. Architectural Disclosure
This Actor is a software wrapper. It accepts your input parameters, calls 1 billed DataForSEO endpoint (/v3/serp/google/jobs/task_post) together with its free result getter (/v3/serp/google/jobs/task_get/advanced/{id}) and, when you enter a plain city name, the free locations lookup (/v3/serp/google/locations/{country}), and returns the response data to you on the Apify platform. UnseenUser does not store, log, or substantively process the data returned. The data flows from DataForSEO through Apify's runtime directly to you. The only state the Actor keeps is the optional trackNewJobs memory (job IDs and dates), and it lives in a key-value store inside your Apify account, not with UnseenUser (see Section J).
B. Nature of Data Returned
This Actor returns: job listing cards from Google's public job search results. Each row contains a Google job ID, job title, employer name, an employer logo link (hosted on a CDN), a location text with a remote flag, the name of the job board or careers site the listing comes from, one link to that listing, the salary text when Google shows one (with parsed minimum, maximum, currency and period), Google's employment-type text, an estimated posted date, search context (your query, location, language and Google's check URL) and, when trackNewJobs is on, isNew and firstSeenAt. Status rows describe problems or limits and contain no job data. It does NOT return job descriptions, qualifications, benefits, recruiter names, contact details, or any applicant data. In seven live test searches (324 listings in the US, UK and Germany) no recruiter names, emails or phone numbers appeared.
Where the Actor's output includes individual people's names, photos, contact details, or content authored by them, that data constitutes personal data subject to GDPR, CCPA, Israeli Privacy Protection Law (including Amendment 13), and equivalent privacy laws in your downstream processing - but only in your hands as the data controller, not in UnseenUser's hands as the software vendor.
C. Permitted Use Cases
You may use this Actor for the following purposes (non-exhaustive list):
- Job board backfill - fill empty category or city pages with fresh listing cards (title, company, location, apply link) and refresh them daily, publishing only rows with
isNew: true - Salary benchmarking - collect posted salary ranges for a role across cities, parsed into min, max, currency and period
- Hiring-signal sales triggers - spot which companies are hiring for a role in a region this week and route those accounts to your sales team
- Labor market research - count openings per role, city and employment type to track demand over time
- Recruiting market mapping - see which employers and which job boards dominate a role in a given city before you plan a campaign
- Competitive monitoring - watch which roles a competitor posts publicly, by location and job type
- Academic research - build longitudinal datasets of posted wages and remote-work share by role and country
D. Specifically Prohibited Uses
In addition to Master ToS Section 4 prohibitions, you may NOT:
- Publish fake, expired-but-presented-as-open, or altered job listings built from this data (for example changing the employer, salary or location), or use listings as bait to collect applicants' personal data or fees
- Use the data to run job scams, "pay to apply" schemes, or phishing pages that imitate the original employer or job board
- Use competitors' posted salary data to agree, coordinate or signal wage levels with other employers (wage-fixing; see Section H)
- Use job listings or employer names to infer and target people's protected characteristics (for example contacting people who work at a religious organization because of that affiliation)
- Strip the source attribution (
via) and present other job boards' listings as your own exclusive postings - Resell the raw output as a "Google Jobs API" or bulk job feed (Master ToS 4.7)
- Use employer logos (
companyLogoUrl) in a way that suggests the employer endorses or partners with you
E. Platform Terms of Service Considerations
Google's Terms of Service restrict automated access that ignores machine-readable crawling rules (such as robots.txt) and list "scraping content that doesn't belong to you" as conduct that can lead to suspension. Google has not, to the Publisher's knowledge, litigated against job-listing scrapers, but it has a long history of restricting automated access to its search results. This Actor accesses publicly visible Google search result data via the job data source - the job data source bears responsibility for the lawfulness of the data collection. Your downstream use must independently comply with Google's Terms of Service and with the terms of the job boards and careers sites the listings link to (Indeed, LinkedIn, Glassdoor, SimplyHired, Bundesagentur für Arbeit and others each have their own terms).
If Google issues a cease-and-desist regarding data obtained via this Actor, notify UnseenUser within 48 hours via the Apify profile contact form (apify.com/UnseenUser) and cease your use immediately.
F. Cost Disclosure - What You Pay For
The Actor charges you a start fee per run (apify-actor-start), a fee per finished search (each query x location pair that completes, including searches with no results), and a fee per job delivered. See the Pricing section of this README. What this means for you:
- The Actor checks your remaining budget before every charge. When the next charge would not fit, it stops cleanly with one
MAX_CHARGE_REACHEDrow. You are never charged beyond your limit. - Every job you pay for is delivered.
trackNewJobsonly labels rows withisNewandfirstSeenAt; it never hides them. - Never charged: status rows (errors, notices, limits), searches that fail or time out, run-level duplicates, and items beyond
maxJobsPerSearch. - Free Apify plan: up to 5 job rows per run, then a
FREE_PLAN_LIMITrow. This limit is set by the Actor developer, not by Apify.
G. NOT a Full Job Description - Disambiguation
The endpoint returns Google Jobs listing cards (the results list), NOT the opened job with its full description, qualifications, responsibilities, benefits and list of apply options. This must be clear in the Apify listing title and description. Mislabeling will result in:
- Negative reviews
- Refund requests
- Trust erosion in the broader UnseenUser actor catalog
Use the title "Google Jobs Scraper" with the short description naming the exact fields - never "Google Jobs Full Description Scraper" or "Google Jobs with Apply Options". In the README, keep the "Be clear about what this is NOT" paragraph in the first screen.
H. Salary Data and Competition Law
Posted salary ranges are a powerful benchmark, and they are also the kind of data competition authorities watch. In 2023 the US Department of Justice and FTC withdrew their older "safe harbor" guidance for sharing wage information, and both agencies have brought wage-fixing and no-poach cases. EU and UK competition authorities treat the exchange of future pay intentions between competitors as a possible cartel. Practical rules:
- ✅ "We looked at public postings for data analysts in Leeds to set our own pay band" - permitted (independent use of public data)
- ✅ "We publish a quarterly report of posted salary ranges by role" - permitted (aggregated, public, historical)
- ❌ "We share our scraped competitor-salary dashboard with three other employers so we all stay below X" - coordination; potentially illegal wage-fixing
- ❌ "We use posted ranges to auto-match every competitor's offer downward" through a shared tool used by several employers - algorithmic coordination risk
Also note that many jurisdictions now require pay ranges in job ads (for example several US states and the EU Pay Transparency Directive, due for national implementation by June 2026). Posted ranges are what the employer chose to publish, not what is actually paid; do not present them as actual earnings. This is information, not legal advice; consult competition counsel for anything beyond independent benchmarking.
I. Search Result Reliability
Results reflect one emulated Google search at one moment. Know the limits before you build decisions on them:
- Location emulation: the data source emulates the chosen location as closely as possible but cannot guarantee Google's local results.
- Estimated dates:
postedAtIsois calculated back from "N days ago" at search time (day-level accuracy). About 30-45% of jobs have no date. isNewis relative to your monitor, not to Google: it means "first time thismemoryKeyhas seen this job", not "posted today". A job posted weeks ago isisNew: truethe first time your monitor sees it.- Free-text salary: parsing is best effort. Always keep
salaryTextas the source of truth. US listings often have no currency symbol; currency then comes from the country (salaryCurrencySource: "country_default"). - Remote flag:
isRemoteis true only when Google shows "Anywhere" (verified in English only). A job can be remote without that label. - Counts are not market size: Google returns at most about 200 listings per search, and the source's total-results count is 0, so you cannot read total market size from one search.
- Listings may be stale or closed: Google and job boards show listings that may already be filled. Do not present them as guaranteed open positions.
J. New-Job Tracking Memory (trackNewJobs) - What Is Stored and Where
When trackNewJobs is enabled, the Actor keeps a list of Google job IDs with the date each was first and last seen, so it can mark later rows isNew: false. To be precise:
- The memory is a named key-value store (
google-jobs-memory-<memoryKey>) created in your Apify account. UnseenUser cannot read it and does not keep a copy. - It stores only job IDs and dates. No titles, companies, salaries or links.
- It never removes rows from your results. Every job delivered is a job you paid for, and every job you paid for is delivered.
- Entries not seen for 90 days are deleted automatically. You can delete the store at any time to reset the monitor.
- Job IDs identify job postings, not people. They are not personal data in normal use. If you combine them in your own systems with data about people (for example who applied to which job), that combined dataset is yours to protect as data controller.
K. Job Board Content, Logos and Republishing
Each listing originates from an employer or a job board. The title is a short fact, but the listing as a whole, the employer's logo, and the job board's curation carry rights and terms of their own:
- Logos (
companyLogoUrl) are the employers' trademarks. Showing a logo next to that employer's own listing is common practice; using it in ads, on your homepage, or in a way implying partnership is not. - Attribution: keep
viaandapplyUrlso candidates reach the original listing. Several job boards' terms restrict republishing their listings without a link back or a partnership. - Job board backfill: if you run a public job board, link out to
applyUrlrather than copying listings as your own postings, honor removal requests from employers within a reasonable time, and refresh or expire listings so closed jobs disappear (rows that stop appearing in your monitor are a good expiry signal). - AI training: do not use the output to train commercial AI models without your own licensing review (Master ToS 4.8). The source text belongs to employers and job boards.
L. Personal Data Edge Cases
The data is about jobs and employers, not people, but personal data can still appear at the edges:
- Sole traders and small businesses: an "employer name" can be a person's own name (a private household hiring a nanny, a one-person practice). Treat those rows with personal-data care.
- Free text in titles: employers sometimes put a contact name or a phone number in the job title. Do not extract, store or use such details for outreach.
- Hiring-signal outreach: if you use "Company X is hiring" as a sales trigger, the outreach goes to people at that company. Their contact details come from elsewhere, and GDPR, the Israeli Anti-Spam Law (Communications Law section 30A, which requires prior consent for marketing messages in Israel), CAN-SPAM and CASL apply to that outreach, not to this Actor.
- Minors: do not use teen, student or entry-level listings as a way to reach or profile minors. Master ToS 4.9 and 6.5 apply.
If a data subject contacts YOU directly demanding deletion of their data, honor the request promptly (typically within 30 days under GDPR), do not route them to UnseenUser (UnseenUser is the software vendor, not the data controller), and document the request and your response.