Voice Over Jobs Monitor avatar

Voice Over Jobs Monitor

Pricing

from $0.54 / 1,000 listing founds

Go to Apify Store
Voice Over Jobs Monitor

Voice Over Jobs Monitor

One scheduled sweep for voice-over work: paid casting listings from four public boards, the state of the talent doors you watch, and companies that buy VO but publish no door. Returns only what is new since the last run. Never guesses an email or writes outreach.

Pricing

from $0.54 / 1,000 listing founds

Rating

0.0

(0)

Developer

E A

E A

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Finds voice-over work on a schedule and returns only what is new since the last run.

Three kinds of row:

  • Casting listings from four public boards, paid work only by default.
  • Talent doors — the submission forms and standing audition pages at studios you want to be on file with, and whether each one is open, closed or newly reopened.
  • Companies that buy voice-over but have no submission page at all.

Every value is copied from a page. Nothing is guessed, no email is invented, and it never writes an approach for you.

Why

Voice-over work is scattered across boards that have no feed and no export. The studios worth being on file with open their submission form quietly and close it just as quietly. And the companies that buy the most voice-over never post a casting at all.

Checking all that by hand is the same twenty tabs every morning. This does the sweep and hands you the difference.

Who it is for

A working voice actor gets the most from Casting Call Club (paid Voice Actor projects only), Casting Callback UK, and the talent doors you name. Those rows carry a rate, a deadline, and what the page says about AI.

Someone building a reel will also want Bluesky. It is the community lane: indie games, fan dubs, audio dramas and webcomics, usually with no rate stated. Real work, rarely professional rates. If you only want paid professional listings, leave bluesky out of sourceAllowlist and set a pay floor.

The boards are English-language and the pay is mostly in USD and GBP.

The three lanes

Every row carries a lane. Lanes are never mixed on one row.

board — casting listings

SourceWhat it reads
BlueskyThe community lane: indie and fan projects, most with no rate stated. A casting feed plus the accounts you name, through the public ATProto API. It ships with a starter list of ten accounts that post voice castings; blueskyHandles replaces it. A feed post is kept only when it names voice work, links a Casting Call Club project or tags itself #voiceacting, and has somewhere to apply. Posts over 14 days old are dropped. The default feed is one another Bluesky user publishes, so set blueskyFeedUri if you would rather not depend on it
Casting Call ClubThe site's public listing data, paid Voice Actor projects only, at the crawl delay it asks for
ytjobs.coVoice Over roles from the public jobs API, with an RSS fallback
Casting Callback UKThe voice-over auditions index. Title, link, pay and a short summary only

on_file / reopen_watch — talent doors

Give it the roster or "work with us" URLs you care about. For each one you get:

  • what kind of door it is: a form, a Typeform, a Google Form, an email address or a vendor portal;
  • whether it is open, closed or paused, plus the sentence on the page that says so;
  • whether it is free, fee-paying or commission-only;
  • whether it asks for a home studio;
  • whether the page carries exclusivity language;
  • what the page says about AI, and which way round.

A door that was open and has since closed comes back as reopen_watch rather than disappearing, so you find out when it opens again.

cold_prospect — companies with no door

Give it company homepages, as a list or a CSV. It returns the ones with a published sign that they buy voice work, what sector they are in, whether they say they record remotely, and a contact email if the site publishes one.

If a homepage turns out to have a talent form after all, the row moves to the Direct lane instead. A published door always wins.

This lane checks the homepages you give it. It does not go looking for companies.

Setting it up for your voice

Nothing here is preset to anyone's profile. The defaults run wide open and you narrow them:

ToSet
Only see listings that name your accentaccentAllowlist, but read the warning below first. Leave empty to see everything
Only see roles for your gendergenderFilter: any, male or female. Listings that do not say, or that want both, always pass
Only professional-rate listingssourceAllowlist without bluesky, and a minPayAmount. A listing with no rate stated still passes a pay floor, because a blank is not a no
Set a pay floorunpaidSkip, minPayAmount, minPayCurrency, minPayUnit
Filter by placelocations and regions, e.g. Remote, US, EMEA
Choose your sourcessourceAllowlist
Watch your own studiosrosterWatchUrls

Before you set accentAllowlist, know what it does. It keeps only listings that name an accent and name one of yours — so a listing that mentions no accent at all is excluded, and most listings mention none. It is a narrow tool, not a general one.

It understands six words, because those are the only accent words the Actor reads off a page: Neutral, General, Standard, GenAm, American English, International English. The input is a picker rather than a text box, so nothing else can be passed.

If you are not in the UK: three of the four board sources are international, but Casting Callback UK is a UK site. Leave it out of sourceAllowlist.

For example, a US-based performer might run sourceAllowlist of bluesky, ytjobs and casting_call_club, genderFilter of female, a minPayAmount of 100 in USD, and locations of Remote and US.

The AI clause, and which way it points

Board and Direct rows carry aiUse, and it is the one field here worth reading first:

aiUseWhat the page said
prohibitedEvery mention of AI is negated — "no AI training", "will never be cloned". A protective clause
requiredThe page asks to use the voice for AI: training, cloning, a synthetic replica
mentionedAI language is on the page but it does not say which way
noneThe page was read and says nothing about AI
emptyThere was no text to read. Not the same answer as none

aiEvidence carries the phrase that decided it, so you can check the reading rather than trust it.

Every yes-or-no field here works the same way: true, false when the page was read and the answer is no, and empty when there was nothing to read. A blank is never a no.

The same goes for a whole source. If one is blocked, or answers with a "checking your browser" page, the run names it in the summary under unreadableSources instead of quietly reporting nothing new. Zero listings because a board was unreachable and zero because nobody posted are different days.

Requirement flags

Board and Direct rows carry requirementFlags: the accent, language or location requirements written on the page. "RP", "Scottish", "UK native only", "voiceover in Spanish", and so on.

They are a signal, not a filter. No row is ever dropped for carrying one. They are there so a listing asking for something you are not can be spotted without opening it.

The list of words it recognises is fixed. It currently leans towards British and Irish accent requests: RP, regional British and Irish accents, Australian, New Zealand, "UK native only", and six non-English voice languages. If you are an American or neutral-English voice, that is useful — those flags mark work you cannot take. If you are a British or Irish voice, the flags will fire on exactly the work you want, so read them as "this listing names an accent" and ignore the rest. Widening that vocabulary is the next thing on the list.

What one row looks like

{
"lane": "board",
"source": "bluesky",
"url": "https://www.example-casting.test/jobs/explainer",
"title": "CASTING CALL! Neutral-accent voiceover for an explainer",
"accentTags": ["Neutral"],
"payRaw": "$400",
"isPaid": true,
"deadline": "2026-10-02",
"requirementFlags": [],
"aiUse": "none"
}
{
"lane": "on_file",
"doorType": "form",
"url": "https://example-studio.test/submit-demo",
"company": "Example Studio",
"status": "open",
"statusEvidence": "We are currently accepting new voice submissions",
"contactEmail": "casting@examplestudio.test",
"freeVsFee": "free",
"homeStudioAsked": true,
"aiTrainingRisk": false,
"aiUse": "prohibited",
"aiEvidence": "no AI training or voice cloning of any recording"
}
{
"lane": "cold_prospect",
"company": "Northbeam Explainers",
"url": "https://northbeam-explainers.test/",
"buyer_type": "explainer",
"email": "hello@northbeam-explainers.test",
"vo_buy_signal": "hire professional voice-over talent for client films",
"has_talent_form": false,
"records_remote": "Y"
}

Download any run as JSON, CSV or Excel from the Output tab, or read it through the Apify API. Each run also writes a SUMMARY record with counts per lane and per source.

Only what is new

Name a Key-Value store in dedupeKvStoreName and leave onlyNew on. Every run then returns the difference instead of the whole board again.

  • Listings and doors are remembered by URL or listing id.
  • Companies are remembered by domain, so studio.co.uk and www.studio.co.uk are one.
  • A door still comes back when its status changes, because that is the news.

Use the same store name for all your scheduled tasks and the three lanes share one memory.

Input

Everything is optional. The defaults run all three lanes.

InputWhat it does
lanesEnabledWhich of board, on_file, cold_prospect to run
onlyNewReturn only what is new. On by default
dedupeKvStoreNameThe store that remembers what you have seen
maxItemsPerSourceCap per source. Keep it low on your first run
sourceAllowlistRun only the sources you name
rosterWatchUrlsThe talent doors to watch
seedHomepageUrls / seedCsvPathThe company homepages to check
blueskyFeedUri / blueskyHandlesThe casting feed and accounts to read
unpaidSkip, minPayAmount, minPayCurrency, minPayUnitPay filters
genderFilter, accentAllowlist, locations, regionsBoard filters, all off by default
buyerTypes, genresCompany filters
proxyConfigurationOff by default. These sources answer a plain HTTP request

What it will not do

  • Invent a value. An accent tag is set only when the page writes the word. Pay is parsed only when a figure is on the page. A contact name appears only when published.
  • Guess an email. No firstname@company.com built from a pattern. Only an address the site has published.
  • Write outreach. No suggested angle, no draft message. It returns facts and stops.
  • Apply for anything. You decide what to do with a row.
  • Read Discord, Voices.com or LinkedIn. It refuses those hosts.
  • Copy job text wholesale. Casting Callback UK rows carry a title, link, pay and a short summary, deliberately.

Limits

  • ytjobs Voice Over listings are often empty. It tries the jobs API by category, then by role title, then RSS, and returns nothing rather than something else.
  • Casting Callback UK detail pages are not fetched, by design.
  • No Voices.com, Spotlight, Equity, Backstage or Mandy — paywalled or off limits.
  • The Casting Call Club browser fallback is optional. The plain HTTP path is the default.
  • The requirement-flag vocabulary is fixed, as described above.

Personal data

Some rows contain personal data, such as a published contact name or a casting address. This Actor returns only what a site has chosen to publish, and never builds an address that is not on the page.

Anything you collect is yours to look after: have a lawful reason to hold it, keep it no longer than you need it, and honour any request to remove it. Do not use it for unsolicited bulk mail.

FAQ

Do I need an account on these sites? No. Every source is read as a member of the public.

Will it apply for me? No, and it never will.

How often should I run it? Daily for listings, weekly for doors and companies. With onlyNew on, a daily run usually returns a handful of rows or none.

Why has a row I already saw come back? Either the store name changed, or a door changed status — an open one closed, or a closed one reopened.

Can I use it for another language? The board sources are English-language. It will run, but it is not built for that yet.

Something is wrong or missing? Use the Issues tab on the Actor page.