Media Buyer (Cross-Platform)

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

TYPE OF WORK

Any

SALARY

6

HOURS PER WEEK

25

DATE UPDATED

Aug 16, 2026

JOB OVERVIEW

About the role

We're a fast-growing DTC brand looking for a cross-platform media buyer to own the daily running of our paid accounts. Our main platform is Facebook, but we're expanding into Pinterest, Snapchat, and TikTok and we want someone who can maintain profitable daily budgets across multiple platforms, not just one.

This is not a "scale it to the moon" role. We're looking for someone disciplined who keeps budgets profitable day-to-day, follows our system, communicates proactively, and flags problems fast. The person who succeeds here is reliable, detail-oriented, and treats the account like it's their own money.

What you'll do
Run and monitor our paid accounts daily (Facebook primary, plus Pinterest / Snapchat / TikTok as we expand)
Maintain profitable daily budgets scale what's working, cut what isn't, per our SOPs
Manage the testing process: launch tests, read them, cut on schedule, keep the pipeline moving
Break down creative performance analyze why an ad won or lost in clear, specific terms (hook, setting, angle, sound), compared to what's worked for us before. This is the highest-value part of the role.

Communicate daily: report the real numbers, and flag any significant drop or issue immediately don't wait to be asked
Keep clean handoffs and daily updates so the account state is always clear

What we're looking for
Experience across multiple ad platforms (Facebook + at least one of Pinterest / Snapchat / TikTok). The ability to run several accounts at once is a big plus it's more valuable to us than someone who's only ever run Facebook.
Disciplined, not reckless you keep budgets profitable and follow the system, rather than chasing aggressive scale.
Proactive communicator you flag problems fast, report clearly, and never let a bad day go unmentioned.
Creative breakdown skill is a strong bonus if you can analyze why ads perform, that's exactly what we value most. If you can't yet, we'll teach you, as long as you've got the eye for it.
Reliable and available at consistent hours, comfortable with a weekly camera-on check-in.

The hours

Part-time to start: roughly 4 hours/day, Monday–Friday, plus a quick check-in on Saturday and Sunday (about an hour each, at a set evening time). Around 20-30 hours/week. Evening PHT time.


How to apply

Tell us:

Which ad platforms you've run, and roughly what budgets you've managed on each.
A short example of a time you caught a performance problem and how you handled it we care about how you spot and respond to issues.
Your available hours and timezone.

If you've got real cross-platform experience and you're the type who treats the account like your own, we want to talk.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0111
Total Execution Time  0.0124
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,502,608 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Media-Buyer-Cross-Platform-1710064
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0062 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1710064
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 932791
 LIMIT 1 
0.0013   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1710064
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-24',ej.date_added) duration_daysDATEDIFF('2026-08-24',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-08-24',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1710064' 
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1710064 
0.0007   UPDATE employer_jobs SET hit_counts '***Aug-16-2026=1801***Aug-17-2026=51***Aug-18-2026=12***Aug-19-2026=13***Aug-20-2026=15***Aug-21-2026=5***Aug-22-2026=1***Aug-24-2026=2' WHERE job_id'1710064'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Aug-2026=1897' WHERE job_id'1710064'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1710064' 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` = 1710064 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '932791'
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)