Guide · Agent skill
How to use the Apify Job Source Provider agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
This skill teaches an AI agent to use a job-search scraper hosted on Apify, a third-party web-scraping platform, as one more source for the career-ops job scanner. After this guide you will know what the skill does, how to install it, how to add an Apify entry to portals.yml, and what it sends over the network.
Quick start
- 1Install career-ops. Set up career-ops and enable the Apify plugin in config/plugins.yml.
- 2Add your token. Create a .env file and store your APIFY_TOKEN from your Apify account in it.
- 3Install the skill. Download the ZIP, unzip it into ~/.claude/skills/ or a project's .claude/skills/, or upload it under Settings → Capabilities → Skills.
- 4Add a portals.yml entry. Add a tracked_companies entry with provider: apify, an actor ID, input and field_map.
- 5Run the scanner. Run node scan.mjs to call the actor and write the results to your pipeline.
What does the Apify skill make the agent do?
The skill is a keyed provider. When the scanner runs an entry that sets provider: apify, the agent runs an Apify actor (a cloud scraper program), waits for its dataset of results, and maps the returned fields into the scanner's pipeline like any other source.
The skill never activates on its own. It only runs for portals.yml entries that explicitly set provider: apify, and it is not triggered by auto-detection.
- Reads your search (position, location, maximum items) from portals.yml
- Calls the Apify actor you name, for example misceres/indeed-scraper
- Maps title, link, company and location from the returned items
- Optionally saves full job descriptions locally under jds/
How do you install the Apify skill?
Download the skill ZIP from our page and unzip it. Then place the folder in one of these locations: ~/.claude/skills/ for your personal skills, or .claude/skills/ inside a project to limit it to that project. You can also upload the ZIP in the Claude apps under Settings → Capabilities → Skills.
The skill is only half of the setup. It works inside a career-ops install, so career-ops must be installed with the Apify plugin enabled in config/plugins.yml, and your APIFY_TOKEN must be stored in a .env file.
- Folder files: _apify.mjs, index.mjs, manifest.json, skill.md
- Requires Node.js
- Requires an APIFY_TOKEN API key from your Apify account
How do you add an Apify entry to portals.yml?
Each job search is one entry under tracked_companies. The entry names the provider, the actor, the search input, and a field_map that tells the scanner which returned fields to use. Array values are tried in order, and the first non-empty value wins.
- provider: apify is required, or the skill will not run
- actor is the Apify actor ID to call
- input holds the actor's search parameters
- field_map.description is optional and caches the job description under jds/
tracked_companies:
- name: "Indeed — VP Engineering (Chicago)"
provider: apify
actor: misceres/indeed-scraper
input: { position: "VP of Engineering", location: "Chicago, IL", maxItems: 25 }
field_map:
title: [positionName, title]
url: url
company: [company, companyName]
location: [location, formattedLocation]How do you run a scan that uses the skill?
Run the scanner from your career-ops folder. It runs the provider for each matching entry and writes the results to the pipeline. If you ask your agent in plain language to scan a tracked job source, it should pick up the Apify entry if one exists, but the explicit provider: apify line is what actually activates it.
- Example request: Scan my Indeed VP Engineering entry in portals.yml
- Example request: Run the job scanner and show me new Chicago listings from Apify
- Example request: Check my portals.yml for entries that use the Apify provider
node scan.mjsWhat are the safety notes for the Apify skill?
This skill runs scripts and uses the network. The search parameters and your API token are sent to api.apify.com, so anyone with access to your .env file or the service could see them. Each run also consumes Apify credits, so cost depends on how often you scan and how many items you request.
Only use it if you are comfortable sending job-board search data to a third-party service.
- Runs scripts: yes
- Uses network: yes, to api.apify.com
- Keep APIFY_TOKEN in .env and never paste it into a shared file
- Lower maxItems while testing to limit credit use
What tips help the Apify skill work well?
Test with a small maxItems first and check the output before scanning often. If a field comes back empty, add a second name to the array in field_map rather than changing the whole mapping.
- Use one portals.yml entry per search so each result set stays separate
- Turn on field_map.description only if you want local copies of job descriptions
- Read skill.md and _apify.mjs if you want to see exactly what is called
What people use it for
- Pull Indeed listings for a senior role in one city into your career-ops pipeline
- Keep separate portals.yml entries for different job titles or locations
- Save full job descriptions locally under jds/ for later review
Frequently asked questions
Is the Apify job source skill free?
The skill is released under the MIT licence, which allows free use. The Apify service it calls is metered, and each run consumes Apify credits, so you may pay for usage depending on your Apify account.
What do I need before I can use it?
You need Node.js, career-ops installed with the Apify plugin enabled in config/plugins.yml, an APIFY_TOKEN from an Apify account stored in .env, and network access to api.apify.com.
How do I install the Apify agent skill?
Download the ZIP from our page and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder. You can also upload the ZIP in the Claude apps under Settings → Capabilities → Skills.
Why isn't the Apify skill running on its own?
It only fires for portals.yml entries that explicitly set provider: apify. It does not auto-detect sources, so add that line to any entry you want it to handle.
Does the skill send my data anywhere?
Yes. The search parameters and your APIFY_TOKEN are sent to api.apify.com when the actor runs. Do not use it if you do not want job-board search data sent to a third-party service.
How does this compare with other job sources in career-ops?
This guide does not compare it with other sources. Its distinguishing features are that it is keyed (it needs your Apify token), it is configured per entry in portals.yml, and it can optionally save full job descriptions locally.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Use this skill if you already run career-ops, have an Apify account, and want Indeed-style listings in your pipeline through a configurable, keyed source. Skip it if you do not have an Apify account, want to avoid sending search data to a third party, or want something that runs without explicit configuration.
Download the skill