Head of Paid Media

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

TYPE OF WORK

Full Time

SALARY

$1,500 - $5,000

HOURS PER WEEK

40

DATE UPDATED

Oct 14, 2026

JOB OVERVIEW

We are a fast growing DTC skincare brand running around €2.4M a month in ad spend across the US and DACH. Today Google and Pinterest sit with external agencies. We want them in house. We are looking for a Head of Paid Media to own every paid channel we run and to take that work back from the agencies.

Full time. Owns all paid channels and the people on them. Reports to the founders. Compensation reflects the level of experience we are asking for.

What You’ll Do
• Own paid media across Meta, Google, TikTok, AppLovin, Pinterest and native.
• Bring the agency channels in house. Google and Pinterest are run externally today. Your job is to run them yourself or with your own buyers, at the same or better result.
• Lead the buyers on each channel and hold them to a number.
• Launch, scale and pause within agreed budgets, on your own call. We should not have to tell you what to do.
• Direct the creative strategists on what the account needs next, based on what is actually performing.
• Stay current. Media buying changes constantly and we expect you to bring the changes to us, not hear about them from us.
• Deliver a weekly report that explains performance, what you learned and what you are changing.

What We’re Looking For
• Meta: you have personally run at least €2M to €2.5M a month. €2.5M to €3M is better. This is the first thing we check.
• Google: at least €500K a month. Not advised on, not overseen. Run.
• Across all channels together, €3M to €4M a month is the level we are looking for.
• Real experience on TikTok, AppLovin and native, enough to lead those channels rather than learn them on our budget.
• You have taken a channel off an agency and run it in house before, or you can explain exactly how you would.
• You lead buyers. Hiring them, setting their targets, replacing them when needed.
• You own the number. Not the activity, the number.

What to Include in Your Application
• Your highest monthly spend on Meta, the brand, and the period. Say plainly whether you ran it yourself or managed someone who did.
• The same for Google.
• A screenshot or export from the ad platform showing that spend with the date range visible. If you cannot share it, name the company and the period so we can verify it, or give us a reference who will confirm the number.
• One channel you took in house from an agency, and what happened to the result.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0011
Controller Execution Time ( Jobseekers / Job )  0.0253
Total Execution Time  0.0272
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,492,888 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Head-of-Paid-Media-1749564
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0175 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0008   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1749564
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 902569
 LIMIT 1 
0.0012   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1749564
AND `misc`.`id` IS NULL 
0.0005   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-20',ej.date_added) duration_days, DATEDIFF('2026-10-20',e.rebill_date) duration_rebill, ej.*, e.deactivate FROM employers e, employer_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-10-20',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1749564' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1749564 
0.0007   UPDATE employer_jobs SET hit_counts = '***Oct-14-2026=522***Oct-15-2026=24***Oct-16-2026=13***Oct-17-2026=8***Oct-18-2026=4***Oct-20-2026=2' WHERE job_id= '1749564'  
0.0006   UPDATE employer_jobs SET monthly_hits = '***Oct-2026=572' WHERE job_id= '1749564'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1749564' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1749564 
0.0091   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '902569'
AND `date_added` >= '2022-06-08' 
0.0003   select * from teasers 
0.0021   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)