ScrapeField
Hiring signals are one of the best reasons to watch LinkedIn: a company posting five backend roles this week is a company with budget. This guide builds an n8n workflow that runs every morning, fetches every posting for a search from the last day, and appends them to a Google Sheet. It uses n8n’s built-in HTTP Request node, including its pagination, so there is nothing to install.
The shape of it
Four nodes, in a line:
- Schedule Trigger, once a day.
- HTTP Request, which calls us and follows every page.
- Split Out, which turns each page into one item per job.
- Google Sheets, Append Row.
The HTTP Request node
| Setting | Value |
|---|---|
| Method | GET |
| URL | https://api.scrapefield.com/v1/linkedin/jobs |
| Authentication | Generic Credential Type → Header Auth, with name Authorization and value Bearer sf_live_… |
| Send Query Parameters | query = backend engineer, location = Berlin, posted_within_days = 1 |
Keeping the key in a Header Auth credential, rather than typing it into the node, means it isn’t exported with the workflow when you share it.
Following every page
A list comes back a page at a time, with a cursor for the next one in meta.next_cursor, and null on the last page (how lists work). Under the node’s Options → Pagination:
| Setting | Value |
|---|---|
| Pagination Mode | Update a Parameter in Each Request |
| Parameters | Type Query, name cursor, value {{ $response.body.meta.next_cursor }} |
| Pagination Complete When | Other |
| Complete Expression | {{ $response.body.meta.next_cursor === null }} |
| Limit Pages Fetched | On, with a Max Pages you are comfortable paying for |
The page limit is your spending cap: each page is 4 credits, so 25 pages is at most 100 credits a run, between $0.04 and $0.08 depending on your pack.
One item per job
The HTTP Request node outputs one item per page, each with the page’s jobs in data. Add a Split Out node with data as the field to split out, and every job becomes its own item with title, company.name, location, workplace_type, salary where the posting shows one, listed_at and url. The jobs reference has every field.
Into the sheet
The Google Sheets node, Append Row, maps those fields to columns. Keep job_id as one of them: it is LinkedIn’s own id and never changes, so it is what you dedupe on when a posting shows up two mornings running.
Swap the URL and the parameters, and the same workflow follows an Instagram hashtag, a TikTok search or a place’s new reviews. The pagination settings stay exactly as they are, because every list pages the same way.