Chapter 05 · Apify Ultimate Scraper
Subchapter 5.10
references/workflows/job-market-and-recruitment.mdMarkdown4 KBView on GitHub
When: User wants to find and analyze job postings by role, company, or location.
harvestapi/linkedin-job-search
keyword, location, datePosted, limitapimaestro/linkedin-job-detail
results[].jobUrl -> urlsurlsStep 1: title, company, location, jobUrl, postedDate, applicantsCount
Step 2: description, requirements, seniority, employmentType, salary
Both Actors are PPE. Step 1: ~$0.001/job. Step 2: ~$0.005/job. For 200 jobs, total ~$1.20. Estimate and confirm with user.
When: User wants to find potential candidates matching specific criteria.
harvestapi/linkedin-profile-search
keyword, title, location, industry, limitapimaestro/linkedin-profile-full-sections-scraper
results[].profileUrl -> urlsurlsStep 1: fullName, headline, location, profileUrl, currentCompany
Step 2: experience[], education[], skills[], certifications[], languages[]
Step 2 (apimaestro/linkedin-profile-full-sections-scraper) costs ~$0.01/profile - the most expensive LinkedIn scraper. Use sparingly for shortlisted candidates only.
When: User wants to monitor company job postings as a signal to identify sales opportunities - e.g., a “Head of Data Engineering” hire suggests budget for data tooling.
harvestapi/linkedin-job-search
searchUrl (LinkedIn Jobs URL with company or role filters), keywordsharvestapi/linkedin-company
results[].companyUrl -> companyUrlsStep 1: title, companyName, description, employmentType, seniorityLevel, jobUrl
Step 2: name, industry, employeeCount, description, specialties[]
Job descriptions contain implicit buying signals - tech stack mentions, pain points, and headcount growth. Pass description to an LLM to extract inferred tech stack and budget tier before prioritizing outreach. Contact finding (Hunter.io) uses the native n8n node, not an Apify Actor.
When: User wants to continuously monitor Upwork for new jobs matching their skills.
apify/playwright-scraper
startUrls (Upwork search URL with skill filters), pseudoUrls, maxCrawledPagesStep 1: title, description, budget, clientJobsPosted, clientHireRate, postedAt, url
No dedicated Upwork Actor exists in Apify Store - verify with apify actors search "upwork" --user-agent apify-agent-skills/apify-ultimate-scraper for community options before defaulting to apify/playwright-scraper. Upwork pages are JS-heavy so Playwright is required over basic HTTP scraping. For high-frequency monitoring (every 15 min), store seen job URLs to avoid re-processing duplicates.
When: User wants to find developers who contribute to specific open-source projects.
janbuchar/github-contributors-scraper
repoUrlsStep 1: username, contributions, profileUrl, avatarUrl