{"version":3,"sources":["models/OrderType.ts","models/PageInfo.ts","models/AppInfo.ts","models/ProductLineItem.ts","models/Product.ts","models/Order.ts","config.ts","utilities/analytics.ts","components/Checkout/Checkout.tsx","utilities/storageUtility.ts","utilities/useNavigate.ts","pages.ts","components/AtsHelp/AtsHelp.tsx","components/Form/FormControl.tsx","components/Builder/ContactInfo/ContactInfo.tsx","components/Builder/Education/Education.tsx","components/Builder/Experience/WorkHistory/WorkHistory.tsx","components/Builder/Experience/Experience.tsx","components/Builder/GetStarted/GetStarted.tsx","components/Builder/Navigation/Navigation.tsx","components/Builder/Navigation/Progress.tsx","components/Builder/Review/Review.tsx","components/Builder/Skills/Skills.tsx","components/Builder/Builder.tsx","apis/OrderApi.ts","apis/ProductApi.ts","components/Checkout/ContactInfo/ContactInfo.tsx","components/Checkout/OrderLineItems/OrderLineItems.tsx","components/Checkout/PayPalCheckout.ts","components/Checkout/useCheckout.ts","components/HireAnExpert/Steps/AdvancedCoverLetterReview.ts","components/HireAnExpert/Steps/AdvancedResumeReview.ts","components/HireAnExpert/Steps/BasicCoverLetterReview.ts","components/HireAnExpert/Steps/BasicResumeReview.ts","components/HireAnExpert/Steps/ProfessionalCoverLetterWriting.ts","components/HireAnExpert/Steps/ProfessionalResumeWriting.ts","components/HireAnExpert/HireAnExpert.tsx","components/HowToWriteAResume/HowToWriteAResume.tsx","components/Layout/Footer/Footer.tsx","components/Layout/Navigation/Navigation.tsx","components/Layout/Tracking/Tracking.tsx","components/Layout/Layout.tsx","components/Privacy/Privacy.tsx","components/TermsAndConditions/TermsAndConditions.tsx","components/Welcome/GettingStarted/GettingStarted.tsx","components/Welcome/Hero/Hero.tsx","components/Welcome/InfoCards/InfoCards.tsx","components/Welcome/ResumeStats/ResumeStats.tsx","components/Welcome/Welcome.tsx","components/App.tsx","reportWebVitals.ts","index.tsx"],"names":["OrderType","PageInfo","data","name","url","path","title","description","this","AppInfo","pageInfo","map","pi","ProductLineItem","price","Product","id","orderType","lineItems","lineItem","Order","orderNumber","firstName","lastName","emailAddress","phoneNumber","paymentProvider","paymentId","paymentAmount","product","isDevEnvironment","process","isProdEnvironment","document","location","host","toLocaleLowerCase","indexOf","config","amplitudeClientId","apiRootUrl","defaultPageTitle","googleAnalyticsId","paypalClientId","amp","amplitude","getInstance","init","CheckoutStep","analytics","trackPageView","pageTitle","pageURL","page_title","page_url","toString","trackEvent","event","properties","gtag","logEvent","storageUtility","getFromLocalStorage","key","json","localStorage","getItem","JSON","parse","saveToLocalStorage","value","stringify","setItem","useNavigate","module","history","useHistory","e","eventName","eventData","preventDefault","push","window","scroll","trim","pages","AtsHelp","props","className","src","FormControl","ref","useRef","useState","setValue","isDirty","setIsDirty","setError","fieldName","onChange","val","isEffect","error","validation","validateSync","err","Error","message","current","setCustomValidity","useEffect","htmlFor","type","autoComplete","autocomplete","placeholder","placeHolder","min","max","maxLength","target","icon","validity","valid","faCheckCircle","faTimesCircle","yup","label","required","notRequired","streetAddress1","streetAddress2","city","state","postalCode","ContactInfo","fields","Education","jobTitle","employer","startDate","endDate","WorkHistory","Experience","GetStarted","Navigation","isFirstStep","onClick","onPreviousStep","isLastStep","onNextStep","Progress","faFileAlt","getStartedCompleted","size","faAddressBook","contactInfoCompleted","experienceCompleted","faBriefcase","educationCompleted","faGraduationCap","skillsCompleted","faAward","reviewCompleted","faCheckSquare","Review","Skills","Builder","currentStep","setCurrentStep","maxStep","setMaxStep","stepElement","step","element","getStep","previousStep","nextStep","console","log","orderApi","getNextOrderNumber","axios","get","then","response","saveOrder","order","post","productApi","getProducts","getProduct","saveProduct","setFirstName","setLastName","setEmailAddress","setPhoneNumber","onSubmit","contact","onFormSubmit","smallContainer","v","String","typeError","email","optional","nullable","OrderLineItems","li","idx","toFixed","initPayPal","loadScript","pp","Promise","resolve","reject","Buttons","style","shape","color","layout","createOrder","actions","create","item","onApprove","capture","orderData","catch","onCancel","onError","render","Complete","Checkout","storageKey","checkoutInfo","useMemo","products","setProducts","setOrder","setProduct","setStep","finalizeOrder","amount","newOrder","o","handle","setInterval","querySelector","clearInterval","purchase_units","pu","Number","reduce","a","b","p","find","headerText","faTrophyAlt","print","useCheckout","checkoutHeader","setO","navigate","AdvancedCoverLetterReview","subtitle","checkoutTitle","steps","text","AdvancedResumeReview","BasicCoverLetterReview","BasicResumeReview","ProfessionalCoverLetterWriting","ProfessionalResumeWriting","HireAnExpert","checkout","page","contactInfo","isFree","s","ResumeTips","href","Footer","rel","faFacebook","faInstagram","Date","getFullYear","isProd","textColor","useDarkTheme","buttonColor","Navbar","bg","expand","Brand","hideLinks","Toggle","Collapse","Nav","NavDropdown","Item","Divider","Link","Tracking","useLocation","pathname","length","origin","Helmet","defaultTitle","property","content","usePageLayout","Component","options","Layout","role","noPadding","Privacy","GettingStarted","onATSClicked","onResumeGuideClicked","onHireAnExpertClicked","Hero","onHireAnExpert","InfoCards","faFileCertificate","faCog","faCalendarStar","ResumeStats","faUser","faWindow","ComingSoon","App","appInfo","defaultPage","HowToWriteAResume","TermsAndConditions","Welcome","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","getElementById"],"mappings":"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","file":"static/js/main.935b81ea.chunk.js","sourcesContent":["/** A classification of an Order. */\r\nexport enum OrderType {\r\n /**\r\n * Professional resume writing services.\r\n * @deprecated Use one of the other professional service types.\r\n */\r\n HireAnExpert = 1,\r\n\r\n /** Professional resume writing services. */\r\n ProfessionalResumeWriting = 10,\r\n\r\n /** A more details advanced review of an existing resume. */\r\n BasicResumeReview = 11,\r\n\r\n /** A deeper review of an existing resume. */\r\n AdvancedResumeReview = 12,\r\n\r\n /** Professional cover letter writing services. */\r\n ProfessionalCoverLetterWriting = 20,\r\n\r\n /** A quick, basic review of an existing cover letter. */\r\n BasicCoverLetterReview = 21,\r\n\r\n /** A more details advanced review of an existing cover letter. */\r\n AdvancedCoverLetterReview = 22,\r\n};\r\n\r\nexport default OrderType;\r\n","/** Information about a page within the site. */\r\nexport class PageInfo {\r\n name: string;\r\n url: string;\r\n path: string;\r\n title: string;\r\n description: string;\r\n\r\n constructor();\r\n constructor(pageInfo: Partial);\r\n constructor(data?: Partial) {\r\n data = data || {};\r\n\r\n this.name = data.name || null;\r\n this.url = data.url || null;\r\n this.path = data.path || null;\r\n this.title = data.title || null;\r\n this.description = data.description || null;\r\n }\r\n}\r\n\r\nexport default PageInfo;\r\n","import PageInfo from \"./PageInfo\";\r\n\r\n/** Information required to initialize the application. */\r\nexport class AppInfo {\r\n pageInfo: PageInfo[];\r\n\r\n constructor();\r\n constructor(appInfo: Partial);\r\n constructor(data?: Partial) {\r\n data = data || {};\r\n\r\n this.pageInfo = (data.pageInfo || []).map(pi => new PageInfo(pi));\r\n }\r\n}\r\n\r\nexport default AppInfo;\r\n","/** A line item for an offered Product. */\r\nexport class ProductLineItem {\r\n name: string;\r\n description: string;\r\n price: number;\r\n\r\n constructor();\r\n constructor(productLineItem: Partial);\r\n constructor(data?: Partial) {\r\n data = data || {};\r\n\r\n this.name = data.name || null;\r\n this.description = data.description || null;\r\n this.price = data.price || 0;\r\n }\r\n};\r\n\r\nexport default ProductLineItem;\r\n","import OrderType from \"./OrderType\";\r\nimport ProductLineItem from \"./ProductLineItem\";\r\n\r\n/** A product offered by ResumeButlers.com */\r\nexport class Product {\r\n id: number;\r\n orderType: OrderType;\r\n name: string;\r\n description: string;\r\n price: number;\r\n lineItems: ProductLineItem[];\r\n\r\n constructor();\r\n constructor(product: Partial);\r\n constructor(data?: Partial) {\r\n data = data || {};\r\n\r\n this.id = data.id || data.orderType || 0;\r\n this.orderType = data.orderType || 0;\r\n this.name = data.name || null;\r\n this.description = data.description || null;\r\n this.price = data.price || 0;\r\n this.lineItems = (data.lineItems || []).map(lineItem => new ProductLineItem(lineItem));\r\n }\r\n};\r\n\r\nexport default Product;\r\n","import OrderType from \"./OrderType\";\r\nimport Product from \"./Product\";\r\n\r\nexport class Order {\r\n id: string;\r\n orderType: OrderType;\r\n orderNumber: string;\r\n firstName: string;\r\n lastName: string;\r\n emailAddress: string;\r\n phoneNumber: string;\r\n paymentProvider: \"None\" | \"PayPal\";\r\n paymentId: string;\r\n paymentAmount: number;\r\n product: Product\r\n\r\n constructor();\r\n constructor(order: Partial)\r\n constructor(data?: Partial) {\r\n data = data || {};\r\n\r\n this.id = data.id || null;\r\n this.orderType = data.orderType || 0;\r\n this.orderNumber = data.orderNumber || null;\r\n this.firstName = data.firstName || null;\r\n this.lastName = data.lastName || null;\r\n this.emailAddress = data.emailAddress || null;\r\n this.phoneNumber = data.phoneNumber || null;\r\n this.paymentProvider = data.paymentProvider || null;\r\n this.paymentId = data.paymentId || null;\r\n this.paymentAmount = data.paymentAmount || 0;\r\n this.product = data.product ? new Product(data.product) : null;\r\n }\r\n};\r\n\r\nexport default Order;\r\n","const isDevEnvironment: boolean = process.env.NODE_ENV !== \"production\";\r\nconst isTestEnvironment: boolean = document.location.host.toLocaleLowerCase().indexOf(\"azurewebsites.net\") >= 0;\r\nconst isProdEnvironment: boolean = !isDevEnvironment && !isTestEnvironment;\r\n\r\n/** Constant configuration values. */\r\nexport const config = {\r\n\r\n /** The site's Amplitude client identifier. */\r\n amplitudeClientId: \"6f5c6658f835ae313112e1bee76b866f\",\r\n\r\n /** The root URL of the API. */\r\n apiRootUrl: isDevEnvironment ? \"https://localhost:44311\" : \"\",\r\n\r\n /** The default page title. */\r\n defaultPageTitle: \"Resume Butlers - You Build Your Dreams, We Will Build Your Resume\",\r\n\r\n /** A flag indicating whether the build is running in a development environment. */\r\n isDevEnvironment: isDevEnvironment,\r\n\r\n /** A flag indicating whether the build is running in a production environment. */\r\n isProdEnvironment: isProdEnvironment,\r\n\r\n /** The site's Google Analytics identifier. */\r\n googleAnalyticsId: \"G-ZNFSMQ6M6D\",\r\n\r\n /** PayPal client id. */\r\n paypalClientId: isProdEnvironment\r\n ? \"AaAUoarMrczSKYm7qcGdPYUBsHuCWkQuGsGA9WKTxCeZ1JmpoW6DxhWlDYwOaxZYzY5koHZxuD0aVkX5\"\r\n : \"AZLTsrjoK1UFwS9yQLgd3PUQgQ6-OGv6f2RXycSOEUJ_49IFsi3KUdjKBT0naKXBOt_MmxvFq5csB0ZQ\",\r\n}\r\n\r\nexport default config;\r\n","import amplitude, { AmplitudeClient } from \"amplitude-js\";\r\nimport config from \"../config\";\r\n\r\nconst amp: AmplitudeClient = amplitude.getInstance();\r\namp.init(config.amplitudeClientId);\r\n\r\n/** A utility for working with analytical data. */\r\nexport const analytics = {\r\n\r\n /** Tracks a page view. */\r\n trackPageView: (pageTitle?: string, pageURL?: string): void => {\r\n const data = {\r\n page_title: pageTitle || document.title || config.defaultPageTitle,\r\n page_url: pageURL || document.location.toString(),\r\n };\r\n\r\n analytics.trackEvent(\"Page View\", data);\r\n },\r\n\r\n /** Tracks an event. */\r\n trackEvent: (event: string, data?: {}): void => {\r\n if (event && config.isProdEnvironment) {\r\n const properties = {\r\n ...(data || {}),\r\n page_title: document.title,\r\n page_url: document.location.toString(),\r\n };\r\n\r\n if (event === \"Page View\") {\r\n gtag(\"config\", config.googleAnalyticsId, properties);\r\n } else {\r\n gtag(\"event\", event, properties);\r\n }\r\n\r\n amp.logEvent(event, properties);\r\n }\r\n },\r\n};\r\n\r\nexport default analytics;\r\n","import { faTrophyAlt } from \"@fortawesome/pro-duotone-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { FunctionComponent, useEffect, useMemo, useState } from \"react\";\r\nimport { orderApi, productApi } from \"../../apis\";\r\nimport { Order, OrderType, Product } from \"../../models\";\r\nimport { analytics, storageUtility } from \"../../utilities\";\r\nimport \"./Checkout.scss\";\r\nimport ContactInfo from \"./ContactInfo/ContactInfo\";\r\nimport OrderLineItems from \"./OrderLineItems/OrderLineItems\";\r\nimport \"./PayPalCheckout\";\r\nimport { initPayPal } from \"./PayPalCheckout\";\r\n\r\nenum CheckoutStep {\r\n ContactInfo = 10,\r\n Checkout = 20,\r\n Complete = 30,\r\n}\r\n\r\ntype CheckoutInfo = Order & {\r\n headerText: string;\r\n orderType: OrderType;\r\n}\r\n\r\nexport interface CheckoutProps { }\r\n\r\nexport const Checkout: FunctionComponent = (props) => {\r\n const storageKey = \"checkout-current-order\";\r\n const checkoutInfo = useMemo(() => storageUtility.getFromLocalStorage(storageKey) || {} as Partial, []);\r\n const [products, setProducts] = useState([]);\r\n const [order, setOrder] = useState(new Order(checkoutInfo || { orderType: checkoutInfo.orderType, }));\r\n const [product, setProduct] = useState();\r\n const [step, setStep] = useState(getStep(order, product));\r\n const print = () => window.print();\r\n const finalizeOrder = (order: Partial, paymentProvider: \"None\" | \"PayPal\", paymentId: string, amount: number) => orderApi.getNextOrderNumber(order.orderType)\r\n .then(orderNumber => {\r\n const newOrder = new Order(order);\r\n newOrder.orderNumber = orderNumber;\r\n newOrder.paymentProvider = paymentProvider || \"None\";\r\n newOrder.paymentId = paymentId;\r\n newOrder.paymentAmount = amount || 0;\r\n\r\n setOrder(newOrder);\r\n setStep(CheckoutStep.Complete);\r\n\r\n analytics.trackEvent(\"Checkout Payment Submitted\", {\r\n orderNumber: newOrder.orderNumber,\r\n orderType: newOrder.orderType,\r\n paymentAmount: newOrder.paymentAmount,\r\n });\r\n\r\n return newOrder;\r\n })\r\n .then(o => orderApi.saveOrder(o))\r\n .catch(err => { /* TODO: error handling */});\r\n\r\n useEffect(() => {\r\n if (!product) return;\r\n\r\n if (step === CheckoutStep.Checkout) {\r\n new Promise((resolve) => {\r\n const handle = setInterval(() => {\r\n const buttons = document.querySelector(\"#paypal-button-container\");\r\n if (buttons) {\r\n clearInterval(handle);\r\n resolve();\r\n }\r\n }, 100);\r\n }).then(() => initPayPal(product).then((o) => finalizeOrder(order, \"PayPal\", o.id, o.purchase_units?.map(pu => Number(pu?.amount?.value) || 0).reduce((a, b) => a + b))))\r\n } else if (step === CheckoutStep.Complete) {\r\n storageUtility.saveToLocalStorage(storageKey, null);\r\n }\r\n }, [step, product]);\r\n\r\n useEffect(() => {\r\n productApi.getProducts()\r\n .then(p => setProducts(p))\r\n .catch(err => { /* TODO: error handling */});\r\n }, []);\r\n\r\n useEffect(() => {\r\n const product = products?.find(p => p.orderType === order.orderType);\r\n\r\n if (product) {\r\n setProduct(product);\r\n\r\n if (!order?.product) {\r\n order.product = product;\r\n }\r\n }\r\n }, [products, order]);\r\n\r\n return product ? (\r\n
\r\n
\r\n

\r\n { checkoutInfo.headerText }\r\n

\r\n
\r\n
\r\n
\r\n

{ product.name }

\r\n
\r\n
\r\n ${ (product.price || 0).toFixed(2) }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Order Details\r\n

\r\n \r\n
\r\n
\r\n
\r\n Total\r\n
\r\n
\r\n ${ (product.price || 0).toFixed(2) }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {step === CheckoutStep.ContactInfo ? (\r\n
\r\n

\r\n Contact Information\r\n

\r\n {\r\n const newOrder = new Order({ ...order, ...o, });\r\n const step = getStep(newOrder, product);\r\n setOrder(newOrder);\r\n setStep(getStep(newOrder, product));\r\n analytics.trackEvent(\"Checkout Save Contact Info Clicked\");\r\n\r\n if (step === CheckoutStep.Complete) {\r\n finalizeOrder(newOrder, \"None\", null, 0);\r\n }\r\n }}\r\n />\r\n
\r\n ) : null}\r\n {step === CheckoutStep.Checkout ? (\r\n
\r\n

\r\n Payment\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ) : null}\r\n {step === CheckoutStep.Complete ? (\r\n
\r\n

\r\n Order {order.orderNumber} Confirmed\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n Thank you for your order! You should receive an email receipt within the next few minutes.\r\n

\r\n

\r\n If you have any questions, concerns, or would like to cancel your order please feel free to reach out to us at customer-service@resumebutlers.com\r\n

\r\n
\r\n
\r\n
\r\n print()}\r\n title=\"Print Receipt\"\r\n >\r\n Print Receipt\r\n \r\n
\r\n
\r\n ) : null}\r\n
\r\n
\r\n

\r\n Order Details\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n ) : (\r\n
\r\n

\r\n Your cart is empty.\r\n

\r\n

\r\n It looks like your cart is empty.\r\n

\r\n
\r\n );\r\n}\r\n\r\nconst getStep = (order?: Partial, product?: Product): CheckoutStep => {\r\n let step: CheckoutStep = CheckoutStep.ContactInfo;\r\n\r\n if (order) {\r\n if (order.paymentId) {\r\n step = CheckoutStep.Complete;\r\n } else if (order.firstName && order.lastName && order.emailAddress) {\r\n if (product?.price == 0) {\r\n step = CheckoutStep.Complete;\r\n } else {\r\n step = CheckoutStep.Checkout;\r\n }\r\n }\r\n }\r\n\r\n return step;\r\n}\r\n\r\nexport default Checkout;\r\n","/** A utility class for working with storages. */\r\nexport const storageUtility = {\r\n\r\n /** Gets an object from local storage, returning null if it's not found. */\r\n getFromLocalStorage: (key: string): T => {\r\n const json = localStorage.getItem(key);\r\n const result = json ? JSON.parse(json) : null;\r\n\r\n return result;\r\n },\r\n\r\n /** Saves an object to local storage. */\r\n saveToLocalStorage: (key: string, value: T): void => {\r\n const json = JSON.stringify(value);\r\n\r\n localStorage.setItem(key, json);\r\n },\r\n};\r\n\r\nexport default storageUtility;\r\n","import { SyntheticEvent } from \"react\";\r\nimport { useHistory } from \"react-router\";\r\nimport analytics from \"./analytics\";\r\n\r\n/**\r\n * A callback which preforms SPA navigation by canceling an anchor event and navigating to the specified URL.\r\n * @param {SyntheticEvent} e The anchor click/navigation event to cancel.\r\n * @param {string} url The URL to navigate to.\r\n * @param {string} eventName The optional name of an event to track via analytics.\r\n * @param {object} eventData The optional event data to track via analytics.\r\n */\r\nexport type NavigateFunc = (e: SyntheticEvent, url: string, eventName?: string, eventData?: {}) => void;\r\n\r\n/**\r\n * A hook which preforms SPA navigation by canceling an anchor event and navigating the the specified URL.\r\n * @param {string} module The name of the current module.\r\n */\r\nexport const useNavigate = (module: string): NavigateFunc => {\r\n const history = useHistory();\r\n\r\n return (e: SyntheticEvent, url: string, eventName: string = null, eventData: {} = null) => {\r\n e.preventDefault();\r\n \r\n history.push(url);\r\n window.scroll(0, 1);\r\n\r\n if (eventName) {\r\n analytics.trackEvent(`${module}: ${eventName}`.trim(), eventData)\r\n }\r\n };\r\n};\r\n\r\nexport default useNavigate;\r\n","import { PageInfo } from \"./models\";\r\n\r\nexport const pages: PageInfo[] = [\r\n {\r\n name: \"Home\",\r\n url: \"https://www.resumebutlers.com\",\r\n path: \"/\",\r\n title: \"\",\r\n description: \"White glove services for building the best resumes. Free resume tools and expert resume assistance.\"\r\n },\r\n {\r\n name: \"Resume Writing Guide\",\r\n url: \"https://www.resumebutlers.com/how-to-write-a-resume\",\r\n path: \"/how-to-write-a-resume\",\r\n title: \"Resume Writing Guide\",\r\n description: \"An expert guide on writing your best resume. Tailored for ATS parsing and recruiting and hiring personnel.\"\r\n },\r\n {\r\n name: \"Understanding ATS\",\r\n url: \"https://www.resumebutlers.com/understanding-ats\",\r\n path: \"/understanding-ats\",\r\n title: \"Understanding ATS\",\r\n description: \"Learn about Applicant Tracking Systems (ATS) and how they affect your resume.\"\r\n },\r\n {\r\n name: \"Professional Resume Writing Services\",\r\n url: \"https://www.resumebutlers.com/professional-resume-writing-services\",\r\n path: \"/professional-resume-writing-services\",\r\n title: \"Professional Resume Writing Services\",\r\n description: \"Have one of our resume experts revise or create your resume.\"\r\n },\r\n {\r\n name: \"Free Resume Consultation\",\r\n url: \"https://www.resumebutlers.com/free-resume-consultation\",\r\n path: \"/free-resume-consultation\",\r\n title: \"Free Resume Consultation\",\r\n description: \"Have one of our resume experts review your resume for free.\"\r\n },\r\n {\r\n name: \"Professional Resume Consultation\",\r\n url: \"https://www.resumebutlers.com/professional-resume-consultation\",\r\n path: \"/professional-resume-consultation\",\r\n title: \"Professional Resume Consultation\",\r\n description: \"Have one of our resume experts do a thorough review of your resume.\"\r\n },\r\n {\r\n name: \"Professional Cover Letter Services\",\r\n url: \"https://www.resumebutlers.com/professional-cover-letter-writing-services\",\r\n path: \"/professional-cover-letter-writing-services\",\r\n title: \"Professional Cover Letter Services\",\r\n description: \"Have one of our experts revise or create your cover letter.\"\r\n },\r\n {\r\n name: \"Free Cover Letter Consultation\",\r\n url: \"https://www.resumebutlers.com/free-cover-letter-consultation\",\r\n path: \"/free-cover-letter-consultation\",\r\n title: \"Free Cover Letter Consultation\",\r\n description: \"Have one of our experts review your cover letter for free.\"\r\n },\r\n {\r\n name: \"Professional Cover Letter Consultation\",\r\n url: \"https://www.resumebutlers.com/professional-cover-letter-consultation\",\r\n path: \"/professional-cover-letter-consultation\",\r\n title: \"Professional Cover Letter Consultation\",\r\n description: \"Have one of our experts do a thorough review of your cover letter.\"\r\n },\r\n {\r\n name: \"Resume Builder\",\r\n url: \"https://www.resumebutlers.com/resume-builder\",\r\n path: \"/resume-builder\",\r\n title: \"Free Resume Builder\",\r\n description: \"Build a professional, ATS compatible resume with the tools from Resume Butlers\"\r\n },\r\n {\r\n name: \"Terms & Conditions\",\r\n url: \"https://www.resumebutlers.com/terms-and-conditions\",\r\n path: \"/terms-and-conditions\",\r\n title: \"Terms & Conditions\",\r\n description: \"Resume Butlers Terms & Conditions\"\r\n },\r\n {\r\n name: \"Privacy Policy\",\r\n url: \"https://www.resumebutlers.com/privacy\",\r\n path: \"/privacy\",\r\n title: \"Privacy Policy\",\r\n description: \"Resume Butlers Privacy Policy\"\r\n }\r\n];\r\n\r\nexport default pages;\r\n","import { FunctionComponent } from \"react\";\r\nimport \"./AtsHelp.scss\";\r\n\r\nexport interface AtsHelpProps { }\r\n\r\nexport const AtsHelp: FunctionComponent = (props) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Understanding ATS\r\n

\r\n
\r\n

\r\n ATS, or Applicant Tracking Systems, are suites of software that screen and filter resumes and job applicants before a human ever sees your resume.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n What Are Applicant Tracking Systems (ATS)\r\n

\r\n

\r\n Applicant tracking systems, or ATS, are suites of software used by companies to create, publish, and track job listings.\r\n

\r\n

\r\n The ATS system automatically screens resumes against the job posting and filters out poor applicant matches.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n ATS Filters Out 70% of Applicants\r\n

\r\n

\r\n Studies show that applicant tracking systems filter out about 70% of all applicants without a human ever seeing an applicant.\r\n

\r\n

\r\n 70% of the time a human being never even knows you applied for their job!\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n ATS Matches Keywords\r\n

\r\n

\r\n Applicant tracking systems match keywords within your resume to those within the job listing you're applying for.\r\n

\r\n

\r\n Hard skills and soft skills can play a big part in inclusion by ATS. Experience and education with details matching the job listing will help as well.\r\n

\r\n

\r\n Check the job listing you're applying for and make sure your resume contains a reasonable number of matching keywords!\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Resume Length Does Not Matter to ATS\r\n

\r\n

\r\n While a resume should be easy for a human to read, its length does not matter to ATS!\r\n

\r\n

\r\n You still want to make sure your resume is short enough a potential employer can quickly get the information they need;\r\n however, your first hurdle may be getting through ATS. Add as much information as you need to make sure your resume\r\n passes ATS filtering and lands in your potential employers' hands.\r\n

\r\n

\r\n This is a bit of a balancing act as you need to include enough information to pass ATS filtering but also have a resume\r\n whose length is easy for a potential employer to quickly review.\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n Resume Layout Is Very Important to ATS\r\n

\r\n

\r\n A resume needs to look good; this is your first impression with a potential employer.\r\n While we can use tools like Microsoft® Word and Google Docs to build aesthetically pleasing resumes,\r\n these tools create complex document structures that can be difficult for ATS to read.\r\n

\r\n

\r\n When ATS parses a resume, tables, text overlays, images, and other elements are removed, leaving just the resume text.\r\n This may leave your resume text in an unrecognizable format, with headers, dates, and other elements no longer aligned where you'd placed them.\r\n

\r\n

\r\n Avoid using tables to layout your resume. Headers, dates, and other items placed in differing rows and columns easily get parsed out of order by ATS.\r\n

\r\n

\r\n When using images, make sure any important information (such as your contact information or school name) is also written out in text so that it can be parsed by ATS.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Why Do Companies Use ATS?\r\n

\r\n

\r\n You may wonder why companies use ATS if the majority of applicants get automatically screened out.\r\n

\r\n

\r\n The short answer: it saves companies a lot of money.\r\n

\r\n

\r\n Without ATS human resources or hiring managers would have to manually review and filter out every applicant.\r\n For larger companies this already takes an enormous amount of time and human resources.\r\n Having ATS filter candidates saves a lot of time and therefore money by only bringing in candidates who appear to meet the job listing criteria.\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n How to Get a Resume Through ATS\r\n

\r\n

\r\n Applicant tracking systems are just software programs with predefined algorithms, yet no two ATS applications function exactly the same.\r\n

\r\n

\r\n You may find tricks online to get your resume through ATS, however, these tricks are usually easily noticed by the person who receives your resume afterwards.\r\n Stuffing your resume with too many keywords or using other tricks to get through ATS will likely be noticed by the hiring agent who may reject your application anyways.\r\n

\r\n

\r\n The best way to get your resume through ATS is to build a good resume and make minor adjustments to tailor it to each job you apply for.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AtsHelp;\r\n","import { faCheckCircle, faTimesCircle } from \"@fortawesome/pro-regular-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { FunctionComponent, useEffect, useRef, useState } from \"react\";\r\nimport { AnySchema } from \"yup\";\r\nimport \"./FormControl.scss\";\r\n\r\nexport interface FormControlProps {\r\n name: string;\r\n type?: \"text\" | \"number\" | \"email\" | \"tel\";\r\n placeHolder?: string;\r\n validation?: AnySchema;\r\n value?: string | number;\r\n min?: number;\r\n max?: number;\r\n maxLength?: number;\r\n autocomplete?: \"off\" | \"on\" | \"name\" | \"given-name\" | \"family-name\" | \"address-line1\" | \"address-line2\" | \"address-line3\" | \"address-level4\" | \"address-level3\" | \"address-level2\" | \"address-level1\" | \"country\" | \"country-name\" | \"postal-code\" | \"cc-name\" | \"cc-given-name\" | \"cc-additional-name\" | \"cc-family-name\" | \"cc-number\" | \"cc-exp\" | \"cc-exp-month\" | \"cc-exp-year\" | \"cc-csc\" | \"cc-type\" | \"transaction-currency\" | \"transaction-amount\" | \"language\" | \"bday\" | \"bday-day\" | \"bday-month\" | \"bday-year\" | \"email\" | \"username\" | \"current-password\" | \"new-password\" | \"tel\";\r\n onValidate?: (fieldName: string, isValid: boolean) => void;\r\n onChange?: (val: string | number) => void;\r\n}\r\n\r\nconst fieldNumber: number = 0;\r\n\r\nexport const FormControl: FunctionComponent = (props) => {\r\n const ref = useRef();\r\n const [value, setValue] = useState(props?.value);\r\n const [isDirty, setIsDirty] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const fieldName = `form-control-${fieldNumber}`;\r\n const onChange = (val: string | number, isEffect: boolean = false) => {\r\n let error: string = \"\";\r\n\r\n try {\r\n props.validation?.validateSync(value);\r\n } catch (err) {\r\n error = (typeof err === \"string\" ? err : err instanceof Error ? err.message : null) || \"Please provide a valid input.\";\r\n }\r\n\r\n if (!isEffect) {\r\n setIsDirty(true);\r\n }\r\n ref?.current?.setCustomValidity(error);\r\n setValue(val);\r\n setError(error);\r\n\r\n if (!error) {\r\n props?.onChange(val);\r\n }\r\n };\r\n useEffect(() => {\r\n onChange(value, true);\r\n }, [value]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n onChange(e.target.value)}\r\n />\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default FormControl;\r\n","import { FunctionComponent } from \"react\";\r\nimport * as yup from \"yup\";\r\nimport { Resume } from \"../../../models\";\r\nimport { FormControl } from \"../../Form\";\r\nimport \"./ContactInfo.scss\";\r\n\r\nexport interface ContactInfoProps { }\r\n\r\ntype ResumeContactInfo = Pick;\r\n\r\nconst validation = yup.object({\r\n firstName: yup\r\n .string()\r\n .label(\"First Name\")\r\n .required(),\r\n lastName: yup\r\n .string()\r\n .label(\"Last Name\")\r\n .required(),\r\n phoneNumber: yup\r\n .string()\r\n .label(\"Phone Number\")\r\n .notRequired(),\r\n emailAddress: yup\r\n .string()\r\n .label(\"Email Address\")\r\n .notRequired(),\r\n streetAddress1: yup\r\n .string()\r\n .label(\"Street Address 1\")\r\n .notRequired(),\r\n streetAddress2: yup\r\n .string()\r\n .label(\"Street Address 2\")\r\n .notRequired(),\r\n city: yup\r\n .string()\r\n .label(\"City\")\r\n .notRequired(),\r\n state: yup\r\n .string()\r\n .label(\"State\")\r\n .notRequired(),\r\n postalCode: yup\r\n .string()\r\n .label(\"Postal Code\")\r\n .notRequired(),\r\n}).required();\r\n\r\nexport const ContactInfo: FunctionComponent = (props) => {\r\n return (\r\n
\r\n

\r\n Contact Information\r\n

\r\n

\r\n Lets get some information on who you are and how potential employers may contact you.\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ContactInfo;\r\n","import { FunctionComponent } from \"react\";\r\nimport \"./Education.scss\";\r\n\r\nexport interface EducationProps { }\r\n\r\nexport const Education: FunctionComponent = (props) => {\r\n return (\r\n
\r\n Education\r\n
\r\n );\r\n}\r\n\r\nexport default Education;\r\n","import { FunctionComponent } from \"react\";\r\nimport * as yup from \"yup\";\r\nimport { FormControl } from \"../../../Form\";\r\n\r\nexport interface WorkHistoryProps { }\r\n\r\nconst validation = yup.object({\r\n jobTitle: yup\r\n .string()\r\n .required(),\r\n employer: yup\r\n .string()\r\n .required(),\r\n city: yup\r\n .string()\r\n .required(),\r\n state: yup\r\n .string()\r\n .required(),\r\n startDate: yup\r\n .date()\r\n .required(),\r\n endDate: yup\r\n .date()\r\n .notRequired(),\r\n});\r\n\r\nexport const WorkHistory: FunctionComponent = (props) => {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default WorkHistory;\r\n","import { FunctionComponent } from \"react\";\r\nimport \"./Experience.scss\";\r\nimport WorkHistory from \"./WorkHistory/WorkHistory\";\r\n\r\nexport interface ExperienceProps { }\r\n\r\nexport const Experience: FunctionComponent = (props) => {\r\n return (\r\n
\r\n

\r\n Work History\r\n

\r\n

\r\n Lets get information about your previous experience and work history.\r\n

\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default Experience;\r\n","import { FunctionComponent } from \"react\";\r\nimport \"./GetStarted.scss\";\r\n\r\nexport interface GetStartedProps { }\r\n\r\nexport const GetStarted: FunctionComponent = (props) => {\r\n return (\r\n
\r\n

\r\n Let's Get Started\r\n

\r\n

\r\n We'll walk you through a few quick questions to get the information we need to build you the best resume possible.\r\n

\r\n

\r\n You're resume will be ATS friendly giving you an advantage over other applicants.\r\n

\r\n
\r\n );\r\n}\r\n\r\nexport default GetStarted;\r\n","import { FunctionComponent } from \"react\";\r\nimport \"./Navigation.scss\";\r\n\r\nexport interface NavigationProps {\r\n isFirstStep: boolean;\r\n isLastStep: boolean;\r\n onPreviousStep: () => void;\r\n onNextStep: () => void;\r\n}\r\n\r\nexport const Navigation: FunctionComponent = (props) => {\r\n const previousStep = () => {\r\n // TODO: analytics\r\n props.onPreviousStep();\r\n };\r\n const nextStep = () => {\r\n // TODO: analytics\r\n props.onNextStep();\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {!props.isFirstStep ? (\r\n previousStep()}\r\n title=\"Back\"\r\n >\r\n Back\r\n \r\n ) : null}\r\n
\r\n
\r\n {!props.isLastStep ? (\r\n nextStep()}\r\n title=\"Save & Continue\"\r\n >\r\n Save & Continue\r\n \r\n ) : null}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Navigation;\r\n","import { faAddressBook, faAward, faBriefcase, faCheckSquare, faFileAlt, faGraduationCap } from \"@fortawesome/pro-duotone-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { FunctionComponent } from \"react\";\r\nimport \"./Progress.scss\";\r\n\r\nexport interface ProgressProps {\r\n getStartedCompleted: boolean;\r\n contactInfoCompleted: boolean;\r\n experienceCompleted: boolean;\r\n educationCompleted: boolean;\r\n skillsCompleted: boolean;\r\n reviewCompleted: boolean;\r\n}\r\n\r\nexport const Progress: FunctionComponent = (props) => {\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default Progress;\r\n","import { FunctionComponent } from \"react\";\r\nimport \"./Review.scss\";\r\n\r\nexport interface ReviewProps { }\r\n\r\nexport const Review: FunctionComponent = (props) => {\r\n return (\r\n
\r\n Review\r\n
\r\n );\r\n}\r\n\r\nexport default Review;\r\n","import { FunctionComponent } from \"react\";\r\nimport \"./Skills.scss\";\r\n\r\nexport interface SkillsProps { };\r\n\r\nexport const Skills: FunctionComponent = (props) => {\r\n return (\r\n
\r\n Skills\r\n
\r\n );\r\n}\r\n\r\nexport default Skills;\r\n","import { FunctionComponent, ReactElement, useState } from \"react\";\r\nimport \"./Builder.scss\";\r\nimport ContactInfo from \"./ContactInfo/ContactInfo\";\r\nimport Education from \"./Education/Education\";\r\nimport Experience from \"./Experience/Experience\";\r\nimport GetStarted from \"./GetStarted/GetStarted\";\r\nimport Navigation from \"./Navigation/Navigation\";\r\nimport Progress from \"./Navigation/Progress\";\r\nimport Review from \"./Review/Review\";\r\nimport Skills from \"./Skills/Skills\";\r\n\r\nexport interface BuilderProps { }\r\n\r\nconst getStep = (step: number): ReactElement => {\r\n let element: ReactElement = ()\r\n\r\n if (step === 10) {\r\n element = ();\r\n } else if (step === 20) {\r\n element = ();\r\n } else if (step === 30) {\r\n element = ();\r\n } else if (step === 40) {\r\n element = ();\r\n } else if (step === 50) {\r\n element = ();\r\n }\r\n\r\n return element;\r\n}\r\n\r\nconst Builder: FunctionComponent = (props) => {\r\n const [currentStep, setCurrentStep] = useState(0);\r\n const [maxStep, setMaxStep] = useState(0);\r\n const stepElement = getStep(currentStep);\r\n const previousStep = () => {\r\n if (currentStep > 0) {\r\n setCurrentStep(currentStep - 10);\r\n }\r\n };\r\n const nextStep = () => {\r\n // TODO: validate\r\n setCurrentStep(currentStep + 10);\r\n setMaxStep(currentStep + 10);\r\n console.log(maxStep);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n 0}\r\n contactInfoCompleted={maxStep > 10}\r\n experienceCompleted={maxStep > 20}\r\n educationCompleted={maxStep > 30}\r\n skillsCompleted={maxStep > 40}\r\n reviewCompleted={maxStep > 50}\r\n />\r\n
\r\n
\r\n
\r\n = 50}\r\n onPreviousStep={previousStep}\r\n onNextStep={nextStep}\r\n />\r\n
\r\n
\r\n {stepElement}\r\n
\r\n
\r\n = 50}\r\n onPreviousStep={previousStep}\r\n onNextStep={nextStep}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Builder;\r\n","import axios from \"axios\";\r\nimport config from \"../config\";\r\nimport { Order, OrderType } from \"../models\";\r\n\r\n/** A service object for working with the Orders API. */\r\nexport const orderApi = {\r\n\r\n /** Gets the next order number for the specified OrderType. */\r\n getNextOrderNumber: (orderType: OrderType): Promise => axios.get(`${config.apiRootUrl}/api/orders/${orderType}/next`)\r\n .then(response => response.data),\r\n\r\n /** Saves an order to the API. */\r\n saveOrder: (order: Order): Promise => axios.post(`${config.apiRootUrl}/api/orders`, order),\r\n}\r\n\r\nexport default orderApi;\r\n","import axios from \"axios\";\r\nimport config from \"../config\";\r\nimport { Product } from \"../models\";\r\n\r\n/** A service object for working with the Products API. */\r\nexport const productApi = {\r\n\r\n /** Gets all products from the API. */\r\n getProducts: (): Promise => axios.get(`${config.apiRootUrl}/api/products`)\r\n .then(response => response.data),\r\n\r\n /** Gets the identified product from the API. */\r\n getProduct: (id: number): Promise => axios.get(`${config.apiRootUrl}/api/products/${id}`)\r\n .then(response => response.data),\r\n\r\n /** Saves an product to the API. */\r\n saveProduct: (product: Product): Promise => axios.post(`${config.apiRootUrl}/api/products`, product),\r\n}\r\n\r\nexport default productApi;\r\n","import { FormEvent, FunctionComponent, useState } from \"react\";\r\nimport * as yup from \"yup\";\r\nimport { Order } from \"../../../models\";\r\nimport { FormControl } from \"../../Form\";\r\nimport \"./ContactInfo.scss\";\r\n\r\ntype Contact = Pick;\r\n\r\nexport interface ContactProps {\r\n smallContainer?: boolean;\r\n onSubmit: (contactInfo: Contact) => void;\r\n};\r\n\r\nexport const ContactInfo: FunctionComponent = (props) => {\r\n const [firstName, setFirstName] = useState();\r\n const [lastName, setLastName] = useState();\r\n const [emailAddress, setEmailAddress] = useState();\r\n const [phoneNumber, setPhoneNumber] = useState();\r\n const onFormSubmit = (e: FormEvent) => {\r\n e.preventDefault();\r\n\r\n const contact: Contact = {\r\n firstName,\r\n lastName,\r\n emailAddress,\r\n phoneNumber,\r\n };\r\n\r\n props.onSubmit(contact);\r\n }\r\n \r\n return (\r\n
\r\n
onFormSubmit(e)}>\r\n
\r\n
\r\n setFirstName(v ? String(v) : null)}\r\n />\r\n
\r\n
\r\n setLastName(v ? String(v) : null)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n setEmailAddress(v ? String(v) : null)}\r\n />\r\n
\r\n
\r\n setPhoneNumber(v ? String(v) : null)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Next\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n};\r\n\r\nconst validation = yup.object({\r\n firstName: yup\r\n .string()\r\n .required(\"First name is required.\")\r\n .typeError(\"Please provide valid first name.\"),\r\n lastName: yup\r\n .string()\r\n .required(\"Last name is required.\")\r\n .typeError(\"Please provide valid last name.\"),\r\n emailAddress: yup\r\n .string()\r\n .email(\"Please provide a valid email address.\")\r\n .required(\"Email address is required.\")\r\n .typeError(\"Please provide a valid email address.\"),\r\n phoneNumber: yup\r\n .string()\r\n .optional()\r\n .nullable(),\r\n});\r\n\r\nexport default ContactInfo;\r\n","import { FunctionComponent } from \"react\";\r\nimport { ProductLineItem } from \"../../../models\";\r\nimport \"./OrderLineItems.scss\";\r\n\r\nexport interface OrderLineItemsProps {\r\n lineItems: ProductLineItem[];\r\n}\r\n\r\nexport const OrderLineItems: FunctionComponent = (props) => {\r\n return (\r\n
\r\n {(props.lineItems || []).map((li, idx) => (\r\n
\r\n
\r\n
\r\n
\r\n { li.name }\r\n  \r\n
\r\n { li.description }\r\n
\r\n
\r\n ${ (li.price || 0).toFixed(2) }\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n );\r\n}\r\n\r\nexport default OrderLineItems;\r\n","import { loadScript } from \"@paypal/paypal-js\";\r\nimport config from \"../../config\";\r\nimport { Product } from \"../../models\";\r\n\r\nexport const initPayPal = (product: Product): Promise => loadScript({\r\n \"client-id\": config.paypalClientId,\r\n \"currency\": \"USD\",\r\n \"intent\": \"capture\",\r\n \"debug\": !config.isProdEnvironment,\r\n}).then(pp => new Promise((resolve, reject) => pp.Buttons({\r\n style: {\r\n shape: 'pill',\r\n color: 'blue',\r\n layout: 'vertical',\r\n label: 'pay',\r\n },\r\n createOrder: function(data: any, actions: any) {\r\n return actions.order.create({\r\n \"application_context\": {\r\n \"shipping_preference\": \"NO_SHIPPING\",\r\n },\r\n \"currency\": \"USD\",\r\n // https://developer.paypal.com/docs/api/orders/v2/#definition-purchase_unit_request\r\n \"purchase_units\": [{\r\n \"description\": product.name,\r\n \"amount\": {\r\n \"currency_code\": \"USD\",\r\n \"value\": product.price,\r\n \"breakdown\": {\r\n \"item_total\": {\r\n \"currency_code\": \"USD\",\r\n \"value\": product.price\r\n },\r\n },\r\n },\r\n \"items\": product.lineItems.map(item => ({\r\n \"name\": item.name,\r\n \"description\": item.description,\r\n \"category\": \"DIGITAL_GOODS\",\r\n \"quantity\": 1,\r\n \"unit_amount\": {\r\n \"currency_code\": \"USD\",\r\n \"value\": item.price,\r\n },\r\n })),\r\n }],\r\n });\r\n },\r\n onApprove: function(data: any, actions: any) {\r\n return actions.order.capture()\r\n .then((orderData: OrderData) => resolve(orderData))\r\n .catch((err: any) => reject(err));\r\n },\r\n onCancel: function(data: any) {\r\n reject(new Error(\"Payment cancelled by user.\"));\r\n },\r\n onError: function(err: any) {\r\n reject(err);\r\n\r\n return err;\r\n },\r\n }).render(\"#paypal-button-container\"))\r\n);\r\n\r\nexport interface OrderData {\r\n \"id\": string,\r\n \"status\": string,\r\n \"intent\": string,\r\n \"payer\": {\r\n \"name\": {\r\n \"given_name\": string,\r\n \"surname\": string,\r\n },\r\n \"email_address\": string,\r\n \"payer_id\": string,\r\n },\r\n \"purchase_units\": [\r\n {\r\n \"reference_id\": string,\r\n \"amount\": {\r\n \"currency_code\": \"USD\",\r\n \"value\": string,\r\n },\r\n },\r\n ],\r\n \"create_time\": string,\r\n}\r\n\r\nexport default initPayPal;\r\n","import { SyntheticEvent, useState } from \"react\";\r\nimport { Order, OrderType } from \"../../models\";\r\nimport { storageUtility, useNavigate } from \"../../utilities\";\r\n\r\nexport const useCheckout = (module: string, orderType: OrderType, checkoutHeader: string, order?: Partial): [order: Order, setOrder: (order: Order) => void, checkout: (order: Order) => void] => {\r\n const [o, setO] = useState(new Order(order || {orderType}));\r\n const navigate = useNavigate(module);\r\n const setOrder = (order: Order) => {\r\n const orderData = {\r\n ...order,\r\n headerText: checkoutHeader,\r\n orderType,\r\n };\r\n \r\n storageUtility.saveToLocalStorage(\"checkout-current-order\", orderData);\r\n setO(order);\r\n };\r\n const event = { preventDefault: () => {}, } as SyntheticEvent;\r\n const checkout = (order: Order) => {\r\n setOrder(order);\r\n navigate(event, \"/checkout\");\r\n };\r\n\r\n return [o, setOrder, checkout];\r\n};\r\n\r\nexport default useCheckout;\r\n","import CheckoutPage from './CheckoutPage';\r\n\r\nexport const AdvancedCoverLetterReview: CheckoutPage = {\r\n title: \"Get an Expert Review\",\r\n subtitle: \"Have one of our experts review your cover letter.\",\r\n checkoutTitle: \"Let one of our experts do a review of your cover letter.\",\r\n steps: [\r\n {\r\n title: \"Purchase\",\r\n text: `\r\nComplete the checkout and your order will be on its way!\r\nNo worries, if we don't think your cover letter can be improved or you decide you'd like to cancel before we get started\r\nyou can reach out to us and we'll refund your order in full.\r\n `,\r\n },\r\n {\r\n title: \"Consultation\",\r\n text: `\r\nWithin a few days one of our experts will reach out to setup a 1 on 1 consultation via email or phone.\r\nThis consultation will give us an idea of what your job and career goals are and how we can best tailor your cover letter.\r\nWe'll get your current cover letter from you so we can have our experts start their review.\r\n `,\r\n },\r\n {\r\n title: \"Video Review\",\r\n text: `\r\nWe'll email you a 10 - 20 minute video review of your cover letter. We'll outline things you've done well, provide suggestions for improvement, and point out concerns.\r\nWe'll provide examples on how to implement our suggestions and go over best some best practices.\r\n `,\r\n }\r\n ],\r\n};\r\n\r\nexport default AdvancedCoverLetterReview;\r\n","import CheckoutPage from './CheckoutPage';\r\n\r\nexport const AdvancedResumeReview: CheckoutPage = {\r\n title: \"Get an Expert Review\",\r\n subtitle: \"Have one of our resume experts review your resume.\",\r\n checkoutTitle: \"Let one of our resume experts do a review of your resume.\",\r\n steps: [\r\n {\r\n title: \"Purchase\",\r\n text: `\r\nComplete the checkout and your order will be on its way!\r\nNo worries, if we don't think your resume can be improved or you decide you'd like to cancel before we get started\r\nyou can reach out to us and we'll refund your order in full.\r\n `,\r\n },\r\n {\r\n title: \"Consultation\",\r\n text: `\r\nWithin a few days one of our resume experts will reach out to setup a 1 on 1 consultation via email or phone.\r\nThis consultation will give us an idea of what your job and career goals are and how we can best tailor your resume.\r\nWe'll get your current resume from you so we can have our experts start their review.\r\n `,\r\n },\r\n {\r\n title: \"Video Review\",\r\n text: `\r\nWe'll email you a 10 - 20 minute video review of your resume. We'll outline things you've done well, provide suggestions for improvement, and point out concerns.\r\nWe'll provide examples on how to implement our suggestions and go over best some best practices.\r\n `,\r\n }\r\n ],\r\n};\r\n\r\nexport default AdvancedResumeReview;\r\n","import CheckoutPage from './CheckoutPage';\r\n\r\nexport const BasicCoverLetterReview: CheckoutPage = {\r\n title: \"Get a Free Expert Review\",\r\n subtitle: \"Have one of our experts review your cover letter for free.\",\r\n checkoutTitle: \"Let one of our experts do a quick review of your cover letter.\",\r\n steps: [\r\n {\r\n title: \"Contact Information\",\r\n text: `\r\nProvide us with some basic contact information so we can get in touch with you.\r\n `,\r\n },\r\n {\r\n title: \"Consultation\",\r\n text: `\r\nWithin a few days one of our experts will reach out to setup a 1 on 1 consultation via email or phone.\r\nDuring the consultation our expert will spend 5 - 10 minutes giving you some tips and optimizations about your cover letter.\r\n `,\r\n },\r\n ],\r\n};\r\n\r\nexport default BasicCoverLetterReview;\r\n","import CheckoutPage from './CheckoutPage';\r\n\r\nexport const BasicResumeReview: CheckoutPage = {\r\n title: \"Get a Free Expert Review\",\r\n subtitle: \"Have one of our resume experts review your resume for free.\",\r\n checkoutTitle: \"Let one of our resume experts do a quick review of your resume.\",\r\n steps: [\r\n {\r\n title: \"Contact Information\",\r\n text: `\r\nProvide us with some basic contact information so we can get in touch with you.\r\n `,\r\n },\r\n {\r\n title: \"Consultation\",\r\n text: `\r\nWithin a few days one of our resume experts will reach out to setup a 1 on 1 consultation via email or phone.\r\nDuring the consultation our resume expert will spend 5 - 10 minutes giving you some tips and optimizations about your resume.\r\n `,\r\n },\r\n ],\r\n};\r\n\r\nexport default BasicResumeReview;\r\n","import CheckoutPage from './CheckoutPage';\r\n\r\nexport const ProfessionalCoverLetterWriting: CheckoutPage = {\r\n title: \"Hire A Cover Letter Expert\",\r\n subtitle: \"Have one of our experts bring your cover letter up-to-date.\",\r\n checkoutTitle: \"Let one of our experts create your best cover letter.\",\r\n steps: [\r\n // {\r\n // title: \"Upload Your Current Cover Letter\",\r\n // text: `\r\n // We'll ask you to upload your current cover letter. If you don't have one, no worries!\r\n // Just upload a document containing your past work history, education, and any accolades you'd like listed.\r\n // `,\r\n // },\r\n // {\r\n // title: \"Checkout\",\r\n // text: `\r\n // Complete the checkout and your order will be on its way!\r\n // No worries, if we don't think we can improve your cover letter or you decide you'd like to cancel before we get started\r\n // you can reach out to us and we'll refund your order in full.\r\n // `,\r\n // },\r\n {\r\n title: \"Purchase\",\r\n text: `\r\nComplete the checkout and your order will be on its way!\r\nNo worries, if we don't think we can improve your cover letter or you decide you'd like to cancel before we get started\r\nyou can reach out to us and we'll refund your order in full.\r\n `,\r\n },\r\n {\r\n title: \"Consultation\",\r\n text: `\r\nWithin a few days one of our experts will reach out to setup a 1 on 1 consultation via email or phone.\r\nThis consultation will give us an idea of what your job and career goals are and how we can best tailor your cover letter.\r\nWe'll get your current cover letter or job and education history from you so we can start working on your cover letter.\r\n `,\r\n },\r\n {\r\n title: \"Review Your New Cover Letter\",\r\n text: `\r\nAfter your consultation our cover letter expert may take 5 business days to complete your cover letter.\r\nAfterwards you'll recieve an editable copy of your cover letter along with a 10 - 20 minute video explaining\r\nthe cover letter and possible alternatives you can make.\r\n `,\r\n },\r\n {\r\n title: \"Revisions\",\r\n text: `\r\nYour purchase entitles you to two free professional revisions to your cover letter.\r\nIf there are alterations you'd like us to make for any reason we'll get them taken care of.\r\n `,\r\n },\r\n ],\r\n};\r\n\r\nexport default ProfessionalCoverLetterWriting;\r\n","import CheckoutPage from './CheckoutPage';\r\n\r\nexport const ProfessionalResumeWriting: CheckoutPage = {\r\n title: \"Hire A Resume Expert\",\r\n subtitle: \"Have one of our resume experts bring your resume up-to-date.\",\r\n checkoutTitle: \"Let one of our resume experts create your best resume.\",\r\n steps: [\r\n // {\r\n // title: \"Upload Your Current Resume\",\r\n // text: `\r\n // We'll ask you to upload your current resume. If you don't have one, no worries!\r\n // Just upload a document containing your past work history, education, and any accolades you'd like listed.\r\n // `,\r\n // },\r\n // {\r\n // title: \"Checkout\",\r\n // text: `\r\n // Complete the checkout and your order will be on its way!\r\n // No worries, if we don't think we can improve your resume or you decide you'd like to cancel before we get started\r\n // you can reach out to us and we'll refund your order in full.\r\n // `,\r\n // },\r\n {\r\n title: \"Purchase\",\r\n text: `\r\nComplete the checkout and your order will be on its way!\r\nNo worries, if we don't think we can improve your resume or you decide you'd like to cancel before we get started\r\nyou can reach out to us and we'll refund your order in full.\r\n `,\r\n },\r\n {\r\n title: \"Consultation\",\r\n text: `\r\nWithin a few days one of our resume experts will reach out to setup a 1 on 1 consultation via email or phone.\r\nThis consultation will give us an idea of what your job and career goals are and how we can best tailor your resume.\r\nWe'll get your current resume or job and education history from you so we can start working on your resume.\r\n `,\r\n },\r\n {\r\n title: \"Review Your New Resume\",\r\n text: `\r\nAfter your consultation our resume expert may take 5 business days to complete your resume.\r\nAfterwards you'll recieve an editable copy of your resume along with a 10 - 20 minute video explaining\r\nthe resume and possible alternatives you can make.\r\n `,\r\n },\r\n {\r\n title: \"Revisions\",\r\n text: `\r\nYour purchase entitles you to two free professional revisions to your resume.\r\nIf there are alterations you'd like us to make for any reason we'll get them taken care of.\r\n `,\r\n },\r\n ],\r\n};\r\n\r\nexport default ProfessionalResumeWriting;\r\n","import { FunctionComponent } from \"react\";\r\nimport { Order, OrderType } from \"../../models\";\r\nimport { analytics } from \"../../utilities\";\r\nimport { ContactInfo, useCheckout } from \"../Checkout\";\r\nimport \"./HireAnExpert.scss\";\r\nimport {\r\n AdvancedCoverLetterReview,\r\n AdvancedResumeReview,\r\n BasicCoverLetterReview,\r\n BasicResumeReview,\r\n CheckoutPage,\r\n ProfessionalCoverLetterWriting,\r\n ProfessionalResumeWriting\r\n} from \"./Steps\";\r\n\r\ntype Pages = {\r\n [key in OrderType]: CheckoutPage;\r\n}\r\n\r\nconst pages: Pages = {\r\n [OrderType.HireAnExpert]: ProfessionalResumeWriting,\r\n [OrderType.ProfessionalResumeWriting]: ProfessionalResumeWriting,\r\n [OrderType.BasicResumeReview]: BasicResumeReview,\r\n [OrderType.AdvancedResumeReview]: AdvancedResumeReview,\r\n [OrderType.ProfessionalCoverLetterWriting]: ProfessionalCoverLetterWriting,\r\n [OrderType.BasicCoverLetterReview]: BasicCoverLetterReview,\r\n [OrderType.AdvancedCoverLetterReview]: AdvancedCoverLetterReview,\r\n};\r\n\r\nexport interface HireAnExpertProps {\r\n orderType: OrderType;\r\n}\r\n\r\nexport const HireAnExpert: FunctionComponent = (props) => {\r\n const [order, setOrder, checkout] = useCheckout(\"Hire An Expert\", props.orderType, \"Hire An Expert\");\r\n const page = pages[props.orderType];\r\n const onSubmit = (contactInfo: Partial) => {\r\n const newOrder = { ...order, ...contactInfo, };\r\n checkout(newOrder);\r\n };\r\n const isFree = props.orderType == OrderType.BasicResumeReview || props.orderType == OrderType.BasicCoverLetterReview;\r\n\r\n return page ? (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n { page.title }\r\n

\r\n

\r\n { page.subtitle}\r\n

\r\n {\r\n analytics.trackEvent(\"Hire An Expert: Buy Now Clicked\");\r\n onSubmit({});\r\n }}\r\n >\r\n {isFree ? \"Request Now\" : \"Buy Now\"}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n { page.checkoutTitle}\r\n

\r\n

\r\n Get started in a few quick steps.\r\n

\r\n {page.steps.map((s, idx) => (\r\n
\r\n
\r\n \r\n \r\n {idx + 1}\r\n \r\n \r\n
\r\n
\r\n

\r\n {s.title}\r\n

\r\n

\r\n {s.text}\r\n

\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n ): (\r\n

\r\n Your cart is empty.\r\n

\r\n )\r\n};\r\n\r\nexport default HireAnExpert;\r\n","import { FunctionComponent } from \"react\";\r\nimport { useNavigate } from \"../../utilities\";\r\nimport \"./HowToWriteAResume.scss\";\r\n\r\nlet idSuffix = 0;\r\n\r\nexport interface ResumeTipsProps { }\r\n\r\nexport const ResumeTips: FunctionComponent = (props) => {\r\n const navigate = useNavigate(\"How To Write A Resume\");\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n How to Write a Resume\r\n

\r\n
\r\n

\r\n We'll go over some of the do's and don'ts of a resume.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Here's a list of some of the do's, don'ts, and other tips from our resume experts.\r\n

\r\n
\r\n

\r\n These tips are tailored to help get your resume through ATS while looking professional to a hiring agent.\r\n

\r\n

\r\n If you're not familiar with ATS (Applicant Tracking Systems), please read our navigate(e, \"/understanding-ats\", \"Understanding ATS Clicked\")}\r\n title=\"Understanding ATS\"\r\n >\r\n Understanding ATS\r\n guide before continuing.\r\n

\r\n
\r\n
\r\n
\r\n

Table of Contents

\r\n \r\n
\r\n
\r\n
\r\n \r\n

\r\n File Type\r\n

\r\n

\r\n A PDF document is typically the best choice when sending a resume; it opens on any system and is easily shared.\r\n

\r\n

\r\n ATS handles PDF documents as well as Microsoft® Word or other OpenDocument files (i.e. Google Docs).\r\n

\r\n

\r\n Avoiding using Rich Text Format (.rtf) or Text (.txt) files, or any other file format that people may not be familiar with.\r\n Your resume needs to be a recognizable to the recipient and needs to open on a mobile phone, desktop computer and a web browser.\r\n

\r\n
\r\n
\r\n \r\n

\r\n Fonts\r\n

\r\n

\r\n Body Text Font Size: 10 – 12pt\r\n

\r\n

\r\n Headers: 2 – 3pt higher than the body text\r\n

\r\n

\r\n Resume Title Font Size: 22 – 26pt\r\n

\r\n

\r\n Best font choices: Arial, Cambria, Calibri, Didot, Garamond, Times New Roman, Helvetica\r\n

\r\n

\r\n Most employers use an Applicant Tracking System (ATS); these systems have a hard time reading eccentric fonts.\r\n It is best to keep things simple. Utilizing a professional and easy to read font helps your resume get through ATS easier.\r\n This also helps the reader to follow along and understand the information provided. \r\n

\r\n

\r\n When choosing between a Serif and Sans Serif fonts (Serif: with tails) (Sans Serif: without tails) keep in mind Sans Serif\r\n is easier for the ATS to read and look more professional; however, employers have expressed that Cambria, Garamond, Times New Roman,\r\n and Didot are accepted within the serifed fonts.\r\n

\r\n
\r\n
\r\n \r\n

\r\n Images & Graphics\r\n

\r\n

\r\n ATS does not read images or graphics inside of a resume, so if you add an image of your school for your education section\r\n make sure to add text as well so ATS can pick up the information.\r\n Too many graphics can lead to a loss of information when it parses into the applicant tracking system. \r\n

\r\n

\r\n Using photos of yourself on your resume could lead to unconscious or conscious biases and could be a reason for disqualification.\r\n

\r\n
\r\n
\r\n \r\n

\r\n Resume Title\r\n

\r\n

\r\n ATS has a difficult time reading text inside of the header and footer section of a Word or Google document.\r\n It is best to keep your title on your first page outside of the header.\r\n When creating a resume title remember to put information that is important to the recruiter/hiring manager.\r\n

\r\n
    \r\n
  1. \r\n Name\r\n
  2. \r\n
  3. \r\n City & State\r\n
  4. \r\n
  5. \r\n Phone Number & Email Address\r\n
  6. \r\n
  7. \r\n Portfolio, LinkedIn, or Website addresses\r\n
  8. \r\n
\r\n
\r\n
\r\n \r\n

\r\n Resume Sections\r\n

\r\n
    \r\n
  • \r\n Contact Information\r\n
  • \r\n
  • \r\n Executive Summary, Summary, Objective, or Profile\r\n
  • \r\n
  • \r\n Work Experience\r\n
  • \r\n
  • \r\n Education\r\n
  • \r\n
  • \r\n Skills, Skills & Qualifications, Technical Skills, Core Competencies, or Soft Skills\r\n
  • \r\n
\r\n

\r\n When figuring out what sections to use in your resume you must figure out what is most important to the job postings.\r\n It is best not to use pronouns in your resume and to keep things subjective.\r\n

\r\n

\r\n Place your most relevant information from top to bottom.\r\n If you have more experience in the industry than your education, you should place your experience on the top.\r\n If you have more education than experience than your education and skills should be placed on top. \r\n

\r\n

\r\n Contact Information\r\n

\r\n

\r\n If you do not have contact information the hiring manager will not be able to reach out to you. \r\n Some things to keep in mind are to make sure the phone number you place on your resume is one where the employer can easily reach you,\r\n make sure your voicemail is set up, make sure there is room for an employer to leave a message, and make sure it is somewhat professional.\r\n If an employer is unable to leave a message to let you know how to get back to them it will be difficult to set up an interview.\r\n If your voicemail is unprofessional there is a chance the recruiter will skip you and go to the next candidate.\r\n

\r\n

\r\n Summary\r\n

\r\n

\r\n This is going to be your first introduction to the employer make sure to make it will catch their attention!\r\n Summaries are best if they are between 2-3 sentences and are used when you are already working in the industry and are just changing\r\n companies or positions. Showcase your highlights by introducing your education, experience, proven successes, and certifications.\r\n Think of this as a sales pitch similar to a 10-second elevator pitch.\r\n

\r\n
\r\n Example\r\n
\r\n Customer-oriented sales representative with a bachelor’s degree in business administration with a Minor in Sales and 5+ years of\r\n experience in (B2B) Business to Business sales, (B2C) Business to consumer sales, Customer Service, and Office Management.\r\n Proven success generating over $400,000 in sales for high volume clients increasing overall revenue by 10%.\r\n
\r\n

\r\n Objective Statement\r\n

\r\n

\r\n This is going to be your first introduction to the employer make sure to make it will catch their attention!\r\n Objectives are best if they are between 2-3 sentences and are used when you are just coming out of school,\r\n have no experience in the industry, or are changing careers.\r\n Make an introduction! Use this as a chance to let the employer know what you want in a way that does not sound like “GIVE ME!” \r\n

\r\n
\r\n Example\r\n
\r\n Industrial Automation student/graduate with 2+ years of experience in quality control, quality assurance, and automotive.\r\n Looking for an entry level “Maintenance Tech” position to assist an established company while growing skills and experience. \r\n
\r\n

\r\n Work Experience\r\n

\r\n

\r\n Work experience showcases your ability to perform the duties within the job posting, show your ability to stay with a company,\r\n and to sell yourself while painting a picture in the minds of the employers. You should think about utilizing either the Situation,\r\n Task, Action, Result (S.T.A.R) method or the What did you do? How did you do it? What was the outcome? (W.H.O) method.\r\n

\r\n

\r\n Quantifying your experience helps show the scope of your abilities, helps paint a clear picture into the minds of the employer, and sells your abilities. \r\n

\r\n

\r\n Bullet points are still the easiest way for the reader to follow the information in the resume, locate information quickly, and be easily digestible.\r\n Bullet points should start with an action verb, be 1 sentence, and 1-2 lines.\r\n

\r\n

\r\n For best results your first position should be your newest going in reverse chronological order and be 4-8 bullet points, older positions should be 3-5 bullet points. \r\n

\r\n
\r\n W.H.O. Example\r\n
\r\n Educated 30+ personnel in sales strategies and customer relations increasing customer retention by over 30%.\r\n
    \r\n
  • \r\n What did you do: Educated 30+ personnel\r\n
  • \r\n
  • \r\n How did you do it: sales strategies and customer relations\r\n
  • \r\n
  • \r\n What was the outcome: increasing customer retention by 30%.\r\n
  • \r\n
\r\n
\r\n
\r\n S.T.A.R. Example\r\n
\r\n Assigned 6 high profile clients that had a track record of backing out of contracts providing an action plan, constant communication,\r\n and actively listening lead to 4/5 clients completing the signing\r\n
    \r\n
  • \r\n Situation: Assigned 6 high profile clients\r\n
  • \r\n
  • \r\n Task: had a track record of backing out of contracts\r\n
  • \r\n
  • \r\n Action: providing an action plan, constant communication, and actively listening\r\n
  • \r\n
  • \r\n Result: lead to 4/5 clients completing the signing\r\n
  • \r\n
\r\n
\r\n

\r\n Education\r\n

\r\n

\r\n When you are placing your education, you want the name of your degree (i.e. Associates of Science in Business Administration).\r\n Use the name of the school you graduated from, if you went to multiple schools to obtain the one degree you will just\r\n use the name of the last school you attended (i.e. ABC School of Business and Science).\r\n

\r\n

\r\n We recommend placing just the year of graduation or expected graduation for the date. (i.e. 2021, 2025, or 2025 Projected).\r\n

\r\n

\r\n After you place the highest degree on top the rest should be in reverse chronological order, or newest to oldest. \r\n

\r\n
\r\n Example\r\n
\r\n
\r\n
\r\n                                                \r\n                                                    Associates of Science in Business Administration,\r\n                                                \r\n                                                 ABC Business University\r\n                                                \r\n                                                                2021\r\n                                                \r\n                                            
\r\n
\r\n
\r\n
2021
\r\n
\r\n
\r\n Example 2\r\n
\r\n
\r\n
\r\n                                                \r\n                                                    ABC Business University | Los Angeles, CA\r\n                                                \r\n                                                \r\n                                                                2021\r\n                                                \r\n                                                
\r\n \r\n Associates of Science in Business Administration\r\n \r\n
\r\n
\r\n
\r\n
2021
\r\n
\r\n
\r\n
\r\n

\r\n Skills\r\n

\r\n

\r\n This is a great opportunity to easily place information to attract the employer.\r\n Skills can be used to hit more keywords in the job posting (to help get past ATS) and be a quick reference for your scope of abilities.\r\n

\r\n

\r\n If you are in a computer science field think about using technical skills and Core Competencies.\r\n Business related fields can use Skills & Qualifications.\r\n Industrial, manufacturing, and production fields can be use Hard skills and Soft Skills. \r\n

\r\n

\r\n You can use a horizontal list, or a 2-column bullet pointed list.\r\n

\r\n
\r\n Example 1\r\n
\r\n Technical Skills:\r\n
\r\n Adobe Premier, Photoshop, Microsoft Office, Word, Excel, PowerPoint, Graphic Design, Coding, C++, C#, Python, …\r\n
\r\n
\r\n Example 2\r\n
\r\n Technical Skills:\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n Adobe Premier\r\n
  • \r\n
  • \r\n Photoshop\r\n
  • \r\n
  • \r\n Microsoft Office\r\n
  • \r\n
  • \r\n Word\r\n
  • \r\n
  • \r\n Excel\r\n
  • \r\n
  • \r\n PowerPoint\r\n
  • \r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n Graphic Design\r\n
  • \r\n
  • \r\n Coding\r\n
  • \r\n
  • \r\n C++\r\n
  • \r\n
  • \r\n C#\r\n
  • \r\n
  • \r\n Python\r\n
  • \r\n
  • \r\n ...\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n

\r\n Optional Sections\r\n

\r\n
    \r\n
  • \r\n Additional Experience (Optional if you have experience outside of 15 years or positions you worked at for less than a year)\r\n
  • \r\n
  • \r\n Accomplishments\r\n
  • \r\n
  • \r\n Volunteer Work\r\n
  • \r\n
  • \r\n Certifications and Licenses\r\n
  • \r\n
  • \r\n Awards\r\n
  • \r\n
  • \r\n Associations\r\n
  • \r\n
  • \r\n Publications\r\n
  • \r\n
  • \r\n Testimonials\r\n
  • \r\n
  • \r\n Executive Core Qualifications\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ResumeTips;\r\n","import { faFacebook, faInstagram } from \"@fortawesome/free-brands-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { FunctionComponent } from \"react\";\r\nimport { analytics, useNavigate } from \"../../../utilities\";\r\nimport \"./Footer.scss\";\r\n\r\nexport interface FooterProps { }\r\n\r\nexport const Footer: FunctionComponent = (props) => {\r\n const navigate = useNavigate(\"Footer\");\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Cover Letters\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Resumes\r\n
\r\n
    \r\n
  • \r\n navigate(e, \"/understanding-ats\", \"Understanding ATS Clicked\")}\r\n >\r\n Understanding ATS\r\n \r\n
  • \r\n
  • \r\n navigate(e, \"/how-to-write-a-resume\", \"Resume Writing Guide Clicked\")}\r\n >\r\n Resume Writing Guide\r\n \r\n
  • \r\n
  • \r\n navigate(e, \"/free-resume-consultation\", \"Free Resume Consultation Clicked\")}\r\n >\r\n Free Resume Consultation\r\n \r\n
  • \r\n
  • \r\n navigate(e, \"/professional-resume-consultation\", \"Professional Resume Consultation Clicked\")}\r\n >\r\n Professional Resume Consultation\r\n \r\n
  • \r\n
  • \r\n navigate(e, \"/professional-resume-writing-services\", \"Professional Resume Writing Services Clicked\")}\r\n >\r\n Professional Resume Writing Services\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n Company\r\n
\r\n
    \r\n
  • \r\n navigate(e, \"/terms-and-conditions\", \"Terms & Conditions Clicked\")}\r\n >\r\n Terms & Conditions\r\n \r\n
  • \r\n
  • \r\n navigate(e, \"/privacy\", \"Privacy Policy Clicked\")}\r\n >\r\n Privacy Policy\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n Contact Us\r\n
\r\n
    \r\n
  • \r\n analytics.trackEvent(\"Footer: Facebook Link Clicked\")}\r\n >\r\n \r\n Facebook\r\n \r\n
  • \r\n
  • \r\n analytics.trackEvent(\"Footer: Instagram Link Clicked\")}\r\n >\r\n \r\n Instagram\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n © { new Date().getFullYear() === 2021 ? \"2021\" : `2021 - ${new Date().getFullYear()}` } Resume Butlers LLC\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import { FunctionComponent } from \"react\";\r\nimport { Nav, Navbar, NavDropdown } from \"react-bootstrap\";\r\nimport config from \"../../../config\";\r\nimport { useNavigate } from \"../../../utilities\";\r\nimport \"./Navigation.scss\";\r\n\r\nexport interface NavigationProps {\r\n hideLinks: boolean;\r\n useDarkTheme: boolean;\r\n}\r\n\r\n/** Primary navigation menu. */\r\nexport const Navigation: FunctionComponent = (props) => {\r\n const isProd = config.isProdEnvironment;\r\n const textColor = props.useDarkTheme ? \"text-white\" : \"text-black\";\r\n const buttonColor = props.useDarkTheme ? \"btn-secondary\" : \"btn-primary text-white\";\r\n const navigate = useNavigate(\"Navigation Menu\");\r\n\r\n return (\r\n
\r\n \r\n
\r\n navigate(e, \"/\", \"Home Clicked\")}\r\n >\r\n \r\n
\r\n Resume Butlers\r\n
\r\n \r\n {!props.hideLinks ? (\r\n \r\n ) : null}\r\n {!props.hideLinks ? (\r\n \r\n \r\n \r\n {/* navigate(e, \"/how-to-write-a-cover-letter\", \"How To Write A Cover Letter Clicked\")}\r\n >\r\n How to Write A Cover Letter (Guide)\r\n */}\r\n { /* TODO: Free Cover Letter Templates */ }\r\n {/* */}\r\n navigate(e, \"/free-cover-letter-consultation\", \"Free Cover Letter Consultation Clicked\")}\r\n >\r\n Free Cover Letter Consultation\r\n \r\n navigate(e, \"/professional-cover-letter-consultation\", \"Professional Cover Letter Review Clicked\")}\r\n >\r\n Professional Cover Letter Review\r\n \r\n navigate(e, \"/professional-cover-letter-writing-services\", \"Professional Cover Letter Writing Clicked\")}\r\n >\r\n Professional Cover Letter Writing\r\n \r\n \r\n \r\n navigate(e, \"/understanding-ats\", \"Understanding ATS Clicked\")}\r\n >\r\n Understanding ATS\r\n \r\n navigate(e, \"/how-to-write-a-resume\", \"How To Write A Resume Clicked\")}\r\n >\r\n How to Write A Resume (Guide)\r\n \r\n \r\n navigate(e, \"/free-resume-consultation\", \"Free Resume Consultation Clicked\")}\r\n >\r\n Free Resume Consultation\r\n \r\n navigate(e, \"/professional-resume-consultation\", \"Professional Resume Review Clicked\")}\r\n >\r\n Professional Resume Review\r\n \r\n navigate(e, \"/professional-resume-writing-services\", \"Professional Resume Writing Clicked\")}\r\n >\r\n Professional Resume Writing\r\n \r\n \r\n \r\n \r\n ) : null}\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default Navigation;\r\n","import { FunctionComponent, useEffect } from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { useLocation } from \"react-router\";\r\nimport config from \"../../../config\";\r\nimport { PageInfo } from \"../../../models\";\r\nimport { analytics } from \"../../../utilities\";\r\nimport \"./Tracking.scss\";\r\n\r\nexport interface TrackingProps {\r\n /** Information about the current page. */\r\n pageInfo: PageInfo;\r\n};\r\n\r\nexport const Tracking: FunctionComponent = (props) => {\r\n const location = useLocation();\r\n\r\n\r\n // SPA page changes\r\n useEffect(() => {\r\n const url = location.pathname && location.pathname.length > 1 ? `${window.location.origin}${location.pathname}` : window.location.origin;\r\n\r\n analytics.trackPageView(null, url);\r\n }, [location]);\r\n\r\n return (\r\n
\r\n {props.pageInfo ? (\r\n \r\n { /* Title */ }\r\n {props.pageInfo.title ? (\r\n \r\n {props.pageInfo.title ? `${props.pageInfo.title} | ${config.defaultPageTitle}` : config.defaultPageTitle}\r\n \r\n ) : null}\r\n {props.pageInfo.title ? (\r\n \r\n ) : null}\r\n\r\n { /* Description */ }\r\n {props.pageInfo.description ? (\r\n \r\n ): null}\r\n {props.pageInfo.description ? (\r\n \r\n ): null}\r\n\r\n { /* Canonical URL */ }\r\n {props.pageInfo.url ? (\r\n \r\n ): null}\r\n {props.pageInfo.url ? (\r\n \r\n ): null}\r\n \r\n ) : null}\r\n
\r\n );\r\n};\r\n\r\nexport default Tracking;\r\n","import { JSXElementConstructor, ReactElement } from \"react\";\r\nimport { OrderType, PageInfo } from \"../../models\";\r\nimport { useNavigate } from \"../../utilities\";\r\nimport Footer from \"./Footer/Footer\";\r\nimport \"./Layout.scss\";\r\nimport Navigation from \"./Navigation/Navigation\";\r\nimport Tracking from \"./Tracking/Tracking\";\r\n\r\n/** Configuration options for usePageLayout. */\r\nexport interface PageLayoutOptions {\r\n\r\n /** Information about the current page. */\r\n pageInfo: PageInfo;\r\n\r\n /** An optional flag which when true disables the default padding in the layout's body. */\r\n noPadding?: boolean;\r\n\r\n /** Hides the Get Started button. */\r\n hideLinks?: boolean;\r\n\r\n /** Use the primary blue for the header? */\r\n useDarkTheme?: boolean;\r\n\r\n /** Order type for checkout pages. */\r\n orderType?: OrderType;\r\n}\r\n\r\n/** A HOC which renders the page layout around any component. */\r\nexport const usePageLayout = (Component: JSXElementConstructor, options: PageLayoutOptions): ReactElement => {\r\n const Layout: React.FunctionComponent = (props) => {\r\n const navigate = useNavigate(\"Layout\");\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return ();\r\n};\r\n\r\nexport default usePageLayout;\r\n","import { FunctionComponent } from \"react\";\r\nimport \"./Privacy.scss\";\r\n\r\nexport interface PrivacyProps { }\r\n\r\nexport const Privacy: FunctionComponent = (props) => {\r\n return (\r\n
\r\n

Resume Butlers LLC Privacy Policy

\r\n

\r\n Updated October 2021\r\n

\r\n\r\n

Data Collection

\r\n

\r\n Resume Butlers collects data from you when you use our websites and applications.\r\n This data may be data that is provided by you directly or may be data collected automatically as you interact and use our products.\r\n

\r\n\r\n

Data Use

\r\n

\r\n Resume Butlers use the data in our products as well as to operate the business.\r\n Data may be used for analytical purposes, for research, or for any other legitimate purpose.\r\n We do not sell your data; however, we may use third parties to aggregate or collect the data.\r\n

\r\n\r\n

Data Sharing

\r\n

\r\n Resume Butlers used third party software to collect some data.\r\n We may also share data we’ve collected with third parties when using tools to collect, aggregate, or report on the collected data.\r\n We will share data when requested for legal process or required by law.\r\n

\r\n\r\n

Cookies and Advertising

\r\n

\r\n Resume Butlers may use cookies or similar technologies to store preferences, identifiers, advertising trackers, or other information on your device.\r\n We may display advertisements and use advertising tools.\r\n These third-party advertisers may use cookies or similar technologies as well as a variety of tracking techniques.\r\n

\r\n\r\n

Managing My Data

\r\n

\r\n Resume Butlers may provide tools to manage specific data, especially data you provide.\r\n Requests to delete data that cannot be managed by you can be sent by email to privacy@resumebutlers.com.\r\n

\r\n
\r\n );\r\n}\r\n\r\nexport default Privacy;\r\n","import { FunctionComponent } from \"react\";\r\nimport \"./TermsAndConditions.scss\";\r\n\r\nexport interface PrivacyProps { }\r\n\r\nexport const Privacy: FunctionComponent = (props) => {\r\n return (\r\n
\r\n

Resume Butlers LLC Terms and Conditions

\r\n

\r\n Effective October 2021\r\n

\r\n\r\n

\r\n Agreement between User and ResumeButlers.com\r\n

\r\n

\r\n Welcome to ResumeButlers.com. The ResumeButlers.com website (the \"Site\") is comprised of various web pages operated by Resume Butlers LLC.\r\n ResumeButlers.com is offered to you conditioned on your acceptance without modification of the terms, conditions, and notices contained herein (the \"Terms\").\r\n Your use of ResumeButlers.com constitutes your agreement to all such Terms. Please read these terms carefully, and keep a copy of them for your reference.\r\n

\r\n\r\n

ResumeButlers.com is an E-Commerce Site.

\r\n

\r\n We provide the client with online tools for building, updating, and optimizing resumes & cover letters as well as professionally written resume writing services that are ATS/ATS Parsing compatible.\r\n The client may purchase services offered through Resume Butlers LLC. Online services will be available immediately upon purchase deliverables will be available within 5 business days from the date of purchase.\r\n Upon receipt of the first draft, the client may request up to 2 free revisions of any professionally written resume or cover letter.\r\n

\r\n\r\n

Privacy

\r\n

\r\n Your use of ResumeButlers.com is subject to Resume Butlers LLC's Privacy Policy.\r\n Please review our Privacy Policy, which also governs the Site and informs users of our data collection practices.\r\n

\r\n\r\n

Electronic Communications

\r\n

\r\n Visiting ResumeButlers.com or sending emails to Resume Butlers LLC constitutes electronic communications.\r\n You consent to receive electronic communications and you agree that all agreements, notices, disclosures and other communications\r\n that we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communications be in writing.\r\n

\r\n\r\n

Children Under Thirteen

\r\n

\r\n Resume Butlers LLC does not knowingly collect, either online or offline, personal information from persons under the age of thirteen.\r\n If you are under 18, you may use ResumeButlers.com only with permission of a parent or guardian.\r\n

\r\n\r\n

Cancellation/Refund Policy

\r\n

\r\n You will be able to ask for a 100% money-back guarantee, not including transaction fees and/or sales tax, up until the\r\n point at which you receive the first draft of your resume or any other service you’ve purchased.\r\n Once you have received the first draft of your resume or any other service you’ve purchased, you will be entitled to 50% of your money back,\r\n not including transaction fees and/or sales tax. You can make such a request up to 30 days after receiving the first draft of your resume\r\n or any other service you’ve purchased.\r\n

\r\n

\r\n We will not be obligated to provide a refund if more than 30 days have passed since you have received the first draft of your resume and/or any other\r\n service you’ve purchased.\r\n

\r\n

\r\n We will not be obligated to provide a refund if you have used our services in the past and received a refund from us already before.\r\n

\r\n

\r\n We will not be obligated to provide a refund if you have participated in any illegal or fraudulent activity or activity that violates local\r\n laws or our terms of service.\r\n

\r\n

\r\n We reserve the right to decline work from any client for any reason.\r\n Reasons may include but are not limited to cases where we feel we cannot further improve upon a resume, we feel we cannot satisfy the client's request,\r\n or we cannot complete the project within a reasonable time frame. The client will be refunded the full amount of payment within 14 days\r\n if we choose not to accept the project.\r\n

\r\n\r\n

Links to Third Party Sites/Third Party Services

\r\n

\r\n ResumeButlers.com may contain links to other websites (\"Linked Sites\").\r\n The Linked Sites are not under the control of Resume Butlers LLC and Resume Butlers LLC is not responsible for the contents of any Linked Site,\r\n including without limitation any link contained in a Linked Site, or any changes or updates to a Linked Site.\r\n Resume Butlers LLC is providing these links to you only as a convenience, and the inclusion of any link does not imply endorsement by\r\n Resume Butlers LLC of the site or any association with its operators.\r\n

\r\n

\r\n Certain services made available via ResumeButlers.com are delivered by third party sites and organizations.\r\n By using any product, service or functionality originating from the ResumeButlers.com domain, you hereby acknowledge and consent\r\n that Resume Butlers LLC may share such information and data with any third party with whom Resume Butlers LLC has a contractual\r\n relationship to provide the requested product, service or functionality on behalf of ResumeButlers.com users and customers.\r\n

\r\n\r\n

No Unlawful or Prohibited Use/Intellectual Property

\r\n

\r\n You are granted a non-exclusive, non-transferable, revocable license to access and use ResumeButlers.com strictly in accordance with these terms of use.\r\n As a condition of your use of the Site, you warrant to Resume Butlers LLC that you will not use the Site for any purpose that is unlawful\r\n or prohibited by these Terms. You may not use the Site in any manner which could damage, disable, overburden, or impair the Site or interfere\r\n with any other party's use and enjoyment of the Site. You may not obtain or attempt to obtain any materials or information through any means not\r\n intentionally made available or provided for through the Site.\r\n

\r\n

\r\n All content included as part of the Service, such as text, graphics, logos, images, as well as the compilation thereof, and any software used on the Site,\r\n is the property of Resume Butlers LLC or its suppliers and protected by copyright and other laws that protect intellectual property and proprietary rights.\r\n You agree to observe and abide by all copyright and other proprietary notices, legends, or other restrictions contained in any such content and will not\r\n make any changes thereto.\r\n

\r\n

\r\n You will not modify, publish, transmit, reverse engineer, participate in the transfer or sale, create derivative works,\r\n or in any way exploit any of the content, in whole or in part, found on the Site. Resume Butlers LLC content is not for resale.\r\n Your use of the Site does not entitle you to make any unauthorized use of any protected content, and in particular, you will not delete or\r\n alter any proprietary rights or attribution notices in any content. You will use protected content solely for your personal use and will\r\n make no other use of the content without the express written permission of Resume Butlers LLC and the copyright owner.\r\n You agree that you do not acquire any ownership rights in any protected content.\r\n We do not grant you any licenses, express or implied, to the intellectual property of Resume Butlers LLC or our licensors except as expressly\r\n authorized by these Terms.\r\n

\r\n\r\n

Third-Party Accounts

\r\n

\r\n You will be able to connect your Resume Butlers LLC account to third party accounts.\r\n By connecting your Resume Butlers LLC account to your third party account, you acknowledge and agree that you are consenting\r\n to the continuous release of information about you to others (in accordance with your privacy settings on those third party sites).\r\n If you do not want information about yourself to be shared in this manner, do not use this feature.\r\n

\r\n\r\n

International Users

\r\n

\r\n The Service is controlled, operated and administered by Resume Butlers LLC from our offices within the USA.\r\n If you access the Service from a location outside the USA, you are responsible for compliance with all local laws.\r\n You agree that you will not use the Resume Butlers LLC Content accessed through ResumeButlers.com in any country or in any manner\r\n prohibited by any applicable laws, restrictions or regulations.\r\n

\r\n\r\n

Indemnification

\r\n

\r\n You agree to indemnify, defend and hold harmless Resume Butlers LLC, its officers, directors, employees, agents and third parties,\r\n for any losses, costs, liabilities and expenses (including reasonable attorney's fees) relating to or arising out of your use of or inability\r\n to use the Site or services, any user postings made by you, your violation of any terms of this Agreement or your violation of any rights of\r\n a third party, or your violation of any applicable laws, rules or regulations. Resume Butlers LLC reserves the right, at its own cost, to\r\n assume the exclusive defense and control of any matter otherwise subject to indemnification by you, in which event you will fully cooperate\r\n with Resume Butlers LLC in asserting any available defenses.\r\n

\r\n\r\n

Arbitration

\r\n

\r\n In the event the parties are not able to resolve any dispute between them arising out of or concerning these Terms and Conditions,\r\n or any provisions hereof, whether in contract, tort, or otherwise at law or in equity for damages or any other relief, then such dispute\r\n shall be resolved only by final and binding arbitration pursuant to the Federal Arbitration Act, conducted by a single neutral arbitrator\r\n and administered by the American Arbitration Association, or a similar arbitration service selected by the parties, in a location mutually\r\n agreed upon by the parties. The arbitrator's award shall be final, and judgment may be entered upon it in any court having jurisdiction.\r\n In the event that any legal or equitable action, proceeding, or arbitration arises out of or concerns these Terms and Conditions, the\r\n prevailing party shall be entitled to recover its costs and reasonable attorney's fees. The parties agree to arbitrate all disputes and\r\n claims in regards to these Terms and Conditions or any disputes arising as a result of these Terms and Conditions, whether directly or\r\n indirectly, including Tort claims that are a result of these Terms and Conditions. The parties agree that the Federal Arbitration Act governs\r\n the interpretation and enforcement of this provision. The entire dispute, including the scope and enforceability of this arbitration provision,\r\n shall be determined by the Arbitrator. This arbitration provision shall survive the termination of these Terms and Conditions.\r\n

\r\n\r\n

Class Action Waiver

\r\n

\r\n Any arbitration under these Terms and Conditions will take place on an individual basis; class arbitrations and class/representative/collective actions are not permitted. THE PARTIES AGREE THAT A PARTY MAY BRING CLAIMS AGAINST THE OTHER ONLY IN EACH'S INDIVIDUAL CAPACITY, AND NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY PUTATIVE CLASS, COLLECTIVE AND/ OR REPRESENTATIVE PROCEEDING, SUCH AS IN THE FORM OF A PRIVATE ATTORNEY GENERAL ACTION AGAINST THE OTHER. Further, unless both you and Resume Butlers LLC agree otherwise, the arbitrator may not consolidate more than one person's claims, and may not otherwise preside over any form of a representative or class proceeding.\r\n

\r\n\r\n

Liability Disclaimer

\r\n

\r\n THE INFORMATION, SOFTWARE, PRODUCTS, AND SERVICES INCLUDED IN OR AVAILABLE THROUGH THE SITE MAY INCLUDE INACCURACIES OR TYPOGRAPHICAL ERRORS.\r\n CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN. RESUME BUTLERS LLC AND/OR ITS SUPPLIERS MAY MAKE IMPROVEMENTS AND/OR CHANGES IN THE SITE AT ANY TIME.\r\n

\r\n

\r\n RESUME BUTLERS LLC AND/OR ITS SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY, RELIABILITY, AVAILABILITY, TIMELINESS, AND ACCURACY OF THE INFORMATION,\r\n SOFTWARE, PRODUCTS, SERVICES AND RELATED GRAPHICS CONTAINED ON THE SITE FOR ANY PURPOSE. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, ALL SUCH INFORMATION,\r\n SOFTWARE, PRODUCTS, SERVICES AND RELATED GRAPHICS ARE PROVIDED \"AS IS\" WITHOUT WARRANTY OR CONDITION OF ANY KIND. RESUME BUTLERS LLC AND/OR ITS SUPPLIERS HEREBY\r\n DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THIS INFORMATION, SOFTWARE, PRODUCTS, SERVICES AND RELATED GRAPHICS, INCLUDING ALL IMPLIED WARRANTIES OR\r\n CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT.\r\n

\r\n

\r\n TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL RESUME BUTLERS LLC AND/OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, PUNITIVE,\r\n INCIDENTAL, SPECIAL, CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF USE, DATA OR PROFITS, ARISING OUT\r\n OF OR IN ANY WAY CONNECTED WITH THE USE OR PERFORMANCE OF THE SITE, WITH THE DELAY OR INABILITY TO USE THE SITE OR RELATED SERVICES, THE PROVISION OF OR\r\n FAILURE TO PROVIDE SERVICES, OR FOR ANY INFORMATION, SOFTWARE, PRODUCTS, SERVICES AND RELATED GRAPHICS OBTAINED THROUGH THE SITE, OR OTHERWISE ARISING OUT\r\n OF THE USE OF THE SITE, WHETHER BASED ON CONTRACT, TORT, NEGLIGENCE, STRICT LIABILITY OR OTHERWISE, EVEN IF RESUME BUTLERS LLC OR ANY OF ITS SUPPLIERS HAS\r\n BEEN ADVISED OF THE POSSIBILITY OF DAMAGES. BECAUSE SOME STATES/JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR\r\n INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO YOU. IF YOU ARE DISSATISFIED WITH ANY PORTION OF THE SITE, OR WITH ANY OF THESE TERMS OF USE,\r\n YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USING THE SITE.\r\n

\r\n\r\n

Termination/Access Restriction

\r\n

\r\n Resume Butlers LLC reserves the right, in its sole discretion, to terminate your access to the Site and the related services or any portion thereof at any time,\r\n without notice. To the maximum extent permitted by law, this agreement is governed by the laws of the State of Utah and you hereby consent to the exclusive\r\n jurisdiction and venue of courts in Utah in all disputes arising out of or relating to the use of the Site. Use of the Site is unauthorized in any jurisdiction\r\n that does not give effect to all provisions of these Terms, including, without limitation, this section.\r\n

\r\n

\r\n You agree that no joint venture, partnership, employment, or agency relationship exists between you and Resume Butlers LLC as a result of this agreement or use\r\n of the Site. Resume Butlers LLC's performance of this agreement is subject to existing laws and legal processes, and nothing contained in this agreement is in\r\n derogation of Resume Butlers LLC's right to comply with governmental, court, and law enforcement requests or requirements relating to your use of the Site or\r\n information provided to or gathered by Resume Butlers LLC with respect to such use. If any part of this agreement is determined to be invalid or unenforceable\r\n pursuant to applicable law including, but not limited to, the warranty disclaimers and liability limitations set forth above, then the invalid or unenforceable provision will be deemed superseded by a valid, enforceable provision that most closely matches the intent of the original provision and the remainder of the agreement shall continue in effect.\r\n

\r\n

\r\n Unless otherwise specified herein, this agreement constitutes the entire agreement between the user and Resume Butlers LLC with respect to the Site and it\r\n supersedes all prior or contemporaneous communications and proposals, whether electronic, oral or written, between the user and Resume Butlers LLC with\r\n respect to the Site. A printed version of this agreement and of any notice given in electronic form shall be admissible in judicial or administrative\r\n proceedings based upon or relating to this agreement to the same extent and subject to the same conditions as other business documents and records originally\r\n generated and maintained in printed form. It is the express wish to the parties that this agreement and all related documents be written in English.\r\n

\r\n\r\n

Changes to Terms

\r\n

\r\n Resume Butlers LLC reserves the right, in its sole discretion, to change the Terms under which ResumeButlers.com is offered.\r\n The most current version of the Terms will supersede all previous versions. Resume Butlers LLC encourages you to periodically review the Terms to stay\r\n informed of our updates.\r\n

\r\n\r\n

Contact Us

\r\n

\r\n Resume Butlers LLC welcomes your questions or comments regarding the Terms:\r\n\r\n

\r\n Resume Butlers LLC\r\n
\r\n 652 W 800 N #18\r\n
\r\n Clinton, UT 84015\r\n
\r\n

\r\n

\r\n Email Address:\r\n
\r\n support@resumebutlers.com\r\n

\r\n
\r\n );\r\n}\r\n\r\nexport default Privacy;\r\n","import { FunctionComponent, SyntheticEvent } from \"react\";\r\nimport \"./GettingStarted.scss\";\r\n\r\nexport interface GettingStartedProps {\r\n onATSClicked: (e: SyntheticEvent, url: string) => void;\r\n onResumeGuideClicked: (e: SyntheticEvent, url: string) => void;\r\n onHireAnExpertClicked: (e: SyntheticEvent, url: string) => void;\r\n}\r\n\r\nexport const GettingStarted: FunctionComponent = (props) => {\r\n return (\r\n
\r\n
\r\n

\r\n Building Your Best Resume\r\n

\r\n
\r\n
\r\n \r\n \r\n 1\r\n \r\n \r\n
\r\n
\r\n

\r\n Understand ATS\r\n

\r\n

\r\n Applicant Tracking Systems (ATS) are the first obstacle to overcome for most applicants.\r\n These systems match keywords within a resume against those of the job listing and automatically filter out candidates.\r\n

\r\n

\r\n For a better understanding of ATS and how to tailor your resume for ATS parsing please read our props.onATSClicked(e, \"/understanding-ats\")}\r\n >\r\n Understanding ATS\r\n page for a deeper insight into ATS.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n 2\r\n \r\n \r\n
\r\n
\r\n

\r\n Follow Our Resume Guide\r\n

\r\n

\r\n Our experts have written an easy-to-use guide on how to write a resume.\r\n This guide goes over some of the do's and don'ts of resume writing and includes examples to help guide you as you write your resume.\r\n

\r\n

\r\n Our guide on props.onResumeGuideClicked(e, \"/how-to-write-a-resume\")}\r\n >\r\n How to Write a Resume\r\n will help you build a resume that is easy for both ATS and a hiring agent to read.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n 3\r\n \r\n \r\n
\r\n
\r\n

\r\n Get Assistance From An Expert\r\n

\r\n

\r\n If you are still having doubts about your resume or would like someone else to do it, we are here to help!\r\n Our resume experts will revise your existing resume or create an entirely new resume for you.\r\n

\r\n

\r\n Our resume experts are CPRW certified by The Professional Association of Résumé Writers and have spent the last 5+ years\r\n specializing in resume writing and recruiting.\r\n

\r\n

\r\n props.onHireAnExpertClicked(e, \"/professional-resume-writing-services\")}\r\n >\r\n Hire an Expert\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default GettingStarted;\r\n","import { FunctionComponent, SyntheticEvent } from \"react\";\r\nimport \"./Hero.scss\";\r\n\r\nexport interface HeroProps {\r\n onHireAnExpert: (e: SyntheticEvent, url: string) => void;\r\n}\r\n\r\nexport const Hero: FunctionComponent = (props) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Professional Resume Writing Services\r\n

\r\n
\r\n

\r\n Top-Tier Resume's & Cover Letters\r\n

\r\n
\r\n props.onHireAnExpert(e, \"/professional-resume-writing-services\")}\r\n >\r\n Hire An Expert\r\n \r\n \r\n Have one of our experts write your resume today.\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n props.onHireAnExpert(e, \"/professional-resume-writing-services\")}\r\n >\r\n Hire An Expert\r\n \r\n \r\n Have one of our experts write your resume today.\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Hero;\r\n","import { faCalendarStar, faCog, faFileCertificate } from \"@fortawesome/pro-duotone-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { FunctionComponent } from \"react\";\r\nimport \"./InfoCards.scss\";\r\n\r\nexport interface InfoCardsProps { }\r\n\r\nexport const InfoCards: FunctionComponent = (props) => {\r\n return (\r\n
\r\n
\r\n

\r\n Take the guesswork out of resume writing.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Certified Experts\r\n
\r\n

\r\n Our experts are CPRW certified by The Professional Association of Résumé Writers.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n ATS Compliant\r\n
\r\n

\r\n Applicant Tracking Systems (ATS) are used by employers to automatically filter out candidate resumes.\r\n We understand how these automated systems work and what they're looking for in a resume.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n 5+ Years Experience\r\n
\r\n

\r\n Our experts have over five years of experience in resume writing and recruiting.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default InfoCards;\r\n","import { faBriefcase, faFileAlt, faUser, faWindow } from \"@fortawesome/pro-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { FunctionComponent } from \"react\";\r\nimport \"./ResumeStats.scss\";\r\n\r\nexport interface ResumeStatsProps { }\r\n\r\nexport const ResumeStats: FunctionComponent = (props) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Resume Butlers is dedicated to providing top resume writing services online utilizing professional resume writers.\r\n  \r\n Our staff are certified professional resume writers experienced in offering affordable student, associate, management, and executive\r\n resume reviews and creations.\r\n

\r\n

\r\n Taking time to tailor your resume to your job posting will increase your chances to get that interview by over 70%.\r\n Here are some current statistics within the employment world. \r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Around 10% of all applications obtain an interview\r\n
\r\n
\r\n \r\n Unprofessional emails lead to 70%+ discarded resumes\r\n
\r\n
\r\n \r\n 75%+ resumes with a photo of the applicant gets rejected\r\n
\r\n
\r\n \r\n ATS is responsible for eliminating over 70% of resumes\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ResumeStats;\r\n","import { FunctionComponent, SyntheticEvent } from \"react\";\r\nimport { useNavigate } from \"../../utilities\";\r\nimport GettingStarted from \"./GettingStarted/GettingStarted\";\r\nimport Hero from \"./Hero/Hero\";\r\nimport InfoCards from \"./InfoCards/InfoCards\";\r\nimport ResumeStats from \"./ResumeStats/ResumeStats\";\r\nimport \"./Welcome.scss\";\r\n\r\nexport interface ComingSoonProps { }\r\n\r\nexport const ComingSoon: FunctionComponent = (props) => {\r\n const navigate = useNavigate(\"Home\");\r\n const onHireAnExpertClicked = (e: SyntheticEvent, url: string) => navigate(e, url, \"Hire An Expert Clicked\");\r\n const onUnderstandingATSClicked = (e: SyntheticEvent, url: string) => navigate(e, url, \"Understanding ATS Clicked\");\r\n const onResumeGuideClicked = (e: SyntheticEvent, url: string) => navigate(e, url, \"How To Create A Resume Clicked\");\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n};\r\n\r\nexport default ComingSoon;\r\n","import { FunctionComponent, useMemo } from \"react\";\r\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\r\nimport { AppInfo, OrderType, PageInfo } from \"../models\";\r\nimport pageInfo from \"../pages\";\r\nimport AtsHelp from \"./AtsHelp/AtsHelp\";\r\nimport Builder from \"./Builder/Builder\";\r\nimport Checkout from \"./Checkout/Checkout\";\r\nimport HireAnExpert from \"./HireAnExpert/HireAnExpert\";\r\nimport HowToWriteAResume from \"./HowToWriteAResume/HowToWriteAResume\";\r\nimport usePageLayout from \"./Layout/Layout\";\r\nimport Privacy from \"./Privacy/Privacy\";\r\nimport TermsAndConditions from \"./TermsAndConditions/TermsAndConditions\";\r\nimport Welcome from \"./Welcome/Welcome\";\r\n\r\nexport interface AppProps { }\r\n\r\ntype Pages = {\r\n [key: string]: PageInfo;\r\n}\r\n\r\nexport const App: FunctionComponent = (props) => {\r\n const appInfo: AppInfo = new AppInfo({pageInfo});\r\n const pages: Pages = useMemo(() => {\r\n const pages: Pages = {};\r\n for (let pageInfo of appInfo.pageInfo) {\r\n pages[pageInfo.path] = pageInfo;\r\n }\r\n return pages;\r\n }, []);\r\n const defaultPage = pages[\"/\"];\r\n\r\n return (\r\n
\r\n \r\n \r\n { /* Hire an Expert */ }\r\n {/* LEGACY - DO NOT USE */}\r\n {usePageLayout(HireAnExpert, {\r\n pageInfo: pages[\"/hire-an-expert\"] || defaultPage,\r\n noPadding: true,\r\n orderType: OrderType.ProfessionalResumeWriting,\r\n })}\r\n \r\n \r\n {usePageLayout(HireAnExpert, {\r\n pageInfo: pages[\"/professional-resume-writing-services\"] || defaultPage,\r\n noPadding: true,\r\n orderType: OrderType.ProfessionalResumeWriting,\r\n })}\r\n \r\n \r\n {usePageLayout(HireAnExpert, {\r\n pageInfo: pages[\"/free-resume-consultation\"] || defaultPage,\r\n noPadding: true,\r\n orderType: OrderType.BasicResumeReview,\r\n })}\r\n \r\n \r\n {usePageLayout(HireAnExpert, {\r\n pageInfo: pages[\"/professional-resume-consultation\"] || defaultPage,\r\n noPadding: true,\r\n orderType: OrderType.AdvancedResumeReview,\r\n })}\r\n \r\n \r\n {usePageLayout(HireAnExpert, {\r\n pageInfo: pages[\"/professional-cover-letter-writing-services\"] || defaultPage,\r\n noPadding: true,\r\n orderType: OrderType.ProfessionalCoverLetterWriting,\r\n })}\r\n \r\n \r\n {usePageLayout(HireAnExpert, {\r\n pageInfo: pages[\"/free-cover-letter-consultation\"] || defaultPage,\r\n noPadding: true,\r\n orderType: OrderType.BasicCoverLetterReview,\r\n })}\r\n \r\n \r\n {usePageLayout(HireAnExpert, {\r\n pageInfo: pages[\"/professional-cover-letter-consultation\"] || defaultPage,\r\n noPadding: true,\r\n orderType: OrderType.AdvancedCoverLetterReview,\r\n })}\r\n \r\n\r\n { /* SEO pages */ }\r\n \r\n {usePageLayout(HowToWriteAResume, {\r\n pageInfo: pages[\"/how-to-write-a-resume\"] || defaultPage,\r\n noPadding: true,\r\n })}\r\n \r\n \r\n {usePageLayout(AtsHelp, {\r\n pageInfo: pages[\"/understanding-ats\"] || defaultPage,\r\n noPadding: true,\r\n })}\r\n \r\n\r\n { /* Unfortuanately required pages */}\r\n \r\n {usePageLayout(Privacy, {\r\n pageInfo: pages[\"/privacy\"] || defaultPage,\r\n })}\r\n \r\n \r\n {usePageLayout(TermsAndConditions, {\r\n pageInfo: pages[\"/terms-and-conditions\"] || defaultPage,\r\n })}\r\n \r\n\r\n \r\n {usePageLayout(Checkout, {\r\n pageInfo: pages[\"/checkout\"] || defaultPage,\r\n hideLinks: true,\r\n })}\r\n \r\n \r\n {usePageLayout(Builder, {\r\n pageInfo: pages[\"/resume-builder\"] || defaultPage,\r\n hideLinks: true,\r\n })}\r\n \r\n \r\n {usePageLayout(Welcome, {\r\n pageInfo: pages[\"/\"] || defaultPage,\r\n noPadding: true,\r\n })}\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default App;\r\n","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import { StrictMode } from \"react\";\r\nimport { render } from \"react-snapshot\";\r\nimport App from \"./components/App\";\r\nimport \"./index.scss\";\r\nimport reportWebVitals from \"./reportWebVitals\";\r\n\r\nrender(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}