Purchaser

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

TYPE OF WORK

Full Time

WAGE / SALARY

$5 - $7

HOURS PER WEEK

40

DATE UPDATED

Jun 18, 2026

JOB OVERVIEW

Must Apply Here: ----------


About the Role

We're a custom millwork shop producing architectural woodwork, casework, cabinetry, doors, and trim for commercial and residential projects. We're looking for a sharp, organized Purchaser / Executive Assistant to own our buying function and keep the owner and shop running smoothly.

This is a two-hat role. Roughly two-thirds of your time is procurement — sourcing materials, cutting POs, chasing deliveries, and keeping the shop stocked and on schedule. The other third is executive support — calendar, vendor and client communication, and the operational follow-through that keeps projects moving. If you like owning a process end to end and being the person who makes sure nothing falls through the cracks, you'll do well here.

What You'll Do

Purchasing & Procurement


Source and buy lumber, sheet goods (plywood, MDF, melamine, particleboard), hardwoods, veneers, edge banding, laminates, finishes, adhesives, and cabinet hardware (hinges, slides, pulls)
Generate purchase orders from shop drawings, cut lists, and material takeoffs
Get competitive quotes, negotiate pricing and terms, and manage vendor relationships
Track lead times and delivery dates; expedite when production timelines are at risk
Reconcile POs against packing slips and invoices; flag discrepancies and damaged goods
Maintain inventory levels of consumables and shop supplies; set reorder points
Build and maintain a vendor/pricing database


Executive & Operational Support


Manage the owner's calendar, scheduling, and inbox triage
Coordinate communication between the shop, vendors, clients, and installers
Track project material budgets and help control costs
Prepare and organize documents, orders, and records
Handle ad hoc operational tasks that keep the business moving


What We're Looking For


2+ years in purchasing, procurement, or buying — ideally in millwork, cabinetry, construction, or a manufacturing/fabrication environment
Comfort reading shop drawings, cut lists, and material specs (or the ability to learn fast)
Strong negotiation instincts and an eye for getting the best price without sacrificing quality or timing
Highly organized, detail-obsessed, and able to juggle many open orders at once
Excellent written and verbal communication
Proficiency with email, spreadsheets, and order/inventory tracking; experience with ERP or purchasing software a plus
Self-starter who can run with limited direction and own outcomes


SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0259
Total Execution Time  0.0273
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,509,256 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Purchaser-1638913
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0199 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0009   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1638913
 LIMIT 1 
0.0013   SELECT *
FROM `employers`
WHERE `employer_id` = 887250
 LIMIT 1 
0.0090   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1638913
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-21',ej.date_added) duration_daysDATEDIFF('2026-06-21',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-06-21',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1638913' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1638913 
0.0007   UPDATE employer_jobs SET hit_counts '***May-05-2026=204***May-06-2026=34***May-07-2026=27***May-08-2026=10***May-09-2026=6***May-10-2026=5***May-11-2026=3***May-12-2026=3***May-13-2026=345***May-14-2026=38***May-15-2026=18***May-16-2026=15***May-17-2026=19***May-18-2026=17***May-19-2026=21***May-20-2026=8***May-21-2026=419***May-22-2026=50***May-23-2026=9***May-24-2026=11***May-25-2026=10***May-26-2026=15***May-27-2026=23***May-28-2026=5***May-29-2026=7***May-30-2026=9***May-31-2026=8***Jun-01-2026=8***Jun-02-2026=3***Jun-03-2026=3***Jun-04-2026=6***Jun-05-2026=6***Jun-06-2026=2***Jun-07-2026=2***Jun-08-2026=8***Jun-09-2026=2***Jun-10-2026=9***Jun-11-2026=15***Jun-12-2026=4***Jun-13-2026=3***Jun-14-2026=1***Jun-15-2026=2***Jun-16-2026=4***Jun-17-2026=3***Jun-18-2026=435***Jun-19-2026=110***Jun-20-2026=48***Jun-21-2026=1' WHERE job_id'1638913'  
0.0006   UPDATE employer_jobs SET monthly_hits '***May-2026=1339***Jun-2026=675' WHERE job_id'1638913'  
0.0003   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1638913' AND status LIKE 'sent%' ORDER BY id DESC  
0.0008   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1638913 
0.0045   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '887250'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)