# WorkDey: Autonomous AI Career Scout & Application Agent (`em07_adoz/workdey-career-agent`) Actor

Autonomous AI career agent that discovers verified tech roles across global feeds and African ATS boards, screens out scam postings, calculates CV fit, and drafts tailored application packs.

- **URL**: https://apify.com/em07\_adoz/workdey-career-agent.md
- **Developed by:** [Olamide Lawal](https://apify.com/em07_adoz) (community)
- **Stats:** 7 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 verified match founds

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## WorkDey: AI Career Scout & Application Agent

WorkDey is an AI-powered career agent that discovers live job opportunities, evaluates how well they match your CV, screens listings for potential scam signals, and prepares tailored application materials for relevant roles.

**Tell WorkDey what you can do once. Let it find the opportunities that fit.**

WorkDey was built with Nigerian job seekers in mind, but it is not limited by location. Whether you are in Nigeria, elsewhere in Africa, or looking for opportunities beyond the continent, WorkDey helps you discover roles that match your skills and preferences.

### WorkDey Frontend

WorkDey also includes a web interface for interacting with the career agent without working directly with the Apify Actor interface.

The frontend allows users to provide their CV, define target roles and preferences, and start a job-matching workflow. It presents the results in a more accessible interface and connects the user experience to the underlying WorkDey Actor.

**Web app:** https://workdey-mocha.vercel.app/index.html

The Apify Actor remains the core job discovery and processing engine. The frontend is an additional interface built around it.

### What problem does WorkDey solve?

Job hunting can become a repetitive daily process.

You open multiple job boards, search for roles, copy interesting listings into your notes, compare each requirement against your CV, wonder whether a posting is legitimate, and then start another application from a blank page.

WorkDey automates the early stages of that process.

Instead of simply returning a large list of jobs, it evaluates opportunities against your profile and helps you focus on the roles that are more relevant to you.

### What WorkDey does

WorkDey:

1. Discovers live jobs from supported job feeds.
2. Checks listings for potential scam signals.
3. Compares jobs with your CV using AI.
4. Produces a compatibility score from 0 to 100.
5. Explains why a role matches your background.
6. Identifies potential gaps between your CV and the job requirements.
7. Generates tailored application materials for qualifying matches.
8. Creates an HTML dashboard containing the results.
9. Can send the generated application materials by email.
10. Remembers previously processed jobs to reduce repeated processing.

**WorkDey does not apply for you.** You review the job, review the generated materials, and submit the application yourself.

### Key Features

#### Live Job Discovery

The current Apify Actor retrieves job listings from:

- RemoteOK
- Remotive
- BambooHR

Listings are normalized and processed through the same evaluation workflow.

The broader WorkDey product is being expanded to support additional job sources and recurring career discovery.

#### Scam-Risk Screening

WorkDey checks listings for signals commonly associated with employment scams.

Examples include:

- Requests for upfront payments
- Training or interview fees
- Suspicious recruitment requirements
- Other patterns identified by the screening logic

Scam screening provides a **risk signal**, not a guarantee that a listing is legitimate.

Candidates should still verify employers and job listings independently before sharing sensitive information or applying.

#### CV-to-Job Matching

WorkDey compares the information in your CV with the available job description and produces a compatibility score from **0 to 100**.

The evaluation can consider:

- Relevant skills
- Experience overlap
- Technical requirements
- Role alignment
- Information contained in the job description

You can control the minimum score required for a job to qualify using `minScore`.

#### Application Pack Generation

For qualifying matches, WorkDey can prepare an application pack containing:

- A tailored cover letter
- A recruiter outreach message
- CV improvement suggestions
- Facts from your CV used to support the application

The generated materials are grounded in information provided in your CV rather than intentionally inventing credentials or experience.

**Always review generated materials before sending them.**

#### Persistent Job Memory

WorkDey maintains a persistent record of previously processed job IDs using an Apify Key-Value Store.

This helps later runs avoid repeatedly processing the same listings.

Set `resetMemory` to `true` when you want previously processed jobs to be evaluated again.

#### HTML Dashboard

Each run generates:

```text
OUTPUT_DASHBOARD.html
```

The dashboard provides a visual view of the processed opportunities and generated application materials.

It can include:

- Job title
- Company
- Location
- Job source
- Match score
- Scam status
- Fit information
- Direct job link
- Recruiter outreach message
- Cover letter
- CV suggestions

#### Email Delivery

You can optionally provide an email address.

When application packs are generated, WorkDey sends a consolidated report containing the generated application materials and a link to the WorkDey dashboard.

### How It Works

```text
Candidate CV + Target Roles
            │
            ▼
      Job Discovery
            │
            ▼
       Job Memory
            │
            ▼
      Scam Screening
            │
            ▼
     CV-Job Evaluation
            │
            ▼
       Match Scoring
            │
            ▼
 Application Pack Generation
            │
       ┌────┴────┐
       ▼         ▼
   Dashboard    Email
       │         │
       └────┬────┘
            ▼
       Final Results
```

### Input

| Field                | Type    | Required | Description                                                                  |
| -------------------- | ------- | -------: | ---------------------------------------------------------------------------- |
| `fullName`           | String  |      Yes | Candidate's name used to personalize application materials.                  |
| `cvText`             | String  |      Yes | Plain-text CV or resume used for matching and application generation.        |
| `targetRoles`        | Array   |      Yes | Job titles or keywords to search for.                                        |
| `email`              | String  |       No | Email address for receiving the application report.                          |
| `preferredLocations` | Array   |       No | Preferred locations or work modes such as `Remote`, `Lagos`, or `Worldwide`. |
| `minScore`           | Integer |       No | Minimum compatibility score from 1 to 100. Default: `60`.                    |
| `maxPacks`           | Integer |       No | Maximum number of application packs generated per run. Default: `2`.         |
| `resetMemory`        | Boolean |       No | Re-evaluates previously processed jobs when set to `true`.                   |

#### Example Input

```json
{
  "fullName": "Olamide Lawal",
  "email": "candidate@example.com",
  "targetRoles": [
    "Machine Learning Engineer",
    "Data Scientist"
  ],
  "preferredLocations": [
    "Remote",
    "Lagos",
    "Worldwide"
  ],
  "cvText": "Electronic & Electrical Engineering undergraduate with experience in machine learning, Python, PyTorch, medical imaging, embedded systems, and edge ML deployments.",
  "minScore": 60,
  "maxPacks": 2,
  "resetMemory": true
}
```

### Output

WorkDey produces results through the Actor's default dataset and generated files.

#### Processed Dataset

Dataset records can include:

- Job title
- Company
- Location
- Job URL
- Source
- Match score
- Scam status
- Scam reason
- Fit reasons
- Application pack
- Processing timestamp

#### HTML Dashboard

The Actor generates:

```text
OUTPUT_DASHBOARD.html
```

The dashboard provides a visual summary of processed jobs and generated application materials.

#### Email Application Report

When an email address is provided and application packs are generated, WorkDey can send an email containing:

- Matched roles
- Match scores
- Job links
- Recruiter outreach messages
- Cover letters
- CV suggestions
- Facts used from the candidate's CV
- Dashboard link

### What You Get From a Match

A qualifying opportunity can include:

#### Match score

A score from 0 to 100 representing the estimated fit between the candidate's CV and the job.

#### Why it matches

Relevant skills, experience, or requirements identified during the evaluation.

#### Application draft

A tailored cover letter and recruiter outreach message.

#### CV suggestions

Specific changes that can help align the CV more closely with the role.

#### Evidence from your CV

The facts from the candidate profile used to support the generated application materials.

### Review Before You Apply

WorkDey is designed to assist with job applications, not submit them automatically.

You remain in control of every application.

Before applying:

1. Read the original job description.
2. Verify the employer and application link.
3. Review the match score and reasoning.
4. Check the generated cover letter and recruiter message.
5. Confirm that every statement about your experience is accurate.
6. Submit the application yourself through the original job source.

### Monetization

WorkDey uses **Apify Pay Per Event (PPE)** monetization.

Current billable events are:

| Event                    |    Price |
| ------------------------ | -------: |
| Verified Match Found     |   $0.002 |
| Result                   |    $0.01 |
| Application Pack Drafted |    $0.50 |
| Actor Start              | $0.00005 |

The amount you pay depends on the events triggered during a run.

Application-pack generation is the main higher-cost event because it produces the personalized application materials.

### Important Limitations

WorkDey is a career assistance tool, not a hiring platform.

A match score is an estimate based on the information available in the job listing and candidate profile. It does not guarantee:

- That the candidate meets every employer requirement
- That the candidate will be shortlisted
- That an employer will respond
- That a position is still available when the candidate applies

Scam screening identifies potential risk signals but cannot guarantee that a job posting is legitimate.

Job availability and source coverage can change as external job boards and feeds change.

Always verify the original listing and employer before applying or sharing sensitive information.

### Technology

WorkDey is built with:

- **TypeScript**
- **Apify Actors**
- **Apify Datasets**
- **Apify Key-Value Stores**
- **Groq**
- **HTML/CSS**

### Project Structure

```text
src/
├── main.ts
├── ai.ts
├── email.ts
└── types.ts

.actor/
└── actor.json

input_schema.json
package.json
README.md
tsconfig.json
```

### Running WorkDey Locally

#### 1. Install dependencies

```bash
npm install
```

#### 2. Build the Actor

```bash
npm run build
```

#### 3. Configure environment variables

Configure the environment variables required by the Actor, including the API credentials needed for the AI integration.

**Never commit API keys or other secrets to your repository.**

#### 4. Run the Actor

Using the Apify CLI:

```bash
apify call
```

You can also run the Actor through the Apify Console or API using the configured input schema.

### Who Is WorkDey For?

WorkDey is designed for people who want to reduce the repetitive work involved in finding and preparing applications for technology roles.

It can be useful for:

- Software engineers
- Machine learning engineers
- Data scientists
- Data analysts
- Product and technical professionals
- Students and early-career professionals
- Job seekers in Nigeria
- Job seekers across Africa
- Candidates looking for remote and international opportunities

WorkDey does not treat location as a barrier. It is built with Nigerian job seekers in mind while supporting a broader search for opportunities across Africa and beyond.

### Project Goal

WorkDey is designed to make the early stages of job searching more structured, targeted, and less repetitive.

**Find relevant opportunities. Understand your fit. Prepare better applications.**

# Actor input Schema

## `fullName` (type: `string`):

Your full name for personalizing outreach materials and the dashboard.

## `email` (type: `string`):

Where to send your application pack and match report. Leave empty to skip email.

## `targetRoles` (type: `array`):

Job titles or target domains (e.g., Data Scientist, UI/UX Designer, Product Designer).

## `preferredLocations` (type: `array`):

e.g., Remote, Lagos, Nigeria, Worldwide, Hybrid.

## `cvText` (type: `string`):

Paste your full CV or career summary text.

## `minScore` (type: `integer`):

Only jobs matching at or above this score threshold will be included.

## `maxPacks` (type: `integer`):

How many tailored cover letters and recruiter DMs to generate for top matches.

## `resetMemory` (type: `boolean`):

Enable this to re-evaluate and clear previously saved job history. Turn off for scheduled runs so you only get new jobs.

## Actor input object example

```json
{
  "fullName": "Olamide Lawal",
  "targetRoles": [
    "Data Scientist",
    "Machine Learning Engineer"
  ],
  "preferredLocations": [
    "Remote",
    "Nigeria",
    "Worldwide"
  ],
  "cvText": "Machine learning and software engineer experienced in Python, PyTorch, predictive modeling, data pipelines, and embedded IoT architectures.",
  "minScore": 50,
  "maxPacks": 1,
  "resetMemory": true
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "fullName": "Olamide Lawal",
    "targetRoles": [
        "Data Scientist",
        "Machine Learning Engineer"
    ],
    "preferredLocations": [
        "Remote",
        "Nigeria",
        "Worldwide"
    ],
    "cvText": "Machine learning and software engineer experienced in Python, PyTorch, predictive modeling, data pipelines, and embedded IoT architectures.",
    "minScore": 50,
    "maxPacks": 1,
    "resetMemory": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("em07_adoz/workdey-career-agent").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 = {
    "fullName": "Olamide Lawal",
    "targetRoles": [
        "Data Scientist",
        "Machine Learning Engineer",
    ],
    "preferredLocations": [
        "Remote",
        "Nigeria",
        "Worldwide",
    ],
    "cvText": "Machine learning and software engineer experienced in Python, PyTorch, predictive modeling, data pipelines, and embedded IoT architectures.",
    "minScore": 50,
    "maxPacks": 1,
    "resetMemory": True,
}

# Run the Actor and wait for it to finish
run = client.actor("em07_adoz/workdey-career-agent").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "fullName": "Olamide Lawal",
  "targetRoles": [
    "Data Scientist",
    "Machine Learning Engineer"
  ],
  "preferredLocations": [
    "Remote",
    "Nigeria",
    "Worldwide"
  ],
  "cvText": "Machine learning and software engineer experienced in Python, PyTorch, predictive modeling, data pipelines, and embedded IoT architectures.",
  "minScore": 50,
  "maxPacks": 1,
  "resetMemory": true
}' |
apify call em07_adoz/workdey-career-agent --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,em07_adoz/workdey-career-agent"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/mw6zzbzk4OdjrTWFp/builds/gorpPLZ7idV9P82vi/openapi.json
