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.0008
Controller Execution Time ( Jobseekers / Job )  0.0164
Total Execution Time  0.0179
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,492,048 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.0103 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0007   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1710064
 LIMIT 1 
0.0008   SELECT *
FROM `employers`
WHERE `employer_id` = 932791
 LIMIT 1 
0.0012   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.0004   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.0008   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1710064 
0.0016   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=1' WHERE job_id'1710064'  
0.0005   UPDATE employer_jobs SET monthly_hits '***Aug-2026=1896' WHERE job_id'1710064'  
0.0007   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1710064' AND status LIKE 'sent%' ORDER BY id DESC  
0.0002   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1710064 
0.0026   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)