SEO Content Writer and Social Caption Writer (Voice Matching)

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

TYPE OF WORK

Any

SALARY

$7/hour

HOURS PER WEEK

20

DATE UPDATED

Feb 23, 2026

JOB OVERVIEW

Overview
We manage creators and client brands. We need a writer who can match a creator’s voice and turn video content into engaging Facebook captions, and also write SEO-friendly blogs and website content that can rank. This role is not generic copywriting. Voice matching matters.

What You Will Own
---------- creator videos into Facebook captions that feel native
Writing keyword-focused blogs and website content for ranking and conversions
Creating outlines and content briefs when assigned
Delivering consistent weekly output with minimal revisions

Responsibilities:
Watch creator videos and write captions that match the feel and tone of the video.
Suggest the best creator image to pair with each caption (describe it clearly).
Write SEO blog posts and service page content using keyword briefs and best practices.
Structure content with clear headings, short paragraphs, and FAQs where helpful.
Provide meta title and meta description suggestions for blogs and key pages.
Include internal linking suggestions and CTAs when relevant.
Edit your own drafts for clarity, grammar, and tone before submitting.

Requirements (Must Have):
Proven ability to voice match and write social captions that feel real.
SEO writing experience (blogs and website pages).
Strong English grammar and readability.
Able to follow a style guide and apply feedback quickly.
Consistent output and reliable deadlines.

Nice to Have:
Experience writing for ecommerce and SEO.
Familiarity with WordPress or Shopify blog publishing.
Basic keyword research experience.

Work Details:
Part Time - 20 hours/week to possible full time.
Working hours: overlap with US Central time preferred (at least 2 to 4 hours)

How to Apply
Please include the word Flower in your introduction. Include
2 writing samples: one social style caption and one SEO blog (or similar).
A short paragraph explaining how you approach voice matching.
Your weekly capacity (how many captions and how many blog posts you can produce).

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0021
Controller Execution Time ( Jobseekers / Job )  0.0185
Total Execution Time  0.0216
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,479,512 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/SEO-Content-Writer-and-Social-Caption-Writer-Voice-Matching-1586488
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0082 seconds)  (Hide)
0.0011   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1586488
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 620378
 LIMIT 1 
0.0010   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1586488
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-17',ej.date_added) duration_daysDATEDIFF('2026-04-17',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-04-17',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1586488' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1586488 
0.0008   UPDATE employer_jobs SET hit_counts '***Feb-23-2026=78***Feb-24-2026=208***Feb-25-2026=90***Feb-26-2026=34***Feb-27-2026=39***Feb-28-2026=22***Mar-01-2026=14***Mar-02-2026=19***Mar-03-2026=17***Mar-04-2026=17***Mar-05-2026=19***Mar-06-2026=5***Mar-07-2026=3***Mar-08-2026=3***Mar-09-2026=5***Mar-10-2026=10***Mar-11-2026=2***Mar-12-2026=6***Mar-13-2026=12***Mar-15-2026=3***Mar-16-2026=5***Mar-17-2026=4***Mar-18-2026=10***Mar-19-2026=10***Mar-20-2026=3***Mar-21-2026=6***Mar-22-2026=4***Mar-23-2026=2***Mar-24-2026=4***Mar-25-2026=6***Mar-26-2026=14***Mar-27-2026=3***Mar-28-2026=1***Mar-30-2026=1***Mar-31-2026=2***Apr-01-2026=2***Apr-02-2026=2***Apr-03-2026=3***Apr-04-2026=8***Apr-05-2026=5***Apr-06-2026=6***Apr-07-2026=7***Apr-08-2026=4***Apr-09-2026=2***Apr-10-2026=1***Apr-11-2026=2***Apr-17-2026=1' WHERE job_id'1586488'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Feb-2026=471***Mar-2026=210***Apr-2026=43' WHERE job_id'1586488'  
0.0009   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1586488' 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` = 1586488 
0.0012   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '620378'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0005   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)