LinkedIn Job Post Extractor Template: Save Job Postings to Google Sheets

The LinkedIn Job Post Extractor is an automation template that extracts information from LinkedIn job posting pages and saves it to Google Sheets. Instead of manually copying job titles, company names, salaries, and descriptions, the template captures all the data automatically.

This post explains what the template does, what data it extracts, how to set it up, and what it’s useful for.

What Data Gets Extracted

When you run this automation on a LinkedIn job posting page (linkedin.com/jobs/view/…), it extracts these fields:

Field What It Captures Notes
Job Title The position title e.g., “Senior Software Engineer”
Company Name The hiring company Extracted as a clickable link text
Location Job location City, state, country, or “Remote”
Salary Range Compensation information Only if displayed on the posting
Posted Date When the job was posted e.g., “2 weeks ago”, “3 days ago”
Job Description Full description text Includes requirements, responsibilities, etc.
Job URL The LinkedIn posting URL Automatically added using {{page_url}}
Extraction Date When you extracted the data Automatically added using =TODAY()

Important: Not all LinkedIn job postings display complete information (like salary). If a field isn’t shown on the page, that field will be empty in your spreadsheet.

How the Automation Works

LinkedIn Job Post Automation Workflow

The automation workflow showing how job data is extracted and saved

The template uses 11 automation blocks:

Input Block

  • Page Content: Extracts the full HTML from the LinkedIn job posting page

Extraction Blocks (Find Blocks)

These use CSS selectors to locate specific information on the page:

  • Job Title: .job-details-jobs-unified-top-card__job-title h1
  • Company Name: .job-details-jobs-unified-top-card__company-name a
  • Location: .job-details-jobs-unified-top-card__primary-description-container span > span.tvm__text--low-emphasis:first-child
  • Salary Range: .job-details-fit-level-preferences > button:first-child
  • Posted Date: .job-details-jobs-unified-top-card__primary-description-container span > span.tvm__text--low-emphasis:nth-child(3)
  • Job Description: #job-details

Note: Sites occasionally update their page structure, which may require updating these CSS selectors. The template provides these as a starting point that you can adjust if the HTML changes. See the CSS Selector Reference for guidance on finding and updating selectors.

Processing Block

  • Job Description Clean: Removes extra whitespace and line breaks from the description text

Metadata Blocks

  • Add Job URL: Inserts the current page URL using {{page_url}}
  • Add Date: Inserts today’s date using the Google Sheets =TODAY() formula

Output Block

  • Save to Sheets: Maps all extracted fields to your spreadsheet columns

Setting Up the Template

Step 1: Prepare Your Spreadsheet

Create a Google Sheet with these column headers (or customize as needed):

Job Title Company Name Location Salary Range Posted Date Job Description Job URL Extraction Date

You can add additional columns for your own tracking purposes (Status, Notes, Priority, etc.).

Step 2: Import the Template

  1. Open the Add to Sheets extension
  2. Go to the Automations page
  3. Click Import Template
  4. Select LinkedIn Job Post Extractor from the template library
  5. The workflow will load in the automation builder

Import Automation Template

Step 3: Configure the Save to Sheets Block

  1. Click on the Save to Sheets block in the workflow
  2. Select your Google Sheet
  3. Choose the sheet tab within the spreadsheet
  4. Map each field to the corresponding column:
Field Column
Job Title A
Company Name B
Location C
Salary Range D
Posted Date E
Job Description F
Job URL G
Extraction Date H

Step 4: Save the Automation

  1. Click Save in the automation builder
  2. Give it a name (e.g., “LinkedIn Job Extract”)
  3. Optionally, set up a keyboard shortcut for faster access

How to Use It

Running the Automation

Once configured, you can extract job posting data in two ways:

Option 1: Keyboard Shortcut

  1. Navigate to a LinkedIn job posting page
  2. Press your configured keyboard shortcut
  3. The data is extracted and saved to your sheet

Option 2: Extension Panel

  1. Navigate to a LinkedIn job posting page
  2. Open the Add to Sheets extension
  3. Go to the Automations tab
  4. Click your saved automation
  5. Click Run

Extracting Multiple Jobs

To build a database of multiple job postings:

  1. Search LinkedIn for jobs you’re interested in
  2. Open job postings in new tabs (Cmd/Ctrl + Click)
  3. Go through each tab and run the automation
  4. Each job gets saved as a new row in your spreadsheet

What This Speeds Up

The main time savings comes from eliminating repetitive copy-paste actions.

Manual Process vs. Automation

Task Manual Method With Template
Extract one job posting Copy/paste 8 fields individually (~2-3 min) Press keyboard shortcut (~5-10 sec)
Extract 10 job postings 20-30 minutes Under 2 minutes
Build a dataset of 50 jobs 2+ hours 10-15 minutes

Common Use Cases

Job Application Tracking: Extract jobs you’re interested in, then add custom columns for Application Status (Applied, Interview, Offer, Rejected), Applied Date, Follow-up Date, Contact Person, and Notes. This creates a complete application tracking system where you can monitor your job search progress and ensure you follow up on opportunities at the right time.

Salary Research: Extract multiple postings for similar roles to compare salary ranges across companies, understand compensation by location, identify which companies pay above or below market rates, and negotiate better offers with data. Having concrete salary data from actual job postings gives you leverage in negotiations and helps you target companies that match your compensation expectations.

Competitive Analysis: Recruiters and hiring managers can track what competitors are offering, monitor their hiring activity, compare job descriptions and requirements, and benchmark their own postings. This competitive intelligence helps ensure your job postings are attractive and your compensation packages are competitive in the market.

Market Research: Career coaches, analysts, and researchers can identify trending skills and qualifications, track remote work adoption rates, analyze geographic hiring patterns, and study industry-specific requirements. Building a dataset of 50-100 job postings provides enough data to spot meaningful trends and make informed recommendations.

Customizing the Template

The template is fully customizable and serves as a starting point that you can modify to fit your specific needs.

Adding or Removing Fields

You can add Find blocks to extract additional information like job type (Full-time, Contract, etc.), experience level, industry, or number of applicants. Conversely, you can delete blocks for data you don’t need - for example, remove salary extraction if you don’t care about compensation, or skip the job description if you only want basic details for quick scanning.

Changing Data Cleaning

The Text Transform block that cleans the job description can be modified to change how text is formatted, add additional cleaning steps, or be removed entirely if you prefer the raw text. This is useful if you want to preserve specific formatting or apply custom cleaning logic.

Adjusting for Layout Changes

When LinkedIn updates their page structure, you’ll need to update the CSS selectors in the Find blocks. Open the automation in the builder, find the block that’s not working, update the CSS selector to match LinkedIn’s new HTML structure, test it on a job posting page, and save the updated automation. Our CSS Selector Reference provides guidance on finding the right selectors when the page layout changes.

Notes

Data Availability: The automation can only extract what’s visible on the page. Some information is optional on LinkedIn, so expect that some postings may not have 100% complete rows (for example, salary information is often not included). Some fields may also vary depending on how the company structured their posting.

Extraction: The automation works one job posting at a time, and you need to manually navigate to each posting. This is designed for personal data collection rather than bulk scraping.

Layout Changes: LinkedIn occasionally updates their HTML structure. When this happens, you may need to update the CSS selectors in the Find blocks. The template provides the selectors as a starting point that you can adjust as needed.

Technical Details

Block Configuration

Block Name Block Type Configuration
Page Content Input Extracts full HTML from current page
Job Title Find CSS Selector, extracts text
Company Name Find CSS Selector, extracts text
Location Find CSS Selector, extracts text
Salary Range Find CSS Selector, extracts text
Posted Date Find CSS Selector, extracts text
Job Description Find CSS Selector, extracts text
Job Description Clean Text Transform Clean Whitespace transformation
Add Job URL Custom Value Value: {{page_url}}
Add Date Custom Value Value: =TODAY()
Save to Sheets Output Maps fields to spreadsheet columns

Data Flow

  1. Page Content block extracts HTML
  2. Find blocks locate specific data using CSS selectors
  3. Text Transform cleans the job description
  4. Custom Value blocks add metadata
  5. Save to Sheets writes everything to your spreadsheet

All processing happens in your browser. No data is sent to external servers.

Example Video

This video demonstrates how to use automation templates (shown with a different template, but the process is the same):

Getting Started

  1. Install Add to Sheets if you haven’t already
  2. Upgrade to the Automations plan to access templates
  3. Import the LinkedIn Job Post Extractor template
  4. Configure your spreadsheet columns
  5. Run it on a LinkedIn job posting to test


Related Templates:

Questions? Contact us at [email protected] or on Threads.