YouTube Shorts Script Writer — Celebrity News & Drama

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Part Time

WAGE / SALARY

15

HOURS PER WEEK

20

DATE UPDATED

Apr 14, 2026

JOB OVERVIEW

We run a faceless YouTube Shorts channel covering celebrity drama, pop culture news, and trending stories. We're looking for a sharp, creative scriptwriter who can turn raw topics into 30–50 second scripts that hook viewers and hold attention until the very last second.
What you'll do:

Write 1–2 scripts per day (30–50 seconds each when read aloud) following our proven script structure
Craft attention-grabbing hooks, build curiosity through the middle, and deliver satisfying payoffs at the end
Work with our idea researcher to turn raw clips and topics into compelling narratives
Use dramatic, punchy language appropriate for a younger audience (Grade 5 reading level)
Revise scripts based on retention data and feedback

What a great script looks like to us:

The hook makes someone stop scrolling within the first 3 seconds
The payoff is NEVER revealed early — mystery and intrigue carry the viewer through the whole video
Every sentence serves a purpose — no fluff, no tangents
Language is vivid, dramatic, and simple (no complex vocabulary)
Includes a story-related subscribe CTA after the payoff

You're a great fit if you:

Have experience writing short-form video scripts (YouTube Shorts, TikTok, Reels)
Follow celebrity news, pop culture, and trending topics
Understand retention-driven storytelling (hooks, threading, payoffs)
Can write in a conversational, high-energy tone
Are comfortable receiving feedback and iterating quickly
Can consistently hit deadlines

Bonus if you:

Have experience analyzing YouTube retention graphs
Understand YouTube Shorts algorithm basics (AVD, swipe rate)
Have written scripts that achieved 1M+ views

Please include 2–3 sample scripts in your application (or links to videos you've scripted). We'll provide our script structure guide and examples of top-performing videos to get you started.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0811
Total Execution Time  0.0826
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,499,992 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/YouTube-Shorts-Script-Writer-Celebrity-News-Drama-1623966
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0753 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1623966
 LIMIT 1 
0.0008   SELECT *
FROM `employers`
WHERE `employer_id` = 712404
 LIMIT 1 
0.0620   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1623966
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-23',ej.date_added) duration_daysDATEDIFF('2026-06-23',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-06-23',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1623966' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1623966 
0.0013   UPDATE employer_jobs SET hit_counts '***Apr-14-2026=86***Apr-15-2026=129***Apr-16-2026=43***Apr-17-2026=45***Apr-18-2026=25***Apr-19-2026=32***Apr-20-2026=32***Apr-21-2026=47***Apr-22-2026=16***Apr-23-2026=26***Apr-24-2026=10***Apr-25-2026=8***Apr-26-2026=9***Apr-27-2026=19***Apr-28-2026=4***Apr-29-2026=15***Apr-30-2026=8***May-01-2026=4***May-02-2026=6***May-03-2026=4***May-04-2026=4***May-05-2026=2***May-06-2026=9***May-07-2026=2***May-08-2026=7***May-09-2026=5***May-10-2026=5***May-11-2026=4***May-12-2026=8***May-13-2026=2***May-14-2026=5***May-15-2026=6***May-16-2026=5***May-17-2026=2***May-18-2026=1***May-20-2026=3***May-21-2026=6***May-22-2026=2***May-23-2026=1***May-24-2026=2***May-26-2026=2***May-27-2026=2***May-28-2026=2***May-29-2026=2***May-31-2026=3***Jun-01-2026=1***Jun-02-2026=6***Jun-03-2026=11***Jun-04-2026=6***Jun-05-2026=3***Jun-06-2026=3***Jun-07-2026=3***Jun-08-2026=11***Jun-09-2026=5***Jun-10-2026=3***Jun-11-2026=5***Jun-12-2026=1***Jun-13-2026=2***Jun-14-2026=4***Jun-16-2026=4***Jun-17-2026=1***Jun-18-2026=1***Jun-19-2026=4***Jun-23-2026=1' WHERE job_id'1623966'  
0.0005   UPDATE employer_jobs SET monthly_hits '***Apr-2026=554***May-2026=106***Jun-2026=75' WHERE job_id'1623966'  
0.0018   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1623966' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1623966 
0.0066   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '712404'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)