Career products and personal developer searches
AI Job Search & Fit Scorer
Give users a shortlist they can understand. Search up to ten supported developer-job sources, or supply compatible job records, and compare them with one résumé or profile.
Runs on Apify. Sign in or create an Apify account to use the input form; no code is needed for the first run. Workflow connections require your own credentials.
A shortlist people can understand
Add explained recommendations to a career product, or build a personal developer-job search. Each result helps you review the reasons a role fits, the requirements to check, and gaps to discuss.
The built-in search covers supported developer-job sources. You can also supply compatible job records for one candidate. The scorer does not apply to jobs, send alerts, or make hiring decisions.
Five returned shortlist results cost $0.10 in Actor result charges. Applicable platform costs are additional; audit mode can also charge retained non-failure decisions that are not recommendations. Check current pricing.
Try a small shortlist
Open this tool on Apify ↗, sign in, and paste the example below into the Input JSON editor. Set a maximum run cost before starting.
Use a fictional or consented candidate profile, explicit search terms, no more than five retained results, and a $0.10 maximum result charge for the first run.
{
"mode": "search",
"search": {
"sources": ["linkedin", "remote_boards", "justjoinit"],
"keywords": ["data engineer"],
"postedWithinDays": 14,
"maxItemsPerSource": 3
},
"candidateProfile": {
"primaryRole": "Data Engineer",
"skills": ["Python", "SQL", "dbt"],
"remoteLocations": ["European Union"]
},
"maxItems": 5,
"resultMode": "shortlist",
"minDeliveryScore": 2,
"minRankToForward": 30,
"maxAiItems": 5
}
Send exactly one candidate source: candidateProfile, resume, or resumeText. Do not add experience, location, language, or contract constraints the candidate did not provide.
For developers: search and scoring modes
In search mode, the Actor searches the selected sources, normalizes and deduplicates the returned jobs, then evaluates them for one candidate. In score-jobs mode, it accepts complete nomad-agent-job-v1 records from a JSON array, immutable dataset ID, or exact successful upstream run.
Default shortlist mode returns only scored rows whose delivery score meets the threshold. audit mode retains drops, holds, and failures. Every v4 run summary reports the evaluated, dropped, held, scored, failed, filtered, and output counts.
Each retained evaluation carries a raw 0–100 fit score, a gate-adjusted 0–5 delivery score, recommendation, hard-requirement evidence, gap summary, source provenance, and stable keys. It is decision support: it does not apply to jobs, send alerts, learn from clicks, or make hiring decisions.
Consume the exact result safely
- Start
job-atlas/ai-job-fit-scorerwith buildlatest, explicit input, item cap, and total charge cap. - Poll only the returned run ID. Continue only for terminal
SUCCEEDED, exit code0, and the immutable build ID and number returned at start. - Read that run’s
RUN-SUMMARYand require schemanomad-ai-job-fit-run-summary-v4, algorithm namescoring-v3, valid result-policy counts, the declared billing meter, and bounded provider guards. - Fetch that run’s default dataset and reconcile its row count with
counts.outputRows. - In shortlist mode require every row to be scored and meet
minDeliveryScore; in audit mode require zero filtered rows. Upsert retained candidate-specific evaluations bymatchKey, not the source-onlyjobKey.
Pricing and privacy boundaries
- Shortlist mode charges $0.02 only for returned scored rows meeting the threshold. Audit mode charges retained non-failure decisions, including drops and holds;
ai_failedremains uncharged. - Résumé content is processed in memory, but the original Actor input or upload remains subject to the Apify account’s configured retention. Extracted evidence follows the configured provider path with data collection denied; this is not a zero-data-retention claim.
- Public sources may change, block, rate-limit, or omit fields. A verified zero-row source can be clean; an unverified empty or total source failure must fail closed.
Historical primary-organization examples
Current Job Atlas starters use latest. The following historical primary-organization evidence predates the Job Atlas publication. Existing run AkjZ6lVDultxapjdP on 2026-09-05 returned three scored rows for the built-in fictional candidate; its summary, dataset and three $0.02 result charges reconcile. The earlier canaries below retain their original builds.
On 2026-09-03, immutable runtime build 0.1.12 passed v4 shortlist filtering, audit retention, a scored inline result, and a three-source default search. In the default search, all three adapters succeeded, three jobs were scored, two were filtered, and the one delivery-3 result reconciled with one $0.02 event. Documentation-only build 0.1.13 then passed a zero-charge exact-build smoke with the same runtime image.
This proves the immutable Actor and dataset path. It does not prove hosted MCP exposure, importing an n8n or Make artifact, building a Zap, a schedule firing naturally, or a named Google Sheet receiving a row.
Troubleshooting
- No output: inspect v4
resultFilteredOutbefore assuming nothing was evaluated; then distinguish a valid filtered/clean-empty result from source failure or a non-terminal run. - Duplicate or overwritten candidates: the destination probably keyed on
jobKey; switch to candidate-specificmatchKey. - Unexpected spend: inspect the exact run and its charges before running again. Keep the maintained
latestselector, lowermaxItemsandmaxAiItems, choose shortlist unless the complete audit is needed, and set the caller’s maximum total charge explicitly. - Different results: compare candidate snapshot, source build, search provenance, scoring version, and evidence—not only the displayed score.
Version and release evidence
Published by Job Atlas. Start with latest and retain the immutable build returned by your run. Job Atlas release evidence; earlier run IDs and numeric builds below are historical primary-organization evidence.