AI Job Match + LinkedIn Jobs Scraper: scored to your CV avatar

AI Job Match + LinkedIn Jobs Scraper: scored to your CV

Pricing

from $2.00 / 1,000 matched job (rules only)s

Go to Apify Store
AI Job Match + LinkedIn Jobs Scraper: scored to your CV

AI Job Match + LinkedIn Jobs Scraper: scored to your CV

First 25 jobs free. AI job match for LinkedIn jobs: scrapes your search, drops reposts, agencies and duplicates free, scores each job 0-100 against your CV with a recruiter note. Pay per matched job, no start fee. Free demo on any plan; live search runs on your own Apify account.

Pricing

from $2.00 / 1,000 matched job (rules only)s

Rating

0.0

(0)

Developer

Rich Minds

Rich Minds

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

22 days ago

Last modified

Security

Limited permissions

Share

New LinkedIn jobs that fit your CV, scored and explained, in your inbox every morning.

⚡ First 25 jobs free · 💵 $0.002 per matched job · 🤖 $0.01 + ≈ $0.004 AI tokens with the AI match, on plans with model access or your key · ⏱️ demo in 3 s

One row per matched job — rank, match score, verdict, the skills you match and miss, salary and the next step

Try it in 30 seconds. Click Try it — the form is pre-filled with 7 sample jobs and a sample CV: free, on any plan. Type your own search terms and CV and press Start — that runs the live search. Your first 25 matched jobs are free, and jobs that fail your filters cost nothing here. → What a run costs · What the AI adds · Daily job alerts

⚡ At a glance

What you geta ranked shortlist of LinkedIn jobs that fit your CV: score, skills you match / miss, salary, sponsorship flags, who posted it
You provide1–5 job search terms, a location and your CV — pasted, or a link to a PDF / DOCX
Outputa ranked sheet, best first — Excel, CSV or Google Sheets — plus an e-mail digest of what is new each run
Typical run3 searches × 40 jobs = 120 read → ≈ 30 matched (estimate); the demo: 7 sample jobs → 3 matched in 3 s
Cost of that run$0.06 rules only · ≈ $0.46 with the AI match (30 × $0.01 + ≈ $0.16 tokens); + $0.24 when the LinkedIn Jobs Scraper reads the jobs
Free tierfirst 25 matched jobs per account; filtered, duplicate and below-score jobs always free
Keys / setupPlan with Apify model access: no key needed · other plans: your own key — a free Gemini / Groq key = 1–3 AI matches per run, a paid one = every job
Which planFree demo and your own list (template): any plan · live search: any plan with the built-in LinkedIn reader; its scraper fallback needs a plan that runs Store Actors
Coaches & recruitersone run for a roster of up to 50 candidates — one search, a score and a digest per candidate
Works withSchedules, Google Sheets, Slack, Teams, Discord, Telegram, webhooks, n8n / Make / Zapier, MCP

🎯 What this Actor does

It scrapes your LinkedIn searches and does the reading for you — you pay only for jobs that pass your filters:

  • A job match score against your resume — 0–100, the reasons, the skills you match and the ones to prepare.
  • Junk removed for free — reposts, staffing agencies, excluded companies, too many applicants, too old or below your salary floor: never sent to the AI, never charged.
  • Sponsorship and clearance flags with the quoted sentence — "We are unable to sponsor visas" is caught first.
  • Who to contact — the poster's profile (else the company page), plus a recruiter note and a cover-letter hook for strong and good matches.
  • Only new jobs on every run, in your inbox — a daily schedule delivers and charges each job once, reposts included.

🛂 Visa sponsorship, 🌍 remote, 🎓 new-grad and 👻 ghost jobs

  • Visa sponsorship jobs / H-1B job alerts — "Needs visa sponsorship" drops every "unable to sponsor" job and flags the ones that sponsor, quoted; the sponsorship_offered flag keeps only those.
  • Remote jobs — "Workplace: remote" is re-applied strictly on the returned fields.
  • New-grad jobs — the entry-level preset keeps internship / entry / associate roles and drops "5+ years".
  • Ghost job detector — reposted, open 30+ days, 200+ applicants, no named poster → a risk with the reasons; "Drop ghost jobs" removes the high ones for free.
  • Company and exclude filters — company size (minCompanyEmployees, maxCompanyEmployees), excluded companies and an exclude list of job ids, URLs or titles (suppressionList).

✉️ Recruiter note, cover letter generator and 👥 rosters

Strong and good matches get a ≤ 600-character note to the poster and a cover-letter opening, built only from your CV and the description. A roster in "Several candidates" (candidates) runs the search once, then scores, remembers and digests each candidate apart — one event per job per candidate.

🚀 How to use it

  1. Click Try it — the form is pre-filled with 7 sample jobs and a sample CV; press Start (free, any plan).
  2. Type your job search terms and paste your CV (or pick a ready search in "Start from a ready niche search") — your terms replace the sample and run the live search, capped by "Max source spend". Leave the AI on: all 25 free jobs get the AI match with Apify model access or a paid own key; a free own key gives 1–3 per run (which AI your plan gets).
  3. Press Start and open the dataset — the Shortlist view lists the best matches first.
  4. Schedule it daily with your address in "E-mail me the new jobs" — only new jobs are delivered and charged.

📦 Already scraping LinkedIn jobs? Match the LinkedIn scraper data you have

Paste the dataset ID of your last curious_coder/linkedin-jobs-scraper run into Dataset ID — no second scrape, rules only by default, and you pay only for the matched jobs. To do it after every scrape, see the chained-run recipe.

The Outreach view — who posted each job, the AI recruiter note and the cover-letter hook

📚 Learn more: Tutorial — how to get an AI job match for every new LinkedIn job

🆚 Why this instead of running Linkedin Jobs Scraper yourself?

Linkedin Jobs Scraper (curious_coder/linkedin-jobs-scraper)AI Job Match + LinkedIn Jobs Scraper
Price$0.002 per job row + $0.00005 per start · 17,864 users / 30 days$0.002 per matched job, first 25 free, no start fee
Same 100 jobs, all in$0.20 for 100 raw rows you still read≈ 25 matched: $0.05 rules · $0.35 with the AI (built-in reader) — $0.25 / $0.55 when the scraper reads them
Your time per 100 jobs≈ 17 h reading each posting against your CV (10 min a job)≈ 0 h — ranked, explained, note written
Repeat runsdedupes only within one runmemory by job id and company + title + location — reposts never charged twice
Match to your CVnone0–100 score, matched / missing skills, quoted requirements

vs other job tools

ActorWhat it delivers100 clean jobsYour time per 100 jobs
This Actorjobs matched to your CV, scored, deduped, with contact$0.20 rules · ≈ $1.40 with the AI≈ 0 h
valig/indeed-jobs-scraperraw Indeed rows≈ $0.04 at $0.0001 per row + $0.001 start, ≈ 4 rows per clean job≈ 17 h
fantastic-jobs/career-site-job-listing-apiATS postings with global AI filters≈ $1.21 at $0.012 per row + $0.01 start≈ 17 h
curious_coder/linkedin-jobs-search-scraperclassic filters, needs your LinkedIn cookies≈ $0.61 at $0.0015 per row + $0.005 start≈ 17 h

💵 Pricing — what a run really costs

Pay per result: one event per matched job, nothing else — no start fee.

EventWhen it is chargedPrice
free-tieryour first 25 matched jobs on this Actor, in any mode$0.00
qualified-job-basicAI off (or the AI failed) — normalised job, rule match score, skills, flags with evidence, contact link$0.002
qualified-job-aiAI on — everything above plus the AI score and reasons, quoted requirements, recruiter note, cover-letter hook$0.01

One free tier: your first 25 matched jobs are free, whatever the tier.

AI tier, all in: ≈ $0.014 per matched job — $0.01 here + ≈ $0.004 AI tokens on your Apify account (or your own key): 1,677 in / 441 out tokens per job, measured 2026-10-16, at Claude Haiku 4.5 rates. With the LinkedIn Jobs Scraper reading the jobs: ≈ $0.022 per job all in with AI, source scan included.

Never charged here: jobs below the minimum score or failing a filter, duplicates, reposts, jobs you already received. The built-in LinkedIn reader scrapes free; the LinkedIn Jobs Scraper fallback bills your account $0.002 per job read, capped by "Max source spend".

How that compares — $0.002 per matched job is below the $0.0035 median of the 10 job Actors next to this one for "ai job match" (1.7× cheaper, 2026-09-25); one matched job replaces ≈ 4 raw rows.

Worked example (estimate): 120 jobs read → ≈ 30 matched with AI: 30 × $0.01 + ≈ 40 AI calls × $0.004 tokens = ≈ $0.46 ($0.70 if the scraper reads them); AI off: $0.06. 25 of the first 30 are free.

At volume — a career coach, 10 candidates on one daily search: ≈ $2 a day for the whole roster.

🤖 What the AI tier adds

The same job, AI off (qualified-job-basic, $0.002) — the demo run of storage-example/INPUT.json, 2026-10-16:

{"title": "Senior Backend Engineer (Python)", "companyName": "Ledgerline", "matchScore": 88, "ruleScore": 88, "fitScore": null, "assessedBy": "rules", "verdict": "strong",
"matchReasons": ["matches 2/2 must-have skills: Python, PostgreSQL", "you have 6 of the 7 skills the description names (missing: celery)", "…"],
"mustHaveRequirements": [], "recruiterNote": "", "coverLetterHook": ""}

AI on (qualified-job-ai, ≈ $0.014 all-in) — local run of storage-example/INPUT.ai.json (the form's sample CV) with the default own-key model, 2026-10-16:

{"title": "Senior Backend Engineer (Python)", "companyName": "Ledgerline", "matchScore": 90, "ruleScore": 88, "fitScore": 90, "assessedBy": "ai", "verdict": "strong", "aiModel": "google:gemini-3.5-flash-lite",
"matchReasons": ["Description asks for 5+ years of experience with Python and Django; profile states 6 years.", "Description states they will sponsor H-1B transfers; profile states the candidate needs H-1B visa sponsorship.", "…"],
"mustHaveRequirements": ["5+ years of experience with Python and Django", "PostgreSQL", "AWS"],
"recruiterNote": "Hello Maya, I am very interested in the Senior Backend Engineer position at Ledgerline. With 6 years of backend experience, I have spent my career designing robust Python, Django, and REST APIs backed by PostgreSQL and deployed on AWS. …",
"coverLetterHook": "With 6 years of backend experience building Python, Django, and PostgreSQL services on AWS, I am excited to apply for the Senior Backend Engineer role at Ledgerline."}

That is ≈ 10 minutes per job of reading the posting against your CV and writing the first message (our estimate: 10–15 minutes a job by hand, the lower bound used here) — for ≈ $0.012 more per job, tokens included. A job the AI scores below your minimum is not delivered or charged.

⚙️ Input

The fields a buyer decides on — the Input tab has every option.

📤 Output

One dataset item per matched job — export as JSON, CSV or Excel, or stream it to a webhook.

Dataset views: Shortlist (best first) · Outreach (poster, contact, note, hook) · Requirements & flags · Overview · Score breakdown (sort on matchScore, trend on ruleScore; assessedBy says which scale).

Upsert key for a CRM or Sheet: dedupeKey — LinkedIn's job id, the key the cross-run memory uses, so one job is one row however many runs find it; itemId is per job and candidate in a roster run.

Every run that delivered writes a DIGEST (new jobs, top 10, what changed since the last run, the market report) and a REPORT page to forward; OUTPUT holds the funnel, aiCoverage, timing and the marketReport.

⭐ Found it useful? A review on the Store helps others find it — it takes a minute on the Actor's page.

🔁 Run it daily — LinkedIn job alerts

  1. Open the saved task and click Schedule after your first real run — the run saves your search as a task and its status links it (OUTPUT.scheduleTaskUrl). Put your address in notifyEmail — every run with new matches e-mails the digest (top 10 with links and the trend vs the last run).
  2. Keep dedupeAcrossRuns: true — jobs are remembered 60 days (dedupeTtlDays) by id and company + title + location, so each run charges only what is new. Each CV keeps its own memory; a job already paid for under an earlier CV comes back as already-charged, never billed twice.
  3. Paste a Slack, Teams, Google Chat or Discord webhook — or your Telegram bot's send link — into Send alerts to, or import the ready tracker sheet into Google Sheets (dedupeKey first).
  4. The first live run of a CV looks back a month; from the second run OUTPUT.history and the REPORT page show every run. historyDatasetName keeps a running log across months.

Daily cost for a real job hunt — 5 search terms × 25 jobs posted in the last 24 hours = 125 read → ≈ 15 new matches × $0.01 + ≈ $0.08 tokens ≈ $0.23 a day, ≈ $1.60 a week (estimate, built-in reader); the memory keeps later runs to the jobs that are new.

🎯 Try it for your niche

Pick it in Start from a ready niche search at the top of the form and press Start — your own values always win.

NicheWhat it looks forPreset
Remote Python / backend jobsUS, last 24 h, remote, Python, ≤ 150 applicantsremote-python-alerts
H-1B / visa sponsorship job alertsUS, last 24 h, only jobs that sponsorh1b-sponsorship-alerts
Remote jobs in Europefrontend / React, remote, no agenciesremote-europe-alerts
New-grad software jobsentry level, ≤ 200 applicantsnew-grad-software

🔌 Integrations, job search automation and API

After every curious_coder/linkedin-jobs-scraper run: in that Actor's Integrations tab add "Run succeeded → start this Actor" with sourceMode: dataset, datasetId = the finished run's resource.defaultDatasetId and enableAi: false — every scrape you already pay for is matched automatically, rules only until you switch the AI on.

  • Webhook — webhookUrl POSTs each job (or batches) to Zapier, Make, n8n or your CRM, signed with webhookSecret.
  • Google Sheets / Slack / Teams / Discord / Telegram — the Integrations tab, or "Send alerts to".
  • AI agents / MCP — the snippets run the real search, capped by maxDiscoveryChargeUsd; {} runs the free demo.

Use it from Claude, ChatGPT or any MCP client:

{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?actors=rich_minds/linkedin-job-match-ai"}}}

Minimal agent input — every other field keeps its default; the memory is off, so the same question twice returns the top jobs both times:

{"searchKeywords": ["backend engineer python"], "candidateProfile": "Backend engineer, 6 years of Python.", "datePosted": "past24Hours", "maxQualified": 10, "maxDiscoveryChargeUsd": 0.5, "dedupeAcrossRuns": false}

List-mode rows

sourceMode: "list" runs on any plan: paste jobs into itemsList — start from the ready template (Linkedin Jobs Scraper's own field names).

👥 Who is it for?

You are…You run it to…Start with
A job seeker (engineer, analyst, designer, PM)get only new jobs that fit your CV every morningthe remote-python-alerts preset with your CV
Someone who needs visa sponsorshipnever apply to a "we cannot sponsor" job againthe h1b-sponsorship-alerts preset
A career coach, bootcamp or outplacement firmrank each candidate's jobs weeklycandidates, one memory and digest per candidate
A recruiter or staffing teamfind the roles a candidate fits, and who posted themthe Outreach view with contactUrl
An AI agent / job-search copilotcall "find jobs that fit this CV" as one MCP toolthe minimal agent input above

🧠 How the AI works

  • One typed call per job: match score, requirements, note and hook. It sees your CV (≤ 2,000 characters) and the job (≤ 4,000), and is checked in code — skills and requirements only when quoted, no invented numbers or salary talk.
  • Tokens only where they matter — the best rule-scored jobs first, every one at or above minScore − 20, up to aiCandidateMultiplier × maxQualified.
  • No API key where your Apify plan includes model access — otherwise your own Gemini / Groq / OpenAI / Anthropic key. Default anthropic/claude-haiku-4.5; a failed call keeps the rule score and the status says why.

🔒 Data, compliance and limits

LinkedIn's public, logged-out job pages only — no login, no cookies. Your CV is used only for scoring, never written to the dataset. ≈ 1,000 jobs per LinkedIn search; salary and poster are missing on many jobs; the rules read English (non-English posts: leave the AI on). Use the output within LinkedIn's terms and privacy law (GDPR, CCPA).

❓ FAQ

How much will one run cost me? 3 terms × 40 jobs: ≈ $0.46 with ≈ 30 AI-matched jobs ($0.06 with AI off); + $0.24 when the LinkedIn Jobs Scraper reads them. Filtered and below-score jobs cost nothing.

What is an AI job match? A 0–100 score of how well one job fits your CV, with the reasons, the skills you match and the ones you miss.

Is this a LinkedIn jobs scraper? Yes — then it filters, dedupes and scores what it reads; you pay per matched job.

How long does a run take? Demo 3 s; AI ≈ 8 s per job; the form's 3 × 40 search ≈ 1,260 s timeoutSecs.

Which Apify plan do I need? Any plan runs the free demo, list / dataset mode and the built-in LinkedIn reader; the scraper fallback runs on a plan that runs Store Actors. Which AI your plan gets is one line in At a glance → Keys / setup.

Will I be charged for the same job twice? No, with dedupeAcrossRuns on (default): jobs are remembered 60 days by id and by company + title + location; adding a search term keeps the memory. Each CV and each targetFlags set keeps its own memory, but a job already charged under one is delivered to the other as already-charged, never charged again. In a roster, one job for two candidates is two matched jobs.

🧩 More Actors from the same developer

  • LinkedIn Buying Intent Leads — recruiters and staffing teams who also sell: find the LinkedIn posts of companies asking for help you can offer.

🆘 Support

Something missing or wrong? Open an issue on the Actor's page — buyer requests are shipped first.

📝 Changelog

One line per published build, newest first — /actor-publish adds it with the commit subject.

  • 0.3.5 (2026-10-16) — Type your own job search terms next to the free sample and press Start: the live search runs right away, a sample CV left in place no longer stops it, and one click on a ready search (remote Python, H-1B sponsorship, remote Europe, new grads) fills the form for you; Every run now says how many jobs the AI matched and why the rest kept the rule score, the daily digest shows what changed since your last run, and new matches can go straight to Slack, Teams, Google Chat, Discord or Telegram; A job you already paid for under an earlier CV is delivered again re-scored but never charged twice, and the free demo shows sample AI match verdicts even on a plan without AI access.
  • 0.3.4 (2026-10-04) — Bring your own data: rows or a dataset ID, the mode picked for you.
  • 0.3.3 (2026-10-03) — LinkedIn's public job pages read by the Actor itself: no scraper bill, every plan.
  • 0.3 – 0.1 (2026-09-25) — daily digest, ghost jobs, rosters, CV from a link, market report; initial release.