InDesign Data Merge Specialist – Complex Catalogs, Tables & Product Variants

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

TYPE OF WORK

Full Time

SALARY

28000

HOURS PER WEEK

40

DATE UPDATED

Aug 3, 2026

JOB OVERVIEW

Job Overview
We are seeking an expert InDesign Data Merge Specialist to design and automate a high-density, 4,000+ item product catalog. Many of our products contain complex tables, matrix spec sheets, and multi-SKU variants (e.g., variations in size, color, material, or pricing grouped under a parent product).

STRICT REQUIREMENT: This role relies entirely on automated data merging and scripting/plugins in Adobe InDesign. Manual data entry or manual table creation will not be accepted. If you do not have proven experience structuring source data to merge tables and multi-item variations cleanly into InDesign, please do not apply.

Key Responsibilities
Template Design: Build robust, highly structured InDesign templates using Parent/Master Pages, Paragraph/Character Styles, Object Styles, and Table/Cell Styles.

Data Structure & Mapping: Prepare, format, and map complex CSV/Excel datasets—handling parent-child product hierarchies, variant tables, and image ---------- Catalog Merge: Flow 4,000+ items and their associated variation tables (specifications, size charts, pricing grids) into InDesign without breaking layout structure or page flow.

Variation Layout Optimization: Ensure product variants (multiple SKUs sharing a single primary image/title) display concisely in grouped tables rather than repetitive individual listings.

Quality Assurance & Delivery: Fix text overset errors, adjust table wrapping/padding, verify image links, and generate print-ready (CMYK with bleeds) and digital interactive PDFs.

Mandatory Requirements (Non-Negotiable)
Expert-level Adobe InDesign skills with direct experience in high-density catalog publishing.

Advanced Data Merge Expertise: Hands-on experience merging complex, multi-row datasets, product variation tables, and matrix specs.

Data & Excel/CSV Proficiency: Mastery of data manipulation, field tagging, relative/absolute image pathing, and structuring flat datasets for complex template layouts.

Advanced InDesign Automation: Mastery of Table Styles, Cell Styles, GREP styles, nested styles, anchored objects, and story threading.

Experience with Catalog Plugins (Preferred): Familiarity with tools like EasyCatalog, Pagination, or custom InDesign JSX scripts to handle complex table merging that goes beyond basic native Data Merge functions.



Application Instructions (Screening Questions)
To ensure you have the specific technical skill set required for product variations and tables, please answer the following in your proposal:
1. Portfolio / Proof of Work: Share 1–2 examples or a brief video walkthrough of a catalog you built that involved Data Merge with multi-SKU product tables/variants.

2. Technical Check (Image Paths): How do you format image column headers in CSV files so InDesign recognizes them as image links instead of text strings?

3. Technical Check (Variations/Tables): Native InDesign Data Merge handles single-record-per-field merges natively, but product variations often require repeating rows or nested tables under a single product head. How do you handle multi-SKU variant tables in your data prep and InDesign workflow (e.g., using XML, inline anchored frames, custom scripts, or plugins like EasyCatalog)?

Tooling: Which third-party InDesign catalog automation tools or scripts have you used, if any?

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0011
Controller Execution Time ( Jobseekers / Job )  0.0199
Total Execution Time  0.0218
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,497,312 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/InDesign-Data-Merge-Specialist-Complex-Catalogs-Tables-Product-Variants-1701878
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0123 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1701878
 LIMIT 1 
0.0009   SELECT *
FROM `employers`
WHERE `employer_id` = 663685
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1701878
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 = '1701878' 
0.0007   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1701878 
0.0008   UPDATE employer_jobs SET hit_counts = '***Aug-03-2026=249***Aug-04-2026=47***Aug-05-2026=16***Aug-06-2026=10***Aug-07-2026=10***Aug-08-2026=7***Aug-09-2026=2***Aug-10-2026=4***Aug-11-2026=2***Aug-12-2026=7***Aug-13-2026=6***Aug-14-2026=2***Aug-15-2026=5***Aug-16-2026=2***Aug-17-2026=6***Aug-18-2026=5***Aug-19-2026=1***Aug-20-2026=7***Aug-21-2026=3***Aug-22-2026=2***Aug-23-2026=1***Aug-25-2026=1***Aug-26-2026=2***Aug-27-2026=2***Aug-28-2026=2***Aug-29-2026=2***Aug-30-2026=1***Aug-31-2026=1***Sep-01-2026=1***Sep-02-2026=2***Sep-04-2026=3***Sep-05-2026=3***Sep-06-2026=1***Sep-07-2026=2***Sep-08-2026=3***Sep-09-2026=1***Sep-11-2026=1***Sep-14-2026=1***Sep-15-2026=1***Sep-16-2026=3***Sep-17-2026=1***Sep-18-2026=1***Sep-20-2026=3***Sep-22-2026=2***Sep-23-2026=1***Sep-24-2026=4***Sep-26-2026=2***Sep-27-2026=1' WHERE job_id= '1701878'  
0.0018   UPDATE employer_jobs SET monthly_hits = '***Aug-2026=405***Sep-2026=37' WHERE job_id= '1701878'  
0.0015   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1701878' 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` = 1701878 
0.0036   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '663685'
AND `date_added` >= '2022-06-08' 
0.0004   select * from teasers 
0.0002   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)