# GigRadar: AI job-search agent for Nigeria (`dazedtechie/gigradar`) Actor

An autonomous agent that finds safe jobs you can actually get, tracks your applications, schedules interviews with prep briefs, and tailors your resume without inventing experience.

- **URL**: https://apify.com/dazedtechie/gigradar.md
- **Developed by:** [Susannah Adebola](https://apify.com/dazedtechie) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 job scrapeds

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

### What does GigRadar do?

**GigRadar is an AI job-search agent for people in Nigeria.** It is not a job scraper. It is an **autonomous agent** that looks at where you are in your job search and **decides what to do next**:

- 🛡️ **Is this job a scam?** Every job, from job boards or pasted from **WhatsApp and Telegram job channels**, gets a **scam-risk score** with reasons (upfront "registration fees", BVN requests, WhatsApp-only contact, too-good-to-be-true pay).
- 🌍 **Can you actually get it?** A **hireability score** catches "remote, US only", visa and payment restrictions that silently block Nigeria-based applicants.
- 📬 **Where do my applications stand?** It reads recruiter emails and messages, tracks each application (applied, interview, rejected), and flags **ghosting**. It knows "unfortunately Tuesday doesn't work, can we do Thursday?" is a **rescheduled interview**, not a rejection.
- 📅 **Interview coming up?** It adds it to your calendar with reminders and writes a **prep brief** from the company's own website and the job's requirements.
- ✏️ **Tailor my resume.** It rewords what you already did to match the best jobs, and **flags real gaps instead of inventing experience**. Any rewrite that adds a tool, number or skill your resume doesn't have is rejected automatically.

### How the agent works

An LLM **orchestrator** observes the current state (jobs found, open applications, interviews without a calendar entry or brief, whether you gave a resume) and **chooses which tool to call next**, with what arguments, until nothing more is worth doing:

| Tool | What it does |
| --- | --- |
| `scrape_sources` | Picks the right job-board categories and city pages for your role, crawls Jobberman and MyJobMag, scores and filters every job |
| `score_job` | Scores job posts you pasted (WhatsApp, Telegram channels, flyers) |
| `check_email` | Reads pasted messages (and Gmail when connected), updates application status, detects ghosting |
| `schedule_calendar` | Adds an interview to Google Calendar, or creates a calendar file any phone can open |
| `research_company` | Researches the company and writes an interview-prep brief |
| `tailor_resume` | Tailors your resume to one job, honestly |

Every decision is written to the **`AGENT_LOG`** record, so you can see what the agent chose and why. If the LLM provider is down, a **rule-based planner** makes the decisions from the same state, so a run never fails.

### Why GigRadar?

- **Job scams are common** on informal channels. GigRadar checks a post before you pay anyone anything.
- **"Remote" often isn't remote for Nigerians.** GigRadar tells you before you apply.
- **One agent for the whole search**: finding, checking, tracking, scheduling, preparing and tailoring.
- **Built on Apify**: schedule it every morning, call it from your own app through the API, and keep your jobs and applications in Apify storage between runs.

### How much does it cost?

GigRadar uses **pay per event**. You only pay when the agent delivers something:

| Event | When |
| --- | --- |
| `job_normalized` | A safe, hireable job in your field reached your feed |
| `scam_flag_issued` | A job was flagged as a likely scam |
| `status_change_detected` | An application changed state (applied, interview, rejected, ghosted) |
| `interview_scheduled` | An interview was added to your calendar |
| `interview_prep_generated` | An interview-prep brief was written |
| `resume_tailored` | Your resume was tailored to a job |

Duplicates, reposts, jobs outside your field and messages that change nothing are free. See the **Pricing** tab.

### How to use it

1. Enter your **target role**, **location** and **remote preference**.
2. Paste job posts you want checked, recruiter messages, and your resume. All optional.
3. Optionally tell it what you want in **What should GigRadar do?**
4. Click **Start**. Results are in the dataset (`record_type`: `job`, `application` or `tailoring`); calendar files, prep briefs, tailored resumes and the `AGENT_LOG` are in the key-value store.

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Setup for the AI and Google features

- **LLM (optional):** set `LLM_API_KEY` (secret), `LLM_BASE_URL` and `LLM_MODEL` on the Actor. Any OpenAI-compatible provider works, including Google AI Studio's free tier: GigRadar only calls the LLM when rules are unsure and caps calls per run.
- **Gmail and Calendar (optional):** run `node scripts/google-auth.mjs` once, then add `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET` and `GOOGLE_REFRESH_TOKEN` (secrets). GigRadar asks for read-only Gmail and permission to create calendar events. It never sends email.

### FAQ

#### Is a low scam score a guarantee?

No. Scores are signals with reasons, not proof. Never pay money to get a job.

#### Is my data shared?

Your jobs, applications and resume stay in your own Apify account. If you enable the LLM, the text it reads is sent to the LLM provider you configured.

#### Legal

GigRadar only reads pages the job boards allow in their robots.txt, at a low request rate, and only public job listings.

Found a problem? Open an issue in the **Issues** tab. To run GigRadar from your own code, see the **API** tab.

# Actor input Schema

## `goal` (type: `string`):

Optional, in your own words, e.g. "I have an interview next week, get me ready" or "find me remote frontend jobs". The agent decides which tools to use.

## `targetRole` (type: `string`):

The job you are looking for, e.g. "frontend developer" or "accountant". The agent uses it to decide which job boards and categories to search.

## `location` (type: `string`):

Where you live. Used to pick city pages and to judge whether you can realistically be hired.

## `remotePreference` (type: `string`):

Whether you want remote, hybrid or on-site work.

## `pastedJobs` (type: `array`):

Job posts from WhatsApp, Telegram job channels, flyers or anywhere else, one per item. Each gets a scam-risk and hireability score with reasons.

## `messages` (type: `array`):

Emails or chat messages about your applications. Each item is either the message text, or an object: {"from": "talent@company.com", "subject": "...", "date": "2026-09-20", "body": "...", "direction": "inbound" or "outbound", "channel": "email" or "telegram"}.

## `applications` (type: `array`):

Applications to track even before anyone replies, so ghosting can be detected. Each item: {"company": "Korapay", "role": "Frontend Developer", "applied_on": "2026-09-01", "job_id": "optional id from GigRadar Discovery"}.

## `readGmail` (type: `boolean`):

Read job-related emails (received and sent) since the last run. Requires the GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET and GOOGLE_REFRESH_TOKEN environment variables. On the public Actor, only the Actor owner's runs can use Gmail and Calendar.

## `resumeText` (type: `string`):

Paste your full resume as plain text. The agent only rewords what is already here and never adds experience you do not have.

## `jobText` (type: `string`):

Optional: a job description to tailor your resume to. The agent also tailors to the best jobs it finds.

## `jobTitle` (type: `string`):

Optional, for pasted jobs.

## `jobCompany` (type: `string`):

Optional, for pasted jobs.

## `useLlm` (type: `boolean`):

Let the LLM configured in LLM_API_KEY, LLM_BASE_URL and LLM_MODEL decide which tools to run and help with unclear cases. Without it (or if the provider is down), a rule-based planner makes the decisions.

## `maxSteps` (type: `integer`):

How many decisions the LLM orchestrator may make in one run.

## `maxTailoredJobs` (type: `integer`):

The agent tailors your resume to the best matches it finds, up to this many.

## `maxLlmCalls` (type: `integer`):

The LLM is only asked about listings the rules are unsure of (pasted text, warning signs, unclear hireability). This caps how many calls one run can make, to stay inside free-tier quotas.

## `maxPagesPerSource` (type: `integer`):

How many listing pages (categories, cities, remote board) to read from each job board.

## `maxJobsPerSource` (type: `integer`):

Maximum number of job listings to check from each job board.

## `scamRiskThreshold` (type: `integer`):

Listings with a scam-risk score at or above this are flagged and kept out of the available feed.

## `hireabilityThreshold` (type: `integer`):

Listings with a hireability score below this are marked as unlikely to hire someone based in Nigeria.

## `includeSuppressed` (type: `boolean`):

Keep scam-flagged and unlikely-hireable listings in the dataset (marked by the "decision" field). Turn off to output only available jobs.

## `onlyMatchingRoles` (type: `boolean`):

Drop job-board listings that are not in the same field as your target role (e.g. a Secretary role when you search for "frontend developer"). Dropped listings are not charged. Pasted posts are always checked.

## `ghostedAfterDays` (type: `integer`):

An application with no reply for this many days is flagged as ghosted.

## `createCalendarEvents` (type: `boolean`):

Create a calendar event with reminders (1 day and 1 hour before) for each interview. Without Google connected, an .ics calendar file is created instead, which any calendar app can open.

## `timeZone` (type: `string`):

Used for interview times that do not state a time zone.

## `gmailLookbackDays` (type: `integer`):

After the first run, only new emails are read.

## `seenJobsStoreName` (type: `string`):

Named key-value store that remembers jobs across runs, so reposts are not delivered or charged twice.

## `resetSeenJobs` (type: `boolean`):

Start this run with an empty seen-jobs memory.

## `applicationsStoreName` (type: `string`):

Named key-value store that keeps your application records between runs.

## `resetApplications` (type: `boolean`):

Start this run with no application history.

## Actor input object example

```json
{
  "goal": "Find me frontend developer jobs on Jobberman and MyJobMag, check these pasted job posts for scams, read my emails and sort out my job applications, schedule and prepare me for my interviews, and tailor my resume to each safe job you find.",
  "targetRole": "frontend developer",
  "location": "Lagos, Nigeria",
  "remotePreference": "any",
  "pastedJobs": [
    "We are hiring a Junior React Developer at Kora Labs Ltd, Lagos (hybrid). Requirements: 1+ years of React, TypeScript, Git. Salary NGN 350,000 - 500,000 monthly. Apply by sending your CV to careers@koralabs.ng",
    "URGENT!!! Online data entry job, no experience needed, earn N50,000 weekly from your phone. Limited slots. Pay registration fee of N5,000 to activate your account. Message us on WhatsApp now or email hiringteam2026@gmail.com"
  ],
  "messages": [
    {
      "from": "Kora Labs Careers <careers@koralabs.ng>",
      "subject": "Your application for Frontend Developer",
      "date": "2026-09-18T09:12:00Z",
      "body": "Hi Ada, thank you for applying to the Frontend Developer role at Kora Labs. Our team is reviewing applications and will be in touch soon. Kora Labs Talent Team"
    },
    {
      "from": "Korapay Talent <talent@korapay.com>",
      "subject": "Interview invitation - Backend Developer",
      "date": "2026-09-24T14:30:00Z",
      "body": "Hi Ada, we enjoyed reviewing your application and would like to invite you to an interview for the Backend Developer role at Korapay on Monday, 29 September 2026 at 10:00 AM (WAT) on Google Meet: https://meet.google.com/abc-defg-hij. Please be ready to walk us through a project you have built."
    },
    {
      "from": "Paystack Careers <careers@paystack.com>",
      "subject": "Update on your application",
      "date": "2026-09-22T11:00:00Z",
      "body": "Dear Ada, thank you for your interest in the Backend Developer role at Paystack. Unfortunately, we have decided to move forward with other candidates whose experience more closely matches our needs."
    },
    {
      "from": "Tunde from Moniepoint <people@moniepoint.com>",
      "subject": "Re: Frontend Engineer interview",
      "date": "2026-09-24T16:05:00Z",
      "body": "Hi Ada, unfortunately Tuesday no longer works for our team. Could we do the interview on Thursday, 2 October at 2pm instead? It will be with our CTO."
    }
  ],
  "applications": [
    {
      "company": "Flutterwave",
      "role": "Frontend Engineer",
      "applied_on": "2026-09-05"
    }
  ],
  "readGmail": true,
  "resumeText": "Ada Obi\nFrontend developer | Lagos, Nigeria\n\nExperience\nFrontend Developer, PayLink Africa (2023 - present)\n- Built customer dashboards in React and JavaScript, used by 12,000 merchants\n- Worked with the backend team to connect REST APIs for payments\n- Wrote unit tests with Jest and fixed bugs reported by the support team\n\nSkills\nReact, JavaScript, HTML, CSS, Git, Jest",
  "useLlm": true,
  "maxSteps": 8,
  "maxTailoredJobs": 5,
  "maxLlmCalls": 10,
  "maxPagesPerSource": 2,
  "maxJobsPerSource": 10,
  "scamRiskThreshold": 60,
  "hireabilityThreshold": 40,
  "includeSuppressed": true,
  "onlyMatchingRoles": true,
  "ghostedAfterDays": 14,
  "createCalendarEvents": true,
  "timeZone": "Africa/Lagos",
  "gmailLookbackDays": 30,
  "seenJobsStoreName": "gigradar-agent-seen-jobs",
  "resetSeenJobs": true,
  "applicationsStoreName": "gigradar-agent-applications",
  "resetApplications": 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 = {
    "goal": "Find me frontend developer jobs on Jobberman and MyJobMag, check these pasted job posts for scams, read my emails and sort out my job applications, schedule and prepare me for my interviews, and tailor my resume to each safe job you find.",
    "targetRole": "frontend developer",
    "location": "Lagos, Nigeria",
    "pastedJobs": [
        "We are hiring a Junior React Developer at Kora Labs Ltd, Lagos (hybrid). Requirements: 1+ years of React, TypeScript, Git. Salary NGN 350,000 - 500,000 monthly. Apply by sending your CV to careers@koralabs.ng",
        "URGENT!!! Online data entry job, no experience needed, earn N50,000 weekly from your phone. Limited slots. Pay registration fee of N5,000 to activate your account. Message us on WhatsApp now or email hiringteam2026@gmail.com"
    ],
    "messages": [
        {
            "from": "Kora Labs Careers <careers@koralabs.ng>",
            "subject": "Your application for Frontend Developer",
            "date": "2026-09-18T09:12:00Z",
            "body": "Hi Ada, thank you for applying to the Frontend Developer role at Kora Labs. Our team is reviewing applications and will be in touch soon. Kora Labs Talent Team"
        },
        {
            "from": "Korapay Talent <talent@korapay.com>",
            "subject": "Interview invitation - Backend Developer",
            "date": "2026-09-24T14:30:00Z",
            "body": "Hi Ada, we enjoyed reviewing your application and would like to invite you to an interview for the Backend Developer role at Korapay on Monday, 29 September 2026 at 10:00 AM (WAT) on Google Meet: https://meet.google.com/abc-defg-hij. Please be ready to walk us through a project you have built."
        },
        {
            "from": "Paystack Careers <careers@paystack.com>",
            "subject": "Update on your application",
            "date": "2026-09-22T11:00:00Z",
            "body": "Dear Ada, thank you for your interest in the Backend Developer role at Paystack. Unfortunately, we have decided to move forward with other candidates whose experience more closely matches our needs."
        },
        {
            "from": "Tunde from Moniepoint <people@moniepoint.com>",
            "subject": "Re: Frontend Engineer interview",
            "date": "2026-09-24T16:05:00Z",
            "body": "Hi Ada, unfortunately Tuesday no longer works for our team. Could we do the interview on Thursday, 2 October at 2pm instead? It will be with our CTO."
        }
    ],
    "applications": [
        {
            "company": "Flutterwave",
            "role": "Frontend Engineer",
            "applied_on": "2026-09-05"
        }
    ],
    "readGmail": true,
    "resumeText": `Ada Obi
Frontend developer | Lagos, Nigeria

Experience
Frontend Developer, PayLink Africa (2023 - present)
- Built customer dashboards in React and JavaScript, used by 12,000 merchants
- Worked with the backend team to connect REST APIs for payments
- Wrote unit tests with Jest and fixed bugs reported by the support team

Skills
React, JavaScript, HTML, CSS, Git, Jest`,
    "maxTailoredJobs": 5,
    "maxJobsPerSource": 10,
    "resetSeenJobs": true,
    "resetApplications": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("dazedtechie/gigradar").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 = {
    "goal": "Find me frontend developer jobs on Jobberman and MyJobMag, check these pasted job posts for scams, read my emails and sort out my job applications, schedule and prepare me for my interviews, and tailor my resume to each safe job you find.",
    "targetRole": "frontend developer",
    "location": "Lagos, Nigeria",
    "pastedJobs": [
        "We are hiring a Junior React Developer at Kora Labs Ltd, Lagos (hybrid). Requirements: 1+ years of React, TypeScript, Git. Salary NGN 350,000 - 500,000 monthly. Apply by sending your CV to careers@koralabs.ng",
        "URGENT!!! Online data entry job, no experience needed, earn N50,000 weekly from your phone. Limited slots. Pay registration fee of N5,000 to activate your account. Message us on WhatsApp now or email hiringteam2026@gmail.com",
    ],
    "messages": [
        {
            "from": "Kora Labs Careers <careers@koralabs.ng>",
            "subject": "Your application for Frontend Developer",
            "date": "2026-09-18T09:12:00Z",
            "body": "Hi Ada, thank you for applying to the Frontend Developer role at Kora Labs. Our team is reviewing applications and will be in touch soon. Kora Labs Talent Team",
        },
        {
            "from": "Korapay Talent <talent@korapay.com>",
            "subject": "Interview invitation - Backend Developer",
            "date": "2026-09-24T14:30:00Z",
            "body": "Hi Ada, we enjoyed reviewing your application and would like to invite you to an interview for the Backend Developer role at Korapay on Monday, 29 September 2026 at 10:00 AM (WAT) on Google Meet: https://meet.google.com/abc-defg-hij. Please be ready to walk us through a project you have built.",
        },
        {
            "from": "Paystack Careers <careers@paystack.com>",
            "subject": "Update on your application",
            "date": "2026-09-22T11:00:00Z",
            "body": "Dear Ada, thank you for your interest in the Backend Developer role at Paystack. Unfortunately, we have decided to move forward with other candidates whose experience more closely matches our needs.",
        },
        {
            "from": "Tunde from Moniepoint <people@moniepoint.com>",
            "subject": "Re: Frontend Engineer interview",
            "date": "2026-09-24T16:05:00Z",
            "body": "Hi Ada, unfortunately Tuesday no longer works for our team. Could we do the interview on Thursday, 2 October at 2pm instead? It will be with our CTO.",
        },
    ],
    "applications": [{
            "company": "Flutterwave",
            "role": "Frontend Engineer",
            "applied_on": "2026-09-05",
        }],
    "readGmail": True,
    "resumeText": """Ada Obi
Frontend developer | Lagos, Nigeria

Experience
Frontend Developer, PayLink Africa (2023 - present)
- Built customer dashboards in React and JavaScript, used by 12,000 merchants
- Worked with the backend team to connect REST APIs for payments
- Wrote unit tests with Jest and fixed bugs reported by the support team

Skills
React, JavaScript, HTML, CSS, Git, Jest""",
    "maxTailoredJobs": 5,
    "maxJobsPerSource": 10,
    "resetSeenJobs": True,
    "resetApplications": True,
}

# Run the Actor and wait for it to finish
run = client.actor("dazedtechie/gigradar").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 '{
  "goal": "Find me frontend developer jobs on Jobberman and MyJobMag, check these pasted job posts for scams, read my emails and sort out my job applications, schedule and prepare me for my interviews, and tailor my resume to each safe job you find.",
  "targetRole": "frontend developer",
  "location": "Lagos, Nigeria",
  "pastedJobs": [
    "We are hiring a Junior React Developer at Kora Labs Ltd, Lagos (hybrid). Requirements: 1+ years of React, TypeScript, Git. Salary NGN 350,000 - 500,000 monthly. Apply by sending your CV to careers@koralabs.ng",
    "URGENT!!! Online data entry job, no experience needed, earn N50,000 weekly from your phone. Limited slots. Pay registration fee of N5,000 to activate your account. Message us on WhatsApp now or email hiringteam2026@gmail.com"
  ],
  "messages": [
    {
      "from": "Kora Labs Careers <careers@koralabs.ng>",
      "subject": "Your application for Frontend Developer",
      "date": "2026-09-18T09:12:00Z",
      "body": "Hi Ada, thank you for applying to the Frontend Developer role at Kora Labs. Our team is reviewing applications and will be in touch soon. Kora Labs Talent Team"
    },
    {
      "from": "Korapay Talent <talent@korapay.com>",
      "subject": "Interview invitation - Backend Developer",
      "date": "2026-09-24T14:30:00Z",
      "body": "Hi Ada, we enjoyed reviewing your application and would like to invite you to an interview for the Backend Developer role at Korapay on Monday, 29 September 2026 at 10:00 AM (WAT) on Google Meet: https://meet.google.com/abc-defg-hij. Please be ready to walk us through a project you have built."
    },
    {
      "from": "Paystack Careers <careers@paystack.com>",
      "subject": "Update on your application",
      "date": "2026-09-22T11:00:00Z",
      "body": "Dear Ada, thank you for your interest in the Backend Developer role at Paystack. Unfortunately, we have decided to move forward with other candidates whose experience more closely matches our needs."
    },
    {
      "from": "Tunde from Moniepoint <people@moniepoint.com>",
      "subject": "Re: Frontend Engineer interview",
      "date": "2026-09-24T16:05:00Z",
      "body": "Hi Ada, unfortunately Tuesday no longer works for our team. Could we do the interview on Thursday, 2 October at 2pm instead? It will be with our CTO."
    }
  ],
  "applications": [
    {
      "company": "Flutterwave",
      "role": "Frontend Engineer",
      "applied_on": "2026-09-05"
    }
  ],
  "readGmail": true,
  "resumeText": "Ada Obi\\nFrontend developer | Lagos, Nigeria\\n\\nExperience\\nFrontend Developer, PayLink Africa (2023 - present)\\n- Built customer dashboards in React and JavaScript, used by 12,000 merchants\\n- Worked with the backend team to connect REST APIs for payments\\n- Wrote unit tests with Jest and fixed bugs reported by the support team\\n\\nSkills\\nReact, JavaScript, HTML, CSS, Git, Jest",
  "maxTailoredJobs": 5,
  "maxJobsPerSource": 10,
  "resetSeenJobs": true,
  "resetApplications": true
}' |
apify call dazedtechie/gigradar --silent --output-dataset

```

## MCP server setup

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

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/hBlSt8LLHUhgF54Yo/builds/YXpu4DaQEOXNxUKKb/openapi.json
