# Resume ATS Scorer - 9 Australian Rubrics (`data_lattice_au/data-cv-ats-scorer`) Actor

Independent score estimates for any AU data jobs CV against 9 well-known Australian ATS rubrics (Workday, PageUp, SmartRecruiters, Taleo, iCIMS, Greenhouse, Lever, Seek, LinkedIn). Approximations of each parser's public behaviour, not the vendor's algorithm. .docx/.pdf/.txt/.md.

- **URL**: https://apify.com/data\_lattice\_au/data-cv-ats-scorer.md
- **Developed by:** [data\_lattice](https://apify.com/data_lattice_au) (community)
- **Categories:** Jobs
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $100.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Data Jobs - ATS Resume Scorer (AU)

Know how your CV scores before you press apply. Grades any data,
analytics, BI, ML or AI resume against 9 real Australian ATS rubrics in
under 30 seconds.

### What this is for

Australian recruiters and employers run their applicant pipelines
through Applicant Tracking Systems - automated software that ranks
incoming CVs against the JD before any human reads them. Each system
has its own scoring algorithm, and what passes one rubric may fail
another.

This Actor takes any CV (`.docx`, `.pdf`, `.txt`, `.md` - provided as
URL, base64 or pasted text) plus a target JD, and returns one
**estimated** score per rubric for the nine ATS systems most commonly
used in Australia:

- **SEEK TalentSearch®** - used by 80%+ of AU recruiters
- **LinkedIn Recruiter®** - Talent Insights matching
- **Workday®** - federal government + ASX-100 default
- **PageUp®** - used by most AU universities and large corporates
- **SmartRecruiters®** - common at AU tech startups
- **Oracle Taleo®** - banking + insurance
- **iCIMS®** - multinationals operating in AU
- **Greenhouse®** - startup-friendly, increasingly common at scale-ups
- **Lever®** - VC-backed AU SaaS companies

Plus an aggregate "overall" market-weighted score, a semantic cosine
similarity (how close the CV's *meaning* is to the JD), and a
counterfactual amendment list ("add these N keywords for the largest
predicted score uplift").

> **Estimates, not the vendor's algorithm.** The score fields are named
> `score_<vendor>_estimated` because they are Data Lattice's independent
> approximations of each ATS's published parsing behaviour, recruiter-
> community testimony, and observed patterns. They are NOT produced by,
> endorsed by, or representative of the named vendors' actual scoring
> systems. Vendor names are used descriptively (nominative fair use) so
> you can match an estimate to the platform your target employer uses.
> Data Lattice has no affiliation with any vendor. See `DISCLAIMER.md`
> for the full statement.

### How this helps you

| You are a... | You use this to... |
|---|---|
| Job seeker | Score your CV against every job you apply to and rewrite it to clear the ATS bar before the recruiter sees it |
| Career coach | Diagnose why your client's strong-on-paper CV gets zero callbacks - show them the actual numerical gap |
| Resume writer | Quote concrete uplift numbers instead of vague advice ("adding 'data lineage' lifts your Workday score from 64 to 73") |
| Bootcamp / EdTech | Embed live ATS scoring into your job-readiness module |
| HR-tech founder | White-label the scoring engine inside your own talent product |

### What you get back

```jsonc
{
  "score_overall_estimated": 73.4,          // market-weighted aggregate
  "score_seek_estimated":     78,
  "score_linkedin_estimated": 71,
  "score_workday_estimated":  64,
  "score_pageup_estimated":   81,
  ...                                        // 5 more rubrics
  "semantic_cosine_pct":      67.2,         // CV vs JD meaning similarity
  "amendments": [
    {"term": "data lineage", "uplift": +8.1, "reason": "JD mentions 4x; CV 0x"},
    {"term": "dbt",          "uplift": +6.3, "reason": "..."},
    ...
  ],
  "cv_text_chars":            4127,
  "disclaimer":               "Estimates only. ..."
}
````

Full schema in `OUTPUT_SCHEMA.json`.

### Privacy

**No candidate data is baked into the image.** Every field comes from
the input you provide. CV bytes are streamed to local TF-IDF / cosine
math and discarded - nothing persists on Apify's servers beyond the
standard 7-day dataset retention.

### Pricing

**$0.10 per CV scored** (PAY\_PER\_EVENT, fired as `cv_scored` once per
run). Job-seekers typically score 5-20 CVs over a search → less than
$2 of usage end-to-end. Cheaper than ChatGPT subscription, far more
specific.

### Run it

```json
{
  "jd_text": "Senior Data Engineer (Python, Spark, AWS, Snowflake)...",
  "cv_url": "https://example.com/my-cv.pdf",
  "jd_title": "Senior Data Engineer",
  "company": "Atlassian"
}
```

Or paste CV body inline:

```json
{
  "jd_text": "...",
  "cv_text": "JANE DOE\nSenior Data Engineer\n10 years experience..."
}
```

Or upload a `.docx` as base64:

```json
{
  "jd_text": "...",
  "cv_base64": "UEsDBBQABg...",
  "cv_format": "docx"
}
```

### Brand

Part of the [Data Lattice](https://datalattice.com.au) portfolio. Pairs
with the [Skill Gap Analyser](https://apify.com/data_lattice_au/data-cv-jd-skill-gap-analyser)
for actionable amendment lists.

# Actor input Schema

## `cv_file` (type: `string`):

Upload your resume from your computer. Accepts .docx, .pdf, .txt, or .md. Pair with the 'CV file type' dropdown below so the parser knows the format.

## `cv_filetype` (type: `string`):

Select the file format you uploaded above. Required when 'Upload CV file' is used. Ignored when CV is supplied as URL or pasted text.

## `cv_url` (type: `string`):

Public link to the CV. Must end in .docx, .pdf, .txt or .md. Use this if the CV is hosted on Dropbox, Google Drive (download link), GitHub raw, etc.

## `cv_text` (type: `string`):

Paste the resume body as text. Used when neither file upload nor URL is provided. Plain text only - formatting is ignored.

## `jd_text` (type: `string`):

Full job description text to score the CV against. Required.

## `jd_title` (type: `string`):

Optional job title shown in the scoring report header.

## `company` (type: `string`):

Optional company name shown in the scoring report header.

## Actor input object example

```json
{
  "cv_filetype": "docx"
}
```

# Actor output Schema

## `score_seek_estimated` (type: `string`):

Seek TalentSearch rubric score 0-100. Independent estimate, not the vendor's algorithm.

## `score_linkedin_estimated` (type: `string`):

LinkedIn Recruiter rubric score 0-100. Independent estimate, not the vendor's algorithm.

## `score_workday_estimated` (type: `string`):

Workday rubric score 0-100. Independent estimate, not the vendor's algorithm.

## `score_pageup_estimated` (type: `string`):

PageUp rubric score 0-100. Independent estimate, not the vendor's algorithm.

## `score_smartrecruiters_estimated` (type: `string`):

SmartRecruiters rubric score 0-100. Independent estimate, not the vendor's algorithm.

## `score_taleo_estimated` (type: `string`):

Oracle Taleo rubric score 0-100. Independent estimate, not the vendor's algorithm.

## `score_icims_estimated` (type: `string`):

iCIMS rubric score 0-100. Independent estimate, not the vendor's algorithm.

## `score_greenhouse_estimated` (type: `string`):

Greenhouse rubric score 0-100. Independent estimate, not the vendor's algorithm.

## `score_lever_estimated` (type: `string`):

Lever rubric score 0-100. Independent estimate, not the vendor's algorithm.

## `semantic_cosine_pct` (type: `string`):

Semantic similarity % between CV and JD.

## `amendments` (type: `string`):

TF-IDF-ranked amendment suggestions.

## `cv_text_chars` (type: `string`):

Length of the parsed CV text.

## `disclaimer` (type: `string`):

Methodology disclaimer. The score\_\*\_estimated fields are Data Lattice's independent approximations of each ATS's parsing behaviour. Vendors are referenced descriptively (nominative fair use); Data Lattice has no affiliation with any vendor. See DISCLAIMER.md for the full statement.

## `score_overall_estimated` (type: `string`):

Aggregate ATS score 0-100. Market-weighted aggregate of the 9 rubric estimates.

## `technical_amendments` (type: `string`):

Subset of `amendments` containing only technical terms (tools, languages, ML/data concepts). What you should add to your CV to score higher.

## `soft_amendments` (type: `string`):

Subset of `amendments` containing only soft-skill terms (communication, leadership, stakeholder, agile). Often a rephrasing job rather than upskilling.

## `qualification_amendments` (type: `string`):

Subset of `amendments` containing formal qualifications (Bachelor, Masters, PhD).

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("data_lattice_au/data-cv-ats-scorer").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("data_lattice_au/data-cv-ats-scorer").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call data_lattice_au/data-cv-ats-scorer --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=data_lattice_au/data-cv-ats-scorer",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Resume ATS Scorer - 9 Australian Rubrics",
        "description": "Independent score estimates for any AU data jobs CV against 9 well-known Australian ATS rubrics (Workday, PageUp, SmartRecruiters, Taleo, iCIMS, Greenhouse, Lever, Seek, LinkedIn). Approximations of each parser's public behaviour, not the vendor's algorithm. .docx/.pdf/.txt/.md.",
        "version": "0.48",
        "x-build-id": "Yyn48p3K5d8efNgy7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/data_lattice_au~data-cv-ats-scorer/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-data_lattice_au-data-cv-ats-scorer",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/data_lattice_au~data-cv-ats-scorer/runs": {
            "post": {
                "operationId": "runs-sync-data_lattice_au-data-cv-ats-scorer",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/data_lattice_au~data-cv-ats-scorer/run-sync": {
            "post": {
                "operationId": "run-sync-data_lattice_au-data-cv-ats-scorer",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "jd_text"
                ],
                "properties": {
                    "cv_file": {
                        "title": "Upload CV file",
                        "type": "string",
                        "description": "Upload your resume from your computer. Accepts .docx, .pdf, .txt, or .md. Pair with the 'CV file type' dropdown below so the parser knows the format."
                    },
                    "cv_filetype": {
                        "title": "CV file type",
                        "enum": [
                            "docx",
                            "pdf",
                            "txt",
                            "md"
                        ],
                        "type": "string",
                        "description": "Select the file format you uploaded above. Required when 'Upload CV file' is used. Ignored when CV is supplied as URL or pasted text.",
                        "default": "docx"
                    },
                    "cv_url": {
                        "title": "CV URL (alternative)",
                        "type": "string",
                        "description": "Public link to the CV. Must end in .docx, .pdf, .txt or .md. Use this if the CV is hosted on Dropbox, Google Drive (download link), GitHub raw, etc."
                    },
                    "cv_text": {
                        "title": "CV plain text (alternative)",
                        "type": "string",
                        "description": "Paste the resume body as text. Used when neither file upload nor URL is provided. Plain text only - formatting is ignored."
                    },
                    "jd_text": {
                        "title": "Job description text",
                        "type": "string",
                        "description": "Full job description text to score the CV against. Required."
                    },
                    "jd_title": {
                        "title": "Job title (optional)",
                        "type": "string",
                        "description": "Optional job title shown in the scoring report header."
                    },
                    "company": {
                        "title": "Company (optional)",
                        "type": "string",
                        "description": "Optional company name shown in the scoring report header."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
