Before your first Apify run
You need an Apify account and a browser. You do not need Node.js, an API token, an AI client, or a LinkedIn login for this Console workflow. Open the Actor's Pricing tab and review the charges before clicking Start. The example below requests at most one row; a result limit is not a promise of a free run or a complete spending cap.
An Actor is the cloud tool you configure. A run is one execution with its own status and logs. Its Dataset holds the result rows. A Task saves an Actor's input for reuse; saving one does not require setting up a schedule.
Choose search or job details
Use LinkedIn Jobs Search Scraper when your input is a role and location. Use LinkedIn Job Details Scraper when you need public descriptions and criteria for known URLs or IDs.
| Your starting point | Best workflow | Paid unit |
|---|---|---|
| Keyword and location | Search first, optionally with description enrichment. | One returned public job row. |
| Saved job URLs or IDs | Run Job Details directly. | One returned detail row; check field coverage. |
| No URL yet, but you want to test | Leave the URL/ID list empty and use the fresh starter search. | One current enriched detail row. |
Run one fresh starter
Open the Actor's Input tab and use the smallest useful test. Leave the URL/ID list empty so the Actor resolves one current public job matching the starter role and location.
{
"jobUrlsOrIds": [],
"starterSearchQuery": "data engineer",
"starterSearchLocation": "London",
"maxResults": 1
}
Paste this input into the Actor's JSON input editor, or enter the same values in its input form. Review the Pricing tab, then click Start once. Follow that run until it reaches SUCCEEDED. Open its Dataset to inspect any returned row. A successful run can return zero rows; do not treat its status alone as proof that you have usable job data.
The starter fields are used only when jobUrlsOrIds is empty. The run records the chosen starter query and location in RUN_SUMMARY, outside the paid Dataset rows. To find it, open the run's Storage section, select its default key-value store, and open the record named RUN_SUMMARY. For failures, open the Actor's Runs tab, select the same run, and read its Log tab. You can also open the current data-engineer description example.
Choose a regional starter
Use one of these one-result public Tasks when you want a current role-and-market example without editing the input first. Each link has its own attribution tag so we can retain the workflows that produce genuine starts.
| Buyer question | Starter |
|---|---|
| What does a current AI engineering role in Singapore disclose? | Singapore AI engineer |
| What does a current product role in India ask for? | India product manager |
| What does a current US sales-operations role contain? | US sales operations |
Enrich exact LinkedIn jobs
Once the starter output fits your workflow, replace the empty list with the public job URLs or numeric IDs you already collected. Begin with two or three records before importing a larger spreadsheet or alert feed.
{
"jobUrlsOrIds": [
"https://www.linkedin.com/jobs/view/example-role-1234567890",
"1234567891"
],
"maxResults": 2
}
The IDs above are placeholders, not live examples. Replace them with a numeric jobId or public jobUrl from your own reviewed Dataset row. Supplied invalid or expired IDs are reported as failures rather than silently replaced with an unrelated job.
Inspect the output before scaling
A Dataset row contains the public fields the Actor extracted. Do not assume that a saved row contains a description or every criterion. Compare the fields you need with the source page before using the record.
This is an illustrative output shape, not a captured live result. The ID, employer, URL, and description are placeholders:
{
"jobId": "1234567890",
"jobUrl": "https://www.linkedin.com/jobs/view/1234567890",
"title": "Data Engineer",
"company": "Example Company",
"description": "Public description text from the source page...",
"salaryText": null
}
| Fields | What to verify |
|---|---|
jobId, jobUrl, companyUrl | Stable identity and source links for deduplication and review. |
title, company, location | The role and employer match your intended input. |
description, descriptionHtml | The public description is present in plain and source-preserving formats. |
seniority_level, employment_type, job_function, industries | Only criteria disclosed by the public job page are retained. |
applicantCountText, salaryText | Values may be null when LinkedIn does not display them publicly. |
easyApply, applicationType, applyUrl | The public application path is labeled without inventing a hidden destination. |
Understand what is billable
Check the Actor's live Pricing tab before each run. A one-row limit keeps this example narrow but is not an all-in spending cap. The local Actor records skipped invalid inputs, fetch failures, and duplicate IDs in RUN_SUMMARY instead of adding diagnostic rows to the Dataset. Missing fields in a saved row do not by themselves prove that it is unbilled. Review your run's charges separately from its output quality.
Export and automate after validation
In the run's Dataset view, select Export and choose CSV. Download the file, open it in your spreadsheet application, and check that its jobId and jobUrl match the row you reviewed. This completes the first workflow; no API token or schedule is needed.
For a next step, save the reviewed input as a Task and follow the Google Sheets workflow guide. Add recurring runs only after validating a manual export and reviewing recurring costs.
For ChatGPT or Claude, open the Neuton Actors MCP Server and ask it to inspect the Job Details input schema, run one current starter, and return the Dataset row with source links.
Troubleshooting
The run returned no Dataset row
Open RUN_SUMMARY. A listing may have expired, returned an incomplete public page, or failed after bounded retries. Try the empty-list starter to separate an old input from a broader source problem.
The salary or applicant field is null
Those fields are available only when the public page displays them. Null is more honest than an estimate.
I need to discover jobs first
Use Jobs Search for a role and location, then pass its stable IDs or URLs into Job Details when you need full records.
Can this collect profiles or recruiter emails?
No. The workflow is limited to public job postings and does not collect private profiles, employee directories, or personal email addresses.
Run one current job-detail test
Use the durable starter to inspect the returned record before supplying your own URLs or IDs.
