Publishing Manager: Book Formatting, Cover Design & Operations (Amazon KDP)

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

TYPE OF WORK

Full Time

SALARY

Negotiable: state your desired monthly

HOURS PER WEEK

40

DATE UPDATED

Sep 1, 2026

JOB OVERVIEW

Begin your application with the word STELLA so I know you read this post to the end.

I run an independent non-fiction publishing house with a growing catalogue on Amazon (paperback + ebook, multiple series and pen names). I'm hiring an experienced Publishing Manager to run the operational side of the business with me: hands-on book production, pipeline management, and direct support to me as the owner.

What you will do
- Format paperback interiors and ebooks to Amazon KDP spec (trim, bleed, margins, spine; EPUB), from manuscript to print-ready file; with your own hands, in a professional tool
- Build and adapt full print cover files (front, spine, back) to KDP templates
- Run the production pipeline across multiple simultaneous titles: statuses, deadlines, checklists, KDP uploads
- Be my right hand: clear written communication, proactive updates, own tasks end-to-end without waiting to be asked

Requirements: read carefully, these are strict. Applications missing any of the following will not be considered:
1. Real formatting/design tool experience. You work in at least one of: Adobe InDesign, Affinity, Vellum, or Atticus. If your only tools are Word and Canva, this role is not for you. Affinity experience is a strong plus; mention it.
2. Two work samples, made by you. One book interior (PDF) and one cover. For each, name the tool you used and state in one line exactly what you did yourself vs. what others did. Samples you only project-managed do not count.
3. Excellent written English (C2 level). Your application letter is the first test.
4. Full-time and exclusive. No other jobs or clients. Confirm this explicitly in your application, and state your notice period at your current job if you have one.
5. Availability overlapping the European morning (CET). State the working hours you propose.
6. Stable setup: include a screenshot of a current internet speed test and one line on your power/internet backup plan.
7. Your desired monthly salary. Name your number - there is no posted rate; I will judge asks against experience.
8. A completed OnlineJobs.ph profile with ID verification and test results (IQ, English, DISC where available).

One question; answer it in your own words (do not skip it; applications that ignore it are rejected unread): Tell me about a book - real or hypothetical - that you would have refused to publish, and why. What would you have looked at to make that call?

What I offer: a stable long-term full-time role at a professional, systemised publishing operation; paid, structured onboarding; and real growth as the catalogue scales. The hiring process is: application → video interview → a paid test assignment (interior + cover file, done in your own tools) → offer.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0183
Total Execution Time  0.0196
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,502,440 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Publishing-Manager-Book-Formatting-Cover-Design-Operations-Amazon-KDP-1721236
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0125 seconds)  (Hide)
0.0025   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0005   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1721236
 LIMIT 1 
0.0009   SELECT *
FROM `employers`
WHERE `employer_id` = 916272
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1721236
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-09-27',ej.date_added) duration_days, DATEDIFF('2026-09-27',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-09-27',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1721236' 
0.0013   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1721236 
0.0008   UPDATE employer_jobs SET hit_counts = '***Sep-01-2026=663***Sep-02-2026=139***Sep-03-2026=33***Sep-04-2026=23***Sep-05-2026=8***Sep-06-2026=26***Sep-07-2026=22***Sep-08-2026=20***Sep-09-2026=14***Sep-10-2026=9***Sep-11-2026=12***Sep-12-2026=10***Sep-13-2026=8***Sep-14-2026=12***Sep-15-2026=24***Sep-16-2026=18***Sep-17-2026=9***Sep-18-2026=8***Sep-19-2026=8***Sep-20-2026=6***Sep-21-2026=10***Sep-22-2026=5***Sep-23-2026=14***Sep-24-2026=6***Sep-25-2026=6***Sep-26-2026=4***Sep-27-2026=2' WHERE job_id= '1721236'  
0.0008   UPDATE employer_jobs SET monthly_hits = '***Sep-2026=1118' WHERE job_id= '1721236'  
0.0018   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1721236' 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` = 1721236 
0.0017   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '916272'
AND `date_added` >= '2022-06-08' 
0.0003   select * from teasers 
0.0003   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)