Senior Demand & Inventory Planner

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

TYPE OF WORK

Any

SALARY

$2.000 – $2.500/month (based on experien

HOURS PER WEEK

40

DATE UPDATED

Apr 11, 2026

JOB OVERVIEW

We are looking for a high-performance operator to own forecasting, inventory planning and cash efficiency as we scale towards €100M+.

This is not a reporting role.
This is not a support role.
You will take ownership of our forecasting and inventory planning system and ensure it actually drives decisions.

Your responsibility
• You own demand forecasting across all channels (Amazon, Bol, etc.)
• You d ---------- how much we buy, when we buy and where we allocate stock
• You ensure we never run out of stock on winning products
• You prevent overstock and dead inventory
• You optimize working capital as we scale
You are responsible for turning data into clear decisions.

What you will do
Forecasting (core)
• Maintain and improve SKU-level forecasts
• Use historical data, trends and growth signals
• Adjust forecasts based on real performance

Inventory & purchasing decisions
• Translate forecasts into purchase plans
• D ---------- order quantities and timing
• Balance risk between stock-outs and overstock
Cash & scaling
• Manage inventory vs cash position
• Support scaling decisions with data
• Keep inventory healthy while growing

System & structure
• Work within our existing Airtable-based system
• Improve structure, logic and reliability
• Ensure the system is used for decision-making

Supplier alignment
• Align planning with supplier lead times
• Anticipate delays and adjust proactively

What we expect
• 3–7+ years experience in forecasting / inventory planning
• Strong analytical mindset
• Experience in e-commerce or Amazon is a big plus
• Able to work with data and translate it into decisions
• Structured and detail-oriented
• Ownership mindset

You don’t just build models.
You use them to make decisions.

This is NOT for you if:
• You only build dashboards
• You wait for instructions
• You avoid making decisions
• You need perfect data before acting

Weekly output
• Forecast vs actual
• Stock coverage per SKU
• Risk overview (stock-outs / overstock)
• Purchase plan and cash impact
• Clear actions

What makes this role different
• Direct impact on revenue and cash
• Work on a system that is already in place and improve it
• Focus on decisions, not just data
• Key role in scaling the business

Important
If we run out of stock or overstock heavily, you take ownership.

Application
To apply, send a short video (1–2 minutes) explaining:
1. How you approach forecasting in a growing business
2. A situation where your planning improved results

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0186
Total Execution Time  0.0200
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,499,696 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-Demand-Inventory-Planner-1621525
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0131 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1621525
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 900877
 LIMIT 1 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1621525
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-15',ej.date_added) duration_daysDATEDIFF('2026-04-15',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-15',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1621525' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1621525 
0.0017   UPDATE employer_jobs SET hit_counts '***Apr-11-2026=746***Apr-15-2026=1' WHERE job_id'1621525'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Apr-2026=745' WHERE job_id'1621525'  
0.0009   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1621525' 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` = 1621525 
0.0067   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '900877'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)