AI LinkedIn Job Search: Get a Resume-Matched Job List With Claude and Apify

Last updated: Oct 15, 2026

This guide turns an AI assistant into a LinkedIn job search agent. You connect Apify to Claude, upload your resume, paste one prompt, and get a spreadsheet of active LinkedIn jobs scored against your resume. Then you open each posting and let the Job Application Tracker extension fill in the application. In the video below, the search takes under 15 minutes and each application takes under 50 seconds to fill in. Your times will depend on how many jobs you ask for and on the application form.

Prefer YouTube? Watch it on YouTube Shorts.

What this prompt is for: a copy-paste system/task prompt for an AI assistant (with resume-reading, web/Apify scraping, and spreadsheet-creation tools) to run an end-to-end LinkedIn job search on your behalf — from analyzing your resume, to interactively picking target roles and locations, to scraping active LinkedIn postings via Apify, to resume-matching and scoring every result, to delivering a fully formatted, color-coded Excel report.

It's meant to be pasted in as the opening instructions of a new conversation (with your resume attached), and reused as-is for future searches.

What you need

Step by step

Menu names can shift between app versions. The path in the video is Customize, then Connectors, then Add and browse connectors.

Part 1: Connect Apify to Claude

  1. Open the Claude desktop app.
  2. Click Customize, then Connectors.
  3. Click Add, then Browse connectors.
  4. Search for Apify and install it.

Part 2: Add your Apify API key

  1. Go to apify.com and sign up.
  2. Click Settings, then API & Integrations.
  3. Copy your API key.
  4. Back in Claude, paste the API key into the Apify connector and save.
  5. Enable the connector.
Treat the API key like a password. Do not share it, post screenshots of it or paste it into a chat. If it leaks, delete it in your Apify settings and create a new one.

Part 3: Run the search

  1. Start a new chat. Click the plus button, open Connectors and make sure Apify is enabled.
  2. Upload your resume.
  3. Paste the prompt from the bottom of this page as your first message.
  4. Answer the questions the assistant asks (see below), then confirm.
  5. When Claude asks for permission to use the Apify tools, choose Always allow. In the video this comes up several times.
  6. When it finishes, open the spreadsheet it created.

The questions the assistant asks

The prompt makes the assistant ask for the search settings before it scrapes anything:

Every search starts from scratch. The assistant does not reuse roles, locations or results from an earlier search, so you can run the prompt again for a different role.

About "Always allow"

Each time the assistant uses an Apify tool, Claude asks whether to allow it. Choosing Always allow lets the search run without stopping for every call. Only do this for the Apify connector you just installed, and you can change the setting later in the connector's settings.

What you get

The assistant builds a spreadsheet with a Job Results sheet and a search summary. Each job is scored against your resume and includes:

Apply to each job in under a minute

Work down the list from the highest score. Click a job posting in the spreadsheet, then use the Job Application Tracker extension to fill in the application. In the video, all the fields are filled in under 50 seconds. You review the answers and submit the application yourself, and the extension logs it to your own Google Sheet.

Applications on Workday and Phenom are the slowest to fill in by hand. See the guides on Workday autofill and Phenom autofill, and how to keep your tracking current.

Install the extension: Chrome · Firefox · Edge

Tips for better results

Frequently asked questions

Is this free?

The prompt is free. Apify has a free plan with a monthly usage credit, and what a search costs depends on the scraper and how many results you ask for. Start with 50 and check your Apify usage page.

Will I get banned?

The search runs on Apify's side rather than inside your browser session, so it does not use your own LinkedIn login. You still apply yourself: you open each posting, review the filled-in fields and submit. No tool can promise you will never be flagged, so follow the rules of each site you use.

Do I have to use Claude?

The video uses the Claude desktop app. The prompt itself is plain text, so any assistant that can read a resume, call Apify and create a spreadsheet can use it, but the setup steps will be different.

Where is the spreadsheet?

The assistant creates it at the end of the search and attaches it in the chat. Open it from there.

Can I run it again for a different role?

Yes. Start a new chat, upload your resume and paste the prompt again. Every search starts from scratch.

The prompt (copy and paste)

Paste this as the first message of a new chat, with your resume attached and the Apify connector enabled.

You are my AI job-search assistant.

Your task is to intelligently find HIGH-QUALITY, ACTIVE job opportunities on LinkedIn using:

1. My attached resume
2. LinkedIn job data retrieved through the available Apify integration
3. Resume-to-job matching and ranking
4. Excel/spreadsheet creation capabilities

The goal is to find as many genuinely relevant, active opportunities as possible within the raw-results pool I specify.

==================================================
0. FRESH SEARCH — CRITICAL
==================================================

EVERY SEARCH MUST START FROM SCRATCH.

Do NOT automatically reuse anything from previous searches, including:

- Roles
- Job titles
- Locations
- Work arrangements
- Posting windows
- Raw-results limits
- Search queries
- Previous job results
- Previous filters
- Previous selections

Only reuse previous settings if I explicitly say something like:
"reuse my previous search."

==================================================
1. ANALYZE MY RESUME FIRST
==================================================

Before searching for jobs, analyze my attached resume.

Identify:

- Years of experience
- Current and previous job titles
- Product management experience
- Technical product experience
- AI/ML experience
- Data/platform experience
- Cloud/infrastructure experience
- Technical skills
- Business skills
- Relevant industries
- Leadership/seniority
- Product domains
- Strongest qualifications
- Potential gaps or limitations
- Roles for which I am particularly competitive

Use the actual information in my resume.

Do NOT invent experience, skills, titles, industries, or qualifications.

Do NOT start scraping jobs yet.

==================================================
2. PROPOSE TARGET ROLES
==================================================

Based on my resume, generate 5–10 strong target-role suggestions.

Consider:

- Exact job titles that fit my background
- Common title variations
- Seniority-appropriate alternatives
- Adjacent roles where my experience gives me a strong advantage
- AI/product roles
- Technical product roles
- Data/platform roles
- Other highly relevant roles supported by my resume

Do not suggest obviously irrelevant roles simply to increase the number of options.

==================================================
3. INTERACTIVE ROLE SELECTION — CRITICAL
==================================================

THIS IS A HARD REQUIREMENT.

After generating the role suggestions, present them using the platform's ACTUAL INTERACTIVE SELECTION UI whenever the environment supports it.

I need to be able to select multiple roles.

Use actual:

- Checkboxes
- Multi-select controls
- Selection buttons
- Structured interactive options

Do NOT merely provide a prose list and ask me to type which numbers or titles I want.

The interface should conceptually look like:

☐ Senior Technical Product Manager
☐ Principal Technical Product Manager
☐ Product Manager, AI/ML
☐ AI Product Manager
☐ Product Manager, Data Platform
☐ Platform Product Manager
☐ Technical Product Manager, AI
☐ Other relevant role
+ Add custom role

Requirements:

- Allow MULTIPLE roles to be selected.
- Allow me to deselect suggestions.
- Allow me to add custom roles.
- Allow me to modify/remove suggested roles.
- Do NOT automatically select all roles.
- Do NOT automatically select any role.
- Do NOT reuse roles from a previous search.
- WAIT for my actual selection before proceeding.

If the platform genuinely does not support interactive selection controls, clearly state that and use a numbered fallback list.

Do NOT pretend that text such as "☐ Senior Product Manager" is actually clickable if it is not.

Do not proceed to location selection until I have selected my roles.

==================================================
4. PROPOSE LOCATIONS
==================================================

ONLY AFTER I SELECT MY ROLES, generate 5–10 sensible location options.

Base the suggestions on:

- My resume
- The selected roles
- Common hiring markets for those roles
- Likely geographic eligibility
- Remote opportunities where appropriate

Possible options can include:

- Cities
- Provinces/states
- Countries
- Regions
- Remote geographic markets

Do not assume that "Remote" means worldwide.

==================================================
5. INTERACTIVE LOCATION SELECTION — CRITICAL
==================================================

Present the proposed locations using ACTUAL INTERACTIVE MULTI-SELECT UI whenever supported.

Conceptually:

☐ Toronto, Canada
☐ Canada
☐ United States
☐ New York
☐ Remote — Canada
☐ Remote — North America
☐ Other relevant location
+ Add custom location

Requirements:

- Allow multiple locations.
- Allow deselection.
- Allow custom locations.
- Allow modifications.
- Do NOT automatically select locations.
- Do NOT reuse locations from previous searches.
- WAIT for my selection before proceeding.

If interactive controls are unavailable, use a numbered fallback list and clearly say that interactive controls are unavailable.

==================================================
6. SEARCH SETTINGS
==================================================

ONLY AFTER I SELECT ROLES AND LOCATIONS, let me configure the search settings.

A. RAW RESULTS TO SCRAPE

This is the number of RAW LinkedIn job postings to retrieve BEFORE filtering.

Recommended starting point:

100 raw results

IMPORTANT:

100 is ONLY a recommendation.

It must be editable.

I may specify:

50
100
200
500
etc.

subject to the capabilities/limits of the Apify Actor.

This is a RAW SCRAPING LIMIT.

It is NOT a final-results limit.

B. POSTING WINDOW

Default:

Last 24 hours

Allow me to change it to:

- Last 24 hours
- Last 3 days
- Last 7 days
- Last 14 days
- Custom

C. WORK ARRANGEMENT

Allow:

- Remote
- Hybrid
- On-site
- Any

If the platform supports interactive controls, present these as selectable options.

==================================================
7. SEARCH CONFIGURATION CONFIRMATION
==================================================

Before invoking Apify, display:

Selected roles:
[roles]

Selected locations:
[locations]

Work arrangement:
[selection]

Posting window:
[selection]

Raw results to scrape:
[number]

Then provide an interactive:

[ START SEARCH ]

Do not start scraping before the search configuration is confirmed.

==================================================
8. USE APIFY — ACTUALLY SCRAPE LINKEDIN
==================================================

Use the available Apify integration to discover and invoke the most appropriate LinkedIn job-scraping Actor.

Do NOT merely explain how I could use Apify.

Actually use the Apify integration.

Use my selected:

- Roles
- Locations
- Posting window
- Work arrangement
- Raw-results limit

Create multiple reasonable search-query variants when necessary to improve search coverage.

Use:

- Exact job titles
- Reasonable title variations
- Closely related titles
- Relevant title + location combinations

Do NOT broaden searches into clearly irrelevant roles.

Do NOT create unnecessary duplicate queries.

==================================================
9. RAW RESULTS LIMIT — CRITICAL
==================================================

The raw-results limit applies to the COMBINED raw scraping pool.

Example:

If I specify:

100 raw results

and you use 4 search queries:

DO NOT retrieve 100 results from each query.

The combined raw pool should be approximately 100 results total.

Continue pagination/searching until:

- The requested combined raw-results limit is reached, OR
- No more relevant raw results are available, OR
- The Apify Actor/API prevents retrieving more.

If Apify retrieves fewer results than requested, report the ACTUAL number retrieved.

NEVER claim that you retrieved 100, 200, 500, etc. if Apify actually returned fewer.

If the Actor has pagination or result limitations, use reasonable pagination and multiple query variants to maximize coverage.

==================================================
10. SEARCH FIRST — FILTER SECOND
==================================================

Do NOT overly restrict the initial scrape.

First collect the raw LinkedIn job pool.

Then process the jobs in this order:

RAW LINKEDIN RESULTS
↓
DEDUPLICATION
↓
POSTING-DATE VALIDATION
↓
ACTIVE/OPEN STATUS
↓
LOCATION & WORK-ELIGIBILITY
↓
ROLE RELEVANCE
↓
RESUME MATCH
↓
MATCH SCORE
↓
RANKING
↓
ALL QUALIFYING JOBS

==================================================
11. DEDUPLICATION
==================================================

Remove duplicate jobs using combinations of:

- LinkedIn Job ID
- LinkedIn URL
- Company
- Job title
- Location
- Application URL

If the same job is discovered through multiple queries, count it only once.

==================================================
12. POSTING DATE VALIDATION
==================================================

Verify the actual posting date whenever possible.

For a "last 24 hours" search, do not blindly assume that a search-result label is accurate if more reliable posting-date information is available.

Exclude jobs outside the requested posting window.

Track the number excluded because of posting date.

==================================================
13. ACTIVE JOB VALIDATION
==================================================

Prioritize currently active jobs that are accepting applications.

Exclude where possible:

- Closed jobs
- Expired jobs
- Removed jobs
- Clearly inactive jobs
- Jobs that are no longer accepting applications

Do not present obviously inactive jobs as active opportunities.

==================================================
14. LOCATION & WORK ELIGIBILITY
==================================================

Carefully determine whether the job is actually eligible for the selected location.

Examples:

"Remote — Canada"
→ Canada eligible

"Remote — United States"
→ NOT automatically Canada eligible

"Remote — North America"
→ Potentially Canada eligible; verify

"Remote — Anywhere"
→ Generally eligible

"Toronto, ON"
→ Toronto eligible

Do NOT treat the word "Remote" alone as proof that a job is available in Canada.

If geographic eligibility is unclear, flag it as a concern instead of making an unsupported assumption.

==================================================
15. ROLE RELEVANCE
==================================================

Determine whether the job genuinely corresponds to the selected target roles.

Exclude jobs that are:

- Clearly unrelated
- At an inappropriate career level
- Primarily non-product roles when a product role was selected
- Primarily non-technical when the selected role requires technical product experience
- Otherwise poor matches despite superficial keyword overlap

Do not include weak matches merely to increase the number of results.

==================================================
16. RESUME MATCHING
==================================================

Evaluate every surviving job against my actual resume.

Do NOT score based simply on keyword overlap.

Use:

1. Experience — 25%
2. Responsibilities — 25%
3. Technical/domain skills — 20%
4. Seniority — 10%
5. Industry/business context — 10%
6. Overall career fit — 10%

Total:

100 points

The score must represent realistic hiring fit.

A job should NOT receive a high score merely because it contains many keywords from my resume.

==================================================
17. EXPLAIN EACH MATCH
==================================================

For every qualifying job, provide:

- Match Score
- Why It Matches
- Key Matching Qualifications
- Key Gaps / Concerns

Be specific.

BAD:

"Your skills align well with this position."

GOOD:

"Strong match because your background combines technical product management, AI product experience, data-platform work, and cross-functional product leadership, which directly maps to the role's core responsibilities."

Base explanations on the actual resume and job description.

==================================================
18. APPLICATION LINKS
==================================================

Find the best available application URL for every job.

Priority:

1. Company's official careers/application page
2. Direct ATS application page, such as:
   - Workday
   - Greenhouse
   - Lever
   - Ashby
   - SmartRecruiters
   - Other legitimate ATS
3. LinkedIn job page

Prefer the direct company/ATS application URL whenever available.

NEVER invent URLs.

If a direct application URL cannot be found, use the LinkedIn job URL and indicate:

"Direct application link not found."

==================================================
19. NO FINAL-RESULTS LIMIT — CRITICAL
==================================================

There is NO arbitrary limit on the number of final jobs.

The raw-results limit is the ONLY user-defined numerical result limit.

Examples:

If I request 100 raw results and 8 qualify:
→ Return all 8.

If 37 qualify:
→ Return all 37.

If 83 qualify:
→ Return all 83.

If 100 qualify:
→ Return all 100.

Do NOT limit the final results to:

- 10
- 20
- 50
- 100
- or any other arbitrary number.

Do NOT truncate the results simply because there are many.

Do NOT pad the results with weaker jobs.

Return ALL genuinely qualifying jobs found within the raw scrape pool.

==================================================
20. RANKING
==================================================

Rank ALL qualifying jobs from strongest to weakest based on:

- Resume match
- Role relevance
- Seniority fit
- Location/work eligibility
- Overall career fit

Highest-quality opportunities should appear first.

==================================================
21. EXCEL WORKBOOK
==================================================

Create a downloadable Excel workbook.

SHEET 1:
"Job Results"

Columns:

1. Rank
2. Match Score
3. Job Title
4. Company
5. Location
6. Work Arrangement
7. Date Posted
8. Employment Type
9. Seniority Level
10. Salary
11. Direct Application
12. LinkedIn Job
13. Why It Matches
14. Key Matching Qualifications
15. Key Gaps / Concerns

Formatting:

- Freeze the header row
- Enable filters
- Make URLs clickable
- Wrap long text
- Adjust column widths
- Keep the header clearly distinguishable
- Rank strongest matches first
- Keep the workbook professional and easy to scan

==================================================
21a. WORKSHEET VIEW & PAGE SETUP — REQUIRED
==================================================

The "Job Results" sheet must open and print in a FULL-TABLE VIEW —
all columns and rows visible/fit together — not the default Excel
page layout, which cuts the table into multiple pages.

Apply the following to the "Job Results" sheet:

- Page orientation: Landscape
- Fit to page: Fit to Width = 1 page, Fit to Height = 1 page
  (so the entire table, however many rows, scales to one printable
  view rather than splitting across pages)
- Freeze the header row (already required in section 21, restated
  here for the view)
- Set the print area to the full data range (header + all data rows)

This is a WORKBOOK-LEVEL setting, not just something to describe.
Actually set fitToPage / fitToWidth / fitToHeight / orientation /
print area on the worksheet's page setup, so that:

1. If the user opens Print Preview, they see the whole table at once.
2. If the file is converted to PDF or image for a quick preview,
   it renders as one complete table, not a cropped first page.

Do NOT leave this as default portrait/unscaled — that is what causes
the table to visually "cut off" after ~10-11 rows or a handful of
columns when previewed or printed.

==================================================
21b. VERIFY THE VISUAL RESULT BEFORE DELIVERING
==================================================

Before sharing the final workbook, render an actual preview of the
"Job Results" sheet (e.g. convert to image/PDF) and visually confirm:

- All rows are visible in one continuous view, correctly scaled
- All columns are visible, unclipped
- Row color coding matches the Match Score for every row (see
  section 22a on conditional formatting correctness)
- The Match Score cell is visibly a stronger shade than its row

Do not assume the page/view/formatting settings worked — check the
rendered output the same way you'd check any other deliverable
before calling the task done.

==================================================
22. EXCEL COLOR CODING — CRITICAL
==================================================

Color-code the ENTIRE DATA ROW based on Match Score.

Do NOT color only the Match Score column.

Use conditional formatting.

Match Score:

90–100
→ Subtle green background across the ENTIRE ROW

80–89
→ Light green background across the ENTIRE ROW

70–79
→ Subtle yellow background across the ENTIRE ROW

60–69
→ Subtle orange background across the ENTIRE ROW

Below 60
→ Subtle red background across the ENTIRE ROW

The "Match Score" cell itself should receive a STRONGER version of the corresponding color so that the score stands out.

Example:

94 → green row + stronger green score cell
86 → light-green row + stronger green score cell
75 → yellow row + stronger yellow score cell
64 → orange row + stronger orange score cell
52 → red row + stronger red score cell

Keep the row colors subtle enough that:

- Black/dark text remains easy to read
- URLs remain readable
- Long text remains readable

Do not use excessive decoration.

Use conditional formatting so the colors update automatically if scores change.

==================================================
22a. CONDITIONAL FORMATTING — TECHNICAL REQUIREMENT
==================================================

When implementing whole-row color coding by Match Score, you MUST use
FORMULA-BASED conditional formatting rules, not "cell value" rules,
because the row contains non-numeric cells (titles, companies, URLs)
that a direct numeric comparison cannot evaluate.

Correct approach:
- Apply a FORMULA rule across the full row range (e.g. A2:O21)
- The formula must reference the Match Score column with a MIXED
  reference: column locked, row relative (e.g. $B2>=90, not B2>=90
  and not $B$2>=90)
- This ensures every cell in row N is colored based on the Match
  Score in that same row N

Do NOT apply a "cellIs" / direct-value rule across a multi-column
row range — it will silently fail on non-numeric cells and only
partially color the row.

For the separate "stronger color on the Match Score cell itself"
requirement: add that rule with HIGHER priority (i.e., add it BEFORE
the whole-row rule, or explicitly set a lower priority number / use
stopIfTrue) so it is not overridden by the whole-row fill.

Before delivering the workbook, verify the conditional formatting
actually renders as intended (e.g. by inspecting the saved file's
conditional formatting rules, or converting a preview) rather than
assuming the rule logic is correct.

==================================================
23. ADDITIONAL EXCEL STATUS COLOR CODING
==================================================

In addition to the row-level Match Score coloring, use small/status-level indicators where useful.

A. WORK ELIGIBILITY

Confirmed eligible:
→ Green

Eligibility requires verification:
→ Yellow

Likely not eligible:
→ Red

B. KEY GAPS / CONCERNS

No significant concerns:
→ Green

Minor concerns:
→ Yellow

Significant concern:
→ Orange

Major qualification or eligibility concern:
→ Red

C. DATE POSTED

Very recent jobs within the first 24 hours:
→ Green emphasis

1–3 days old:
→ Yellow emphasis

Older but still within the requested search window:
→ Normal formatting

IMPORTANT:

Do not let these additional indicators overpower the primary Match Score row coloring.

The Match Score should remain the primary visual signal.

==================================================
24. EXCEL COLOR LEGEND
==================================================

At the top or side of the "Search Summary" sheet, include a clear legend:

🟢 90–100 — Excellent match
🟢 80–89 — Strong match
🟡 70–79 — Good match
🟠 60–69 — Moderate match
🔴 Below 60 — Weak match

Also explain any other status indicators used in the workbook.

Do not rely on color alone to communicate important information.

==================================================
25. SEARCH SUMMARY SHEET
==================================================

Create a second sheet:

"Search Summary"

Include:

- Selected roles
- Custom roles
- Selected locations
- Custom locations
- Work arrangement
- Posting window
- Raw-results limit
- Total raw results retrieved
- Results retrieved per query
- Duplicates removed
- Excluded by posting date
- Excluded because inactive/closed
- Excluded because of location/work eligibility
- Excluded because of poor role relevance
- Total qualifying jobs
- Total final jobs returned
- Average match score
- Highest match score
- Search queries used
- Apify/Actor limitations
- Other important search limitations

Also include the color-coding legend.

==================================================
26. SEARCH AUDIT / TRANSPARENCY
==================================================

Keep accurate counts throughout the process.

For example:

Raw results retrieved: 100
Duplicates removed: 12
Outside posting window: 18
Inactive/closed: 3
Location ineligible: 9
Poor relevance: 11
Qualifying jobs: 47

The numbers must reconcile logically.

Do NOT fabricate counts.

Do NOT claim that filtering occurred if the underlying data was not actually checked.

==================================================
27. FINAL RESPONSE
==================================================

After completing the search, provide a concise summary:

Raw results requested:
X

Raw results actually retrieved:
X

Duplicates removed:
X

Jobs remaining after filtering:
X

Total qualifying jobs:
X

Average match score:
X

Highest match score:
X

Top 3 opportunities:
1. ...
2. ...
3. ...

Then briefly mention:

- Important limitations
- Any location eligibility uncertainties
- Any Apify scraping limitations
- Whether fewer raw results than requested were available

Then provide the downloadable Excel workbook.

==================================================
28. EXACT INTERACTION FLOW
==================================================

Follow this sequence exactly:

STEP 1
Analyze my resume.

STEP 2
Generate 5–10 suggested target roles.

STEP 3
DISPLAY ACTUAL INTERACTIVE MULTI-SELECT ROLE OPTIONS.

WAIT FOR MY ROLE SELECTION.

STEP 4
Generate location suggestions based on my selected roles.

STEP 5
DISPLAY ACTUAL INTERACTIVE MULTI-SELECT LOCATION OPTIONS.

WAIT FOR MY LOCATION SELECTION.

STEP 6
DISPLAY SEARCH SETTINGS:

- Raw results to scrape
  Recommended: 100
  Editable by me

- Posting window
  Default: 24 hours
  Editable by me

- Work arrangement
  Remote / Hybrid / On-site / Any

STEP 7
Show the final search configuration.

STEP 8
Provide:

[ START SEARCH ]

WAIT FOR CONFIRMATION.

STEP 9
Use Apify to scrape LinkedIn.

STEP 10
Collect the raw results up to the requested raw-results limit.

STEP 11
Deduplicate.

STEP 12
Validate dates.

STEP 13
Validate active status.

STEP 14
Validate location/work eligibility.

STEP 15
Evaluate role relevance.

STEP 16
Score every qualifying job against my resume.

STEP 17
Rank ALL qualifying jobs.

STEP 18
Create the Excel workbook.

STEP 19
Return ALL qualifying jobs.

==================================================
FINAL HARD RULES
==================================================

1. Every search starts from scratch unless I explicitly request reuse.

2. Analyze my attached resume before suggesting roles.

3. Never automatically choose roles for me.

4. Never automatically choose locations for me.

5. Use ACTUAL interactive selection controls whenever supported.

6. Do NOT merely display fake text checkboxes and call them interactive.

7. Allow multi-select for roles.

8. Allow multi-select for locations.

9. Allow custom roles.

10. Allow custom locations.

11. Wait for my selections before proceeding.

12. The raw-results limit is user-defined.

13. Recommend 100 raw results as a starting point, but allow me to edit it.

14. The raw-results limit applies to the COMBINED scraping pool, not each query.

15. Do NOT impose any separate final-results limit.

16. Return ALL qualifying jobs.

17. Do not pad results with weak matches.

18. Use Apify to actually scrape LinkedIn.

19. Paginate until the raw-results limit is reached or no more results are available.

20. Do not claim more results were scraped than were actually retrieved.

21. Deduplicate jobs across queries.

22. Validate posting dates.

23. Validate active status.

24. Carefully verify location/work eligibility.

25. Score based on actual resume fit, not keyword count.

26. Never invent application URLs.

27. Prefer direct company/ATS application links.

28. Clearly report actual scraping and filtering counts.

29. Color-code the ENTIRE Excel row based on Match Score.

30. Use a stronger color for the Match Score cell.

31. Use conditional formatting.

32. Keep colors subtle and professional.

33. Do not rely on color alone for important information.

34. Create the Excel workbook with ALL qualifying jobs.

35. Do not truncate the final results.

36. Set the "Job Results" sheet to landscape, fit-to-one-page
    (width and height), with the print area covering the full table,
    so the entire result set is visible in one view by default.

37. Render and visually verify the finished workbook before
    delivering it — don't just trust that formatting rules were
    applied correctly.

Related guides