LinkedIn Jobs Scraper | No Login, Exact Country Filter avatar

LinkedIn Jobs Scraper | No Login, Exact Country Filter

Pricing

from $1.05 / 1,000 job results

Go to Apify Store
LinkedIn Jobs Scraper | No Login, Exact Country Filter

LinkedIn Jobs Scraper | No Login, Exact Country Filter

Scrape LinkedIn jobs with LinkedIn's exact country id picked for you, where the most-used LinkedIn scrapers need a manual geoId or city text; other-country results dropped and filtered-out jobs free. No login: title, company, salary, job type, date. $1.50 per 1,000.

Pricing

from $1.05 / 1,000 job results

Rating

0.0

(0)

Developer

Aurelix

Aurelix

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Share

What is LinkedIn Jobs Scraper?

Export LinkedIn jobs for any keyword and country to Excel, CSV or JSON (title, company, salary, job type, posted date) for $1.50 per 1,000 jobs, no login.

For job boards, recruiters and labour-market researchers. LinkedIn's exact country ID is picked for you, jobs from other countries are dropped, and filtered-out or duplicate jobs are never charged. Your first run with the example input costs about $0.015 (10 jobs in our test run).

LinkedIn Jobs Scraper: example output from a real run

LinkedIn Jobs Scraper: 75-second demo video

▶ Watch the 75-second demo

Search byKeywords + country/location, or LinkedIn job search URLs
FiltersDate posted, job type, experience level, workplace type (date re-checked on every result; job type and level whenever details are on)
Output19 fields per job; JSON, CSV, Excel, API
AutomateSchedules, webhooks, Zapier, Make, n8n, Google Sheets, MCP for AI agents
Price$1.50 per 1,000 jobs ($1.05 per 1,000 jobs on paid Apify plans)
Login neededNo

Why LinkedIn Jobs Scraper users pick this one

  • Results stay in your country. LinkedIn's exact country ID; jobs from other countries are dropped.
  • Filters that actually filter. Date posted re-checked on every result; job type whenever details are on.
  • Exact limits. Ask for 100 jobs, get and pay for at most 100.
  • A fresh-jobs feed. New-jobs-only mode for job boards and newsletters.
  • Misses are free. Filtered-out, unrelated and duplicate jobs are never charged.

Get started in 3 steps

  1. Type job keywords (e.g. 'data engineer') or paste LinkedIn job search URLs.
  2. Optionally pick a country, location, date posted, job types, experience levels, workplace types and the exact number of jobs per search.
  3. Click Start, then download JSON, CSV or Excel, or schedule it and send results to Google Sheets, Zapier, Make or n8n.

▶ Try it with the example input

The form opens with an example input already filled in: that run costs about $0.015 on the free plan.

How much does it cost to scrape LinkedIn jobs?

Pay per event: you pay only for what the run returns, plus a small start fee. Bronze, Silver, Gold and higher Apify plans pay less per result.

JobsFree planPaid plans (Bronze, Silver, Gold)
100$0.15$0.11
1,000$1.50$1.05
10,000$15.00$10.50

Totals include the $0.00005 start fee per run, rounded to the cent. Apify's free plan includes $5 of credit a month, enough for about 3,300 jobs.

Apify datacenter proxy is included in the price; no other proxy is used. Dropped and duplicate jobs are never charged.

Billing events

EventFree planPaid plans (Bronze, Silver, Gold)
job-result$1.50 per 1,000 jobs$1.05 per 1,000 jobs
apify-actor-start$0.00005 per run$0.00005 per run

LinkedIn Jobs Scraper vs alternatives

This Actorcurious_coder/linkedin-jobs-scrapervalig/linkedin-jobs-scraper
Price per 1,000 jobs, free plan$1.50 (changing to $0.50 soon)$2.00$0.40
Price per 1,000 jobs, paid plans$1.05 (changing to $0.40 soon)$1.00$0.36
Start fee per run$0.00005 (changing to $0.0005 soon)$0.00005$0.001 ($0.0009 paid)
Platform usage billed on topNoNoNo
Country picked by LinkedIn's exact country id✓Manual geoId✗ (city, state or zip text)
Results naming another country dropped✓not statednot stated
Job type and level filters re-checked on each job page✓ with details on (default; level where shown)✗✗
Jobs dropped by your filters not charged✓not statednot stated
Only-new-jobs mode for scheduled runs✓not statedManual (skip job IDs)
Slack or webhook digest after each run✓not statednot stated

Prices checked regularly on each Actor's Store page.

Benchmarks: how we compare

RunJobs returnedRun timeWhat we checked
Prefilled form: data engineer, 10 jobs10not recordedCharged $0.015 in total
nurse, actuary, data engineer, pharmacist; US; 50 each; details on200 (50 each)229-254 s per search200 of 200 relevant to the keyword, incl. 'RN' and 'Actuarial Analyst' titles; no relevant card dropped
Same 200 jobs: fields filled200-seniority, employment type, industries, applicants and description 200/200; company page 196/200; salary 19/200 (only where LinkedIn shows one)
10 jobs against the public job page10-10 of 10 field by field: title, company, location, seniority, employment type, industries, posted age, salary
actuary, Canada, past month, details off, max 10010034 sExact limit
actuary, Canada, past month, details off, max 1,000800146 sAll jobs the search yielded after the keyword check
US, past week, full-time, datacenter proxy30not recorded4 HTTP 429 refusals recovered; 1 job dropped by the job-type re-check
3 keywords, US, 150 each, no proxy (stress test)450673 s62 HTTP 429 refusals recovered by back-off; run succeeded
Local test: 429 on 2 of 10 job pages8-8 jobs delivered, 2 skipped and counted in the status message; run succeeded
Only new jobs: max 5, then max 10, then max 10 again5, then 10, then 104 s and 6 s (first two)0 repeats; already-seen jobs do not count toward the limit
Nonsense keyword, US, max 5005 sRun succeeded; no job charges

Single runs on the Apify cloud with the datacenter proxy unless the row says otherwise, taken from our test logs; the 429 test ran locally against saved LinkedIn pages with refusals injected. Relevance was judged by reading every title; field accuracy compared 10 random jobs with linkedin.com/jobs/view. Run times depend on how often LinkedIn rate-limits.

What data you get

LinkedIn Jobs Scraper turns public LinkedIn job postings into clean rows: title, company, location, salary where LinkedIn shows it, seniority, job type, posted date, job link and the full description. Search by keyword and country (LinkedIn's exact country id, so results stay in the country you picked), or paste LinkedIn job search URLs. Jobs that fail your filters are dropped and never charged.

  • Title, company and company LinkedIn page
  • Location and detected ISO country codes
  • Posted date (ISO 8601) and relative age
  • Clean job link (no tracking parameters)
  • Seniority level, employment type, industries
  • Applicant count as shown, salary where LinkedIn shows it
  • Full description as text and HTML
titlecompanylocationposted_dateseniorityemployment_typejob_url
Data EngineerSamsaraToronto, Ontario, Canada2026-10-30Mid-Senior levelFull-timehttps://www.linkedin.com/jobs/view/4483401370/
Ingénieur principal de donnéesLGS, an IBM CompanyMontreal, Quebec, Canada2026-10-30Mid-Senior levelFull-timehttps://www.linkedin.com/jobs/view/4477480926/
Data Engineer (Snowflake, Azure Data Factory, Python & SQL)CognizantHalifax, Nova Scotia, Canada2026-10-29Mid-Senior levelFull-timehttps://www.linkedin.com/jobs/view/4458304201/

One full job record, exactly as a real run returned it (long text and lists shortened here). From a real run:

{
"job_id": "4466544261",
"title": "Data Engineer I",
"company": "Docebo",
"company_url": "https://www.linkedin.com/company/docebo",
"location": "Toronto, Ontario, Canada",
"countries": [
"CA"
],
"posted_date": "2026-09-15",
"posted_ago": "1 month ago",
"job_url": "https://www.linkedin.com/jobs/view/4466544261/",
"seniority": "Entry level",
"employment_type": "Full-time",
"industries": "Software Development",
"applicants": "Over 200 applicants",
"salary_text": "CA$68,600.00/yr - CA$91,500.00/yr",
"description_text": "Artificial Intelligence. Actual Impact.\n\nAt Docebo, we’re using AI to change how people learn at work—and we mean actual... [7131 more characters]",
"description_html": "<strong>Artificial Intelligence. Actual Impact.<br/><br/></strong>At Docebo, we’re using AI to change how people learn a... [7612 more characters]",
"search_country": "CA",
"source_url": "https://www.linkedin.com/jobs/view/4466544261/",
"scraped_at": "2026-11-04T11:17:58Z"
}

Use cases

  • Recruiters and staffing agencies tracking new roles in one country
  • Job boards and newsletters backfilling fresh postings daily with the new-jobs-only mode
  • Market researchers measuring hiring demand by title, city or seniority
  • Sales teams spotting companies that are hiring for a role they sell to

Use-case recipes

Daily new-roles feed for one country

For job boards, newsletters and recruiters. Set the roles you cover as keywords, pick the country, choose Past 24 hours and switch on 'Only new jobs since last run', then schedule it daily. Use job_id as the key in your database and job_url as the link; jobs already returned are skipped and not charged.

{
"keywords": [
"data engineer",
"analytics engineer"
],
"country": "CA",
"datePosted": "past24h",
"incremental": true,
"maxResultsPerSearch": 50
}

Hiring-demand snapshot by seniority

For labour-market researchers. Run one role for the past month with details on. Count rows by seniority, employment_type and location to see where demand sits; applicants gives LinkedIn's competition hint for each posting.

{
"keywords": [
"registered nurse"
],
"country": "US",
"datePosted": "pastMonth",
"jobTypes": [
"fullTime"
],
"maxResultsPerSearch": 100
}

Fast list of companies hiring for what you sell

For sales teams. Search the job titles that signal a need for your product with details off, which is faster and returns title, company, location, date and link. Group by company and company_url, then add the companies that show up often to Hiring Signal Monitor for weekly changes.

{
"keywords": [
"salesforce administrator"
],
"country": "GB",
"datePosted": "pastWeek",
"includeDetails": false,
"maxResultsPerSearch": 100
}

Re-run a search you built on LinkedIn

For anyone who already has a working search on linkedin.com/jobs. Copy the URL from the address bar into Search URLs; its keywords, location or geoId and filters are kept. Schedule it with new-only mode to watch that exact search.

{
"searchUrls": [
"https://www.linkedin.com/jobs/search/?keywords=python&geoId=101174742&f_TPR=r604800"
],
"maxResultsPerSearch": 25,
"incremental": true
}

Input

FieldTypeWhat it doesDefault
keywords (Job keywords)arrayOne search per entry, e.g. ['data engineer', 'nurse'].
maxResultsPerSearch (Max jobs per search)integerExact upper limit of jobs returned for each keyword or URL.50
country (Country)stringRestrict to one country using LinkedIn's exact country id (not fuzzy text), and drop any result whose location names another...
location (Location (optional))stringCity or region as typed on LinkedIn, e.g. 'Toronto, Ontario, Canada'.
datePosted (Date posted)stringOnly jobs posted within this window."any"
jobTypes (Job types)arrayAny of: fullTime, partTime, contract, temporary, internship, volunteer, other.

All 15 fields, with examples: see the Input tab.

Switching from curious_coder/linkedin-jobs-scraper

Already running curious_coder/linkedin-jobs-scraper? Map its input fields to this Actor's like this:

curious_coder/linkedin-jobs-scraper inputThis Actor's inputNotes
urlssearchUrlsPaste the same linkedin.com/jobs/search URLs. Their own filters go to LinkedIn as they are; only keyword relevance is re-checked on their results.
limitPerSourcemaxResultsPerSearchExact cap per keyword or URL, 1 to 1,000 (default 50). You get and pay for at most that many.
keywordskeywordsTheirs is one string; ours is a list, one search per entry.
locationcountry + locationPick the country from the list to use LinkedIn's exact country id; location text such as 'Toronto, Ontario, Canada' narrows within it.
geoIdcountryNo geoId lookup for the 30 listed countries. For any other place, put its geoId in a search URL.
datePosteddatePostedany, past24h, pastWeek or pastMonth; results are re-checked against the posted date.
companyIdssearchUrls with f_C=No separate field: add f_C=
scrapeCompanyno equivalentYou get the company name and its LinkedIn company page URL, not company details.
under10Applicantsno equivalentThe applicants field holds LinkedIn's count text (e.g. 'Over 200 applicants') when details are on; filter after the run.
splitByLocationno equivalentLinkedIn shows about 1,000 jobs per search; add one keyword or search URL per city instead.
  • Output naming: one row per job with job_id (LinkedIn's numeric id), job_url (a clean /jobs/view/ link without tracking), posted_date, seniority, employment_type, salary_text, countries and search_country.
  • A job found by several keywords or URLs in one run is returned once and charged once.
  • Pricing is per job returned; jobs dropped by the keyword, country, date, job type or level checks are free. The comparison table above shows $1.50 per 1,000 jobs on the free plan against their $2.00.
  • There is no proxy setting: every run uses Apify datacenter proxy, included in the price.

Use with AI agents (Apify MCP server, Claude, ChatGPT, n8n AI agent)

LinkedIn Jobs Scraper is a ready-made tool for AI agents. Through the Apify MCP server an agent reads this Actor's input schema, fills in the input from your request, starts the run and reads the jobs back. You pay the same per-result price as a run started by hand, from your own Apify account.

Example prompts

  • "Find 50 data engineer jobs in Canada posted on LinkedIn in the past week and give me a table with company, city, seniority and job link"
  • "Pull full-time registered nurse jobs in the United States from LinkedIn posted in the last 24 hours and count them by city"
  • "Get 100 product manager jobs in the United Kingdom from LinkedIn and list the companies hiring, with the salary where LinkedIn shows one"

Claude (claude.ai and Claude Desktop)

Open Settings > Connectors, choose Add custom connector, paste https://mcp.apify.com/?tools=aurelix/linkedin-jobs and sign in to Apify when asked. Then ask Claude one of the prompts above.

Claude Code, Cursor, VS Code and other MCP clients

$claude mcp add --transport http apify "https://mcp.apify.com/?tools=aurelix/linkedin-jobs"

Clients configured with JSON take the same URL:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=aurelix/linkedin-jobs"
}
}
}

A client without Apify sign-in sends the header Authorization: Bearer <YOUR_APIFY_TOKEN>; to run the server locally instead, use npx -y @apify/actors-mcp-server --actors aurelix/linkedin-jobs with APIFY_TOKEN set.

ChatGPT

Where your ChatGPT plan offers custom connectors (developer mode), add https://mcp.apify.com/?tools=aurelix/linkedin-jobs as a connector, sign in to Apify, and ask for the data in plain words.

n8n AI agent

Give an AI Agent node an MCP Client Tool with the endpoint https://mcp.apify.com/?tools=aurelix/linkedin-jobs and a Bearer credential holding your Apify token. The agent can then call LinkedIn Jobs Scraper whenever a workflow step needs jobs; for a fixed, non-agent workflow use Apify's n8n node with Run Actor instead.

Use it from AI agents (MCP), the API or no-code

Copy this to your AI assistant

Use the Apify Actor aurelix/linkedin-jobs (LinkedIn Jobs Scraper) through Apify's MCP server or API. Main input: keywords (Job keywords); maxResultsPerSearch (Max jobs per search). Example input: {"keywords": ["data engineer", "product manager"], "country": "CA", "datePosted": "pastWeek", "jobTypes": ["fullTime"], "maxResultsPerSearch": 100}. Each result is one job with fields such as job_id, title, company, company_url, location, countries, posted_date, posted_ago. It costs $1.50 per 1,000 jobs on Apify's free plan plus a $0.00005 start fee per run, and needs no login.

MCP server URL for this Actor: https://mcp.apify.com/?tools=aurelix/linkedin-jobs (setup for each client in the section above).

API

Start a run and read the dataset with Apify's REST API or the Python and JavaScript clients:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("aurelix/linkedin-jobs").call(run_input={"keywords": ["data engineer", "product manager"], "country": "CA", "datePosted": "pastWeek", "jobTypes": ["fullTime"], "maxResultsPerSearch": 100})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

No-code: schedule it in 3 clicks

Send the results to Google Sheets, Zapier, Make, n8n, Slack or any webhook URL.

  1. Fill in the input, then click Save as a new task.
  2. In the task, click Schedule and pick daily or weekly (Apify Schedules).
  3. Turn on Only new jobs since last run so each run returns only what is new, and paste a Slack or webhook URL into Slack webhook URL / Webhook URL to get a digest of the new items (count plus the top 10) after every run.

Prefer n8n or Make? Ask in the Issues tab and we will share a ready-made workflow for it.

FAQ

Can I scrape LinkedIn jobs without login?

No. The Actor reads only LinkedIn's public job pages that anyone can open without logging in. It never logs in and never uses cookies from an account.

Is there a LinkedIn jobs API?

You can use this Actor as one. Start it with Apify's REST API or the Python and JavaScript clients and read the results as JSON (see the code above), or call it from an AI agent through MCP.

How much does it cost to scrape LinkedIn jobs?

About $1.50 for 1,000 jobs on Apify's free plan and $1.05 on paid plans, start fee included. The free $5 monthly credit covers about 3,300 jobs.

Can I export LinkedIn jobs data to Excel or Google Sheets?

Yes. Download the results as Excel, CSV, JSON, XML or HTML from the run's Storage tab, or send them to Google Sheets with Apify's Google Sheets integration or the API.

It reads only public data any logged-out visitor can see: LinkedIn job postings. It goes at a polite pace, never logs in and never solves CAPTCHAs. It returns job posting fields (title, company, location, dates, description, link); personal emails in descriptions are removed and no member profiles or recruiter cards are read. To have a record removed, open an issue on this Actor's Issues tab; if LinkedIn formally asks us to stop, this Actor will stop. You are responsible for using the data lawfully, incl. anti-spam and privacy laws; this is not legal advice.

Will my LinkedIn account get blocked?

No. It never uses a LinkedIn account, so there is none to block. It reads LinkedIn's public job search, the pages a logged-out visitor sees.

Why did I get fewer jobs than the limit?

LinkedIn shows at most about 1,000 jobs per search, and results whose location, date, type or level do not match your filters are dropped (counted in the log). Narrow searches can have fewer matches.

How is the country filter made correct?

Instead of free-text location, the search uses LinkedIn's numeric country id (verified for 30 countries), then any result whose location clearly names another country is removed.

What happens when LinkedIn rate-limits?

On HTTP 429 the Actor waits (honouring Retry-After, doubling each time) and switches to a fresh proxy session. A search stops after six straight refusals and other searches carry on. The run still succeeds with the jobs it found, and its status message names the searches that stopped early.

What am I charged for an empty or partial run?

Only jobs written to the dataset are charged, plus the small per-run start fee. Jobs dropped by the keyword, country, date, job type or level checks, duplicates and already-seen jobs are free. A search whose result pages show no matching titles three pages in a row stops early: in our test a nonsense keyword finished in about 5 s with 0 jobs. If LinkedIn rate-limits a search, the jobs found so far are kept and charged, and the status message names the searches that stopped. A run fails only when the input is invalid, or when every search failed and nothing was found.

How are duplicates handled?

By LinkedIn's job id. A job found by several keywords or search URLs in the same run is returned once, by the first search that finds it, and charged once. Across runs, switch on 'Only new jobs since last run'.

How long does a run take?

With details on, the Actor opens each job's public page, two at a time with short pauses, so it is polite and slower: in our test runs 50 jobs per search took about 4 minutes. With details off it reads only search pages: 100 jobs in 34 s and 800 jobs in about 2.5 minutes. LinkedIn rate-limiting adds waits.

What changes when I turn off 'Include description, seniority and employment type'?

Each job then comes from the search card only: title, company, company page, location, countries, posted date, job link and salary text where the card shows it. Seniority, employment type, industries, applicants, posted age and description stay empty. The keyword check then looks at the title only, and the job type and experience level re-checks are skipped. The price per job is the same.

How does 'Only new jobs since last run' work?

The Actor remembers the job ids it returned for the same searches (keywords, country, location, filters and sort, or the URL's parameters) or for the state name you set. Already-seen jobs are skipped, free, and do not count toward 'Max jobs per search', so each run can fill its limit with new jobs. Ids are forgotten 60 days after they were last seen. Add a Slack or webhook URL to get the count and the top 10 new jobs after each run.

Which countries and languages are supported?

The Country list has 30 countries with LinkedIn's exact country id: US, CA, GB, IE, DE, FR, NL, BE, ES, PT, IT, CH, AT, SE, NO, DK, FI, PL, IN, SG, JP, PH, AU, NZ, AE, IL, ZA, BR, MX and AR. For anywhere else, type a location or paste a search URL with its geoId. Postings come in the language the employer wrote them. Keyword matching works on any alphabet; the built-in synonyms (RN for nurse, dev for developer) are English only.

Can I paste a LinkedIn search URL with my own filters?

Yes. URLs from linkedin.com/jobs/search and paths like /jobs/python-jobs-toronto work. These parameters are passed to LinkedIn: keywords, location, geoId, f_TPR, f_JT, f_E, f_WT, f_C, f_I, f_SB2, f_AL, distance and sortBy; others are ignored. A URL needs keywords, a location or a geoId. Only keyword relevance is re-checked on URL results.

What do posted_date, applicants and salary_text contain?

posted_date is a date only (YYYY-MM-DD) from the search card; LinkedIn shows no time. posted_ago is LinkedIn's relative text such as '1 month ago'. applicants is the count text as shown, e.g. 'Over 200 applicants'. salary_text is the pay text exactly as LinkedIn displays it, e.g. 'CA$68,600.00/yr - CA$91,500.00/yr', and is not split into numbers. countries is detected from the location text.

Lawful use

  • B2B use only: recruiter and poster names are never collected, but a description can still carry a company mailbox or a contact the employer wrote into the posting. That is business contact information; use it only for business purposes such as job search, hiring-market research or a relevant business enquiry, never for consumer marketing.
  • No spam: contact people only with relevant, individual business messages, identify yourself, and honour every opt-out at once. Bulk unsolicited email built from this data is not allowed.
  • You are responsible for complying with the anti-spam and privacy laws that apply to you and to the people you contact, including Canada's CASL, the US CAN-SPAM Act and the EU/UK GDPR (lawful basis, transparency, the right to object).
  • Removal requests: open an issue on this Actor's Issues tab naming the person, email address or domain to remove. It is added to our suppression list and honoured within 7 days; from then on matching records are not returned.
  • Recruiter and poster cards are never read; personal emails are removed from descriptions.

Limits (stated honestly)

  • LinkedIn shows at most about 1,000 jobs per search; split broad searches by keyword or location.
  • The Actor always uses Apify's datacenter proxy; there is no residential option. LinkedIn rate-limits datacenter addresses, so big runs can stop early (the status message says which searches did).
  • Keywords match whole words with simple plurals, a few synonyms (nurse: RN, LPN, LVN; engineer: eng; developer: dev, programmer) and, in titles, a shared stem of 5+ letters ('actuary' finds 'Actuarial'). With details off only the title is checked, so postings whose title does not relate are skipped.
  • Posted date is a date only; LinkedIn shows no time.
  • Salary appears only where LinkedIn displays it on the public page.
  • Workplace type (remote/hybrid/on-site) is sent to LinkedIn as a filter but cannot be re-checked, because the public page does not show it.
  • Search URLs are used as they are: their own filters go to LinkedIn, and only keyword relevance is re-checked on their results (not country, date, job type or level).
  • LinkedIn can change its public pages; the daily health run catches breakage within 24 hours.

Public Aurelix Actors, grouped by the data they collect. All are pay-per-result and need no login.

Jobs and hiring data

  • Greenhouse Jobs Scraper: Live jobs from a company's Greenhouse, Lever, Ashby or SmartRecruiters board, with salary and Canadian province tags.

E-commerce and product data

  • AliExpress Scraper: AliExpress search results by keyword: price, discount, rating, units sold, ship-from country and sponsored flag.
  • Amazon Best Sellers Scraper: Amazon Best Sellers and New Releases top 100 on 10 marketplaces: rank, ASIN, price, rating, rank change.

Leads and company data

  • Google Maps Business Scraper: Local business lists from Google Maps: phones, websites, ratings, hours, coordinates; optional website emails and socials.
  • Recently Funded Companies: US companies that just filed an SEC Form D: amount raised, industry, state, executives, confirmed website.

Ad intelligence

  • Facebook Ad Library Scraper: Facebook and Instagram business ads from the Meta Ad Library: copy, creatives, landing pages, dates, optional EU reach.

Canada and government data

  • Canada Building Permits Scraper: Building permits and development applications from 7 Canadian cities: address, type, status, dates, value, contractor company.

AI, content and SEO

  • Google Trends Scraper: Google Trends interest over time, by region and rising queries for any number of keywords, plus trending searches.
  • Website to Markdown Crawler: Crawls a site and returns one row of clean main-content Markdown per page, with title, headings and links.

Recent changes

  • 0.1: Lower price scheduled: $0.50 per 1,000 jobs on the free plan and $0.40 on paid plans, with the start fee per run rising from $0.00005 to $0.0005; $1.50 and $1.05 apply until then.

The full history is on the Changelog tab.

Tested daily

An automated health check runs this Actor every day on a fixed input and checks that at least 4 jobs come back with job_id, title, company, job_url, posted_date, employment_type filled in; a failed check alerts the maintainer straight away.

Your feedback

Missing a field, found a bug or need another filter? Open an issue on the Issues tab; we aim to answer within a day. If this Actor saved you time, a short review helps other people find it.