Purchasing Specialist – Pokémon TCG (Remote)

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

TYPE OF WORK

Any

SALARY

depends on your experience

HOURS PER WEEK

TBD

DATE UPDATED

Oct 15, 2026

JOB OVERVIEW

About us

We are a German trading group that imports and distributes Pokémon TCG products in Japanese, Korean, Chinese and English – plus One Piece and Dragon Ball.

We are a small, fast-moving, owner-led team working fully remote across Europe and Asia. Decisions are made in hours, not weeks – and purchasing is the engine of the whole business.


The role

You will be our Purchasing Specialist for Pokémon TCG, working directly with the owner and the sales team. Your job is simple to describe and hard to do well: get the right sealed product, at the best landed price, from reliable suppliers, in time for our customers' orders.

We buy almost exclusively against confirmed customer orders. That means you need to be fast, precise and commercially sharp: a few percent on the purchase price or a missed delivery window makes the difference between a good and a bad month.

This is a hands-on operational role, not a strategy position. You will be in supplier chats, price lists and spreadsheets every day.


Your responsibilities

- Sourcing: find and qualify new suppliers for sealed Pokémon product (English, Japanese, Korean, Chinese) – distributors, sub-distributors, wholesalers, brokers and exporters in North America and Asia.
- Price comparison: collect and compare supplier offers daily, maintain our purchasing sheets (Google Sheets / Excel) and always know who is cheapest for which SKU right now.
- Landed-cost calculation: calculate the full cost per unit – purchase price, currency conversion (USD, CAD, JPY, KRW), freight per kg, customs duty, labelling – so sales can quote correctly.
- Negotiation: negotiate prices, discounts, payment terms and minimum order quantities with suppliers, mostly via WhatsApp, email and supplier portals.
- Order placement: turn confirmed customer demand into supplier orders, check availability, place and track orders, and chase late or partial deliveries.
- Inbound coordination: create shipping labels and inbound notifications, convert case quantities into units, and confirm that the warehouse booked in what was ordered.
- Market awareness: follow release calendars, allocations, price movements and reprints (TCGplayer, retailer announcements) and flag opportunities and risks early.
- Data hygiene: keep product data – names, barcodes, units per case, boosters per box – correct and verified across our systems.


What you bring

Must-haves

- Real knowledge of the Pokémon TCG sealed market: you know the difference between a booster box, a display, an ETB and a bundle, you know what Prismatic Evolutions or 151 are, and you understand why one set sells and another does not.
- 2+ years of experience in purchasing, trading, sourcing or e-commerce operations – ideally in TCG, collectibles, toys or FMCG.
- Strong spreadsheet skills (Google Sheets / Excel): lookups, currency conversion, margin and landed-cost calculations are daily tools for you, not a challenge.
- Fluent written and spoken English; you are comfortable negotiating with suppliers in the USA, Canada and Asia via chat and email.
- A trader's mindset: numbers-driven, fast, persistent, and not afraid to ask for a better price.
- Reliability and precision: an order with a wrong quantity or a mixed-up SKU costs real money, and you are the person who catches it.
- Availability to work with overlapping time zones (North America and Asia) when needed.

Nice-to-haves

- Experience with import logistics (freight per kg, customs, EORI).


What we offer

- 100 % remote – work from wherever you are; our team is spread across Europe and Asia.
- Direct line to the owner – no layers, no committees; you get decisions and budgets fast.
- Real responsibility from day one – you manage large purchase volumes every month and see the impact of your work immediately.
- A growing business in a market you love – we are expanding across Europe, and purchasing grows with it.
- European working hours.
- Competitive compensation based on experience, with a performance component tied to purchasing results.


Application task (required)

We only read applications that include this task. It takes about 30 minutes and shows us how you work.

Part 1 – Landed-cost calculation

The following example is fictional. A US supplier offers you these products, prices in USD per unit, ex warehouse (no shipping included):

- Product A: Elite Trainer Box – 10 units per case – 95 USD per unit – 18 lbs per case
- Product B: Booster Bundle – 24 units per case – 42 USD per unit – 20 lbs per case
- Product C: Booster Box – 6 units per case – 160 USD per unit – 14 lbs per case

Assumptions: shipping to Europe costs 1.20 € per lb, customs duty is 4 % on goods plus freight, exchange rate 1 € = 1.10 USD. We sell at landed cost × 1.15.

For each product, give us the landed cost per unit in EUR and the resulting selling price per unit in EUR. Show your calculation in a Google Sheet or Excel file and attach it.

Part 2 – Three short questions (two to four sentences each)

1. A customer has ordered 300 Booster Bundles of a set for delivery in four weeks. Describe how you would source them – where you would look, how you would compare offers and what could go wrong.
2. Name three current or upcoming English Pokémon TCG sets you would buy in volume right now, and one you would avoid. Why?
3. A supplier confirms a price on Monday and raises it by 8 % on Wednesday when you want to order. What do you do?


How to apply

Send us a short email with your CV, your completed application task (spreadsheet plus answers) and three to five sentences on your experience with Pokémon TCG and purchasing – no cover letter needed. Applications without the task will not be considered. If you have ever bought sealed product in volume, tell us which sets, from where, and at what kind of margin.

Shortlisted candidates will be invited to a video call with the owner. We reply to every application within one week.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0031
Controller Execution Time ( Jobseekers / Job )  0.0275
Total Execution Time  0.0314
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,529,912 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Purchasing-Specialist-Pokemon-TCG-Remote-1750728
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0212 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1750728
 LIMIT 1 
0.0010   SELECT *
FROM `employers`
WHERE `employer_id` = 275738
 LIMIT 1 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1750728
AND `misc`.`id` IS NULL 
0.0004   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-20',ej.date_added) duration_days, DATEDIFF('2026-10-20',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-10-20',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1750728' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1750728 
0.0007   UPDATE employer_jobs SET hit_counts = '***Oct-15-2026=320***Oct-16-2026=380***Oct-17-2026=71***Oct-18-2026=4***Oct-20-2026=1' WHERE job_id= '1750728'  
0.0006   UPDATE employer_jobs SET monthly_hits = '***Oct-2026=776' WHERE job_id= '1750728'  
0.0003   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1750728' AND status LIKE 'sent%' ORDER BY id DESC  
0.0002   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1750728 
0.0152   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '275738'
AND `date_added` >= '2022-06-08' 
0.0003   select * from teasers 
0.0012   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)