See llms.txt for all machine-readable content.

Back to Templates

Build a skills gap learning plan with LinkedIn jobs, LinkedIn Learning and GPT-5

Quick overview

Type the job you want and the skills you have. This reads 20 recent LinkedIn postings for the role, has AI name the skills they ask for, counts how many postings mention each, and matches your gaps to real LinkedIn Learning courses. A ranked plan lands in Google Sheets.

How it works

  1. The built-in n8n form asks for the target role, a city or country, and the skills you already have.
  2. A Set node holds the number of postings to read, the share of postings a skill needs to make the plan, and how many courses to list per skill.
  3. The first Actor gets LinkedIn's own count of jobs posted this week for the role and place.
  4. The second Actor reads 20 recent postings in full. If none come back, one row says so.
  5. The Information Extractor names the 12 most common skills and the exact words the postings use for each.
  6. A Code node counts how many postings contain each skill, then marks it Have, Learn, Rare or Not in the postings.
  7. Skills to learn go to the third Actor, which searches the LinkedIn Learning catalog in one run.
  8. Only courses with the skill in their title are kept, and the plan is appended to Google Sheets, one row per skill.

Setup

  1. Create a free Apify account, copy the API token from Settings, Integrations, and add it as an Apify credential on the three Actor nodes.
  2. Add an OpenAI credential on the chat model node, or swap in any other chat model.
  3. Connect Google Sheets and pick a spreadsheet and tab. The columns are created from the first rows.
  4. Activate the workflow, open the form URL from the trigger node, and enter a role you know.

Requirements

  • An Apify account; the free tier covers many plans a month
  • An OpenAI API key, or any chat model credential n8n supports
  • A Google Sheets credential
  • No LinkedIn account, LinkedIn Learning license or browser automation key

Customization

  • postings sets how many postings are read; more postings give steadier shares and a bigger model call
  • minShare is the share of postings a skill needs to make the plan; raise it to focus on the core skills
  • coursesPerSkill lists one, two or more courses for each skill to learn
  • Swap the form for the optional monthly schedule to watch how the skills for one role shift over time
  • Add the optional details read to bring each course's rating, reviews and syllabus into the plan
  • Replace Google Sheets with Notion or Airtable; every row already carries the course link and length

Additional info

How do I find the skills employers want for a job? Read a sample of real postings and count. This template reads 20 recent LinkedIn postings for your role and place, has the model list the 12 skills that come up most, then counts in the posting text how many postings mention each one. A row that says "14 of 20" means 14 postings contain the word, and you can check that by hand.

Why not let the model count? Models are good at naming skills and bad at counting them. Ask one for frequencies and you get plausible numbers that nobody can trace. Here the model only proposes the skills and the words postings use for them. A skill the model names but no posting contains is marked Not in the postings and kept off the plan.

Are the courses real? Yes. Every course comes from a live search of the LinkedIn Learning course catalog, with its title, length, viewer count and link. The catalog search is loose, so the workflow keeps only courses whose title names the skill. When none does, the row says Learn, no course found and names the closest result instead of inventing one.

Do I need a LinkedIn Learning license or a LinkedIn login? No. All three Actors read public pages. You need a license only to watch the courses, and many public libraries and employers provide one.

What does a plan cost? Apify charges are well under a cent per plan, because each posting, listing and course costs $0.00001. The model call over 20 trimmed postings is about a cent on gpt-5-mini. A run takes one to two minutes.

What else can these Actors do? LinkedIn Jobs API searches public LinkedIn job listings by keyword, place, company, seniority and date, with the full description and salary when posted. LinkedIn Job Search Scraper adds result counts, full job records, and title, company and location autocomplete. LinkedIn Learning API searches the LinkedIn Learning course catalog and returns full course records with ratings, reviews, syllabus and learning paths. If you self-host n8n, n8n-nodes-linkedin-jobs-api wraps the Jobs Actor as a community node.

About Apify. LinkedIn Learning API runs on Apify, a platform of ready-made scrapers and APIs for sources that have no usable public API. Actors are pay per use with no subscription, and they run in the cloud, so nothing runs on your machine and nothing breaks when the source changes its markup.

New to Apify? You can set up a free account and get the API token this template needs in a couple of minutes.