Skip to content

Commit

Permalink
DOC: Add complete vignette demo
Browse files Browse the repository at this point in the history
  • Loading branch information
bainmatt committed Sep 28, 2024
1 parent 5e32f39 commit 91d1989
Show file tree
Hide file tree
Showing 13 changed files with 252 additions and 1,334 deletions.
14 changes: 14 additions & 0 deletions R/build.R
Original file line number Diff line number Diff line change
Expand Up @@ -970,10 +970,24 @@ build_base_directory <- function(relpath = NULL) {
#'
#' `apply_to` sets the `date_applied` datestamp and `status` to applied.
#'
#' @details
#' The following metadata fields (see \link{example_job_metadata})
#' are immutable and cannot be updated using `update_app_info`:
#'
#' - `id`
#' - `base_id`
#' - `period`
#' - `company`
#' - `position`
#' - `date_created`
#' - `date_seq`
#'
#' @param id The unique identifier associated with the application of interest.
#' @param ... Key-value pairs of the fields to update and their new values.
#' If none are provided, the log is updated directly from the metadata file.
#'
#' @return Updates the application log and metadata with the new information.
#'
#' @family cli
#' @export
update_app_info <- function(app_id = "latest", ..., log = load_log()) {
Expand Down
25 changes: 20 additions & 5 deletions R/data.R
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
#' Sample skill data
#'
#' A synthetic dataset containing information about job-relevant skills,
#' including skill ratings and inclusion/exclusion flags.
#' including skill ratings and inclusion/exclusion flags.
#' For more details, refer to the corresponding
#' [template spreadsheet](https://github.com/bainmatt/autocv/blob/main/inst/templates/template_resume_data.xlsx)
#' in the repository.
#'
#' @format A data frame with 113 rows and 14 columns:
#' \describe{
Expand Down Expand Up @@ -69,8 +72,11 @@
#' Sample position data
#'
#' A synthetic dataset containing information about previous and current
#' professional roles and experiences, including work, education,
#' certifications, projects, and publications.
#' professional roles and experiences, including work, education,
#' certifications, projects, and publications.
#' For more details, refer to the corresponding
#' [template spreadsheet](https://github.com/bainmatt/autocv/blob/main/inst/templates/template_resume_data.xlsx)
#' in the repository.
#'
#' @format A data frame with 11 rows and 35 columns:
#' \describe{
Expand Down Expand Up @@ -142,7 +148,10 @@
#' Sample contact data
#'
#' A synthetic dataset containing personal contact information and
#' associated links, including a home address, email, and personal websites.
#' associated links, including a home address, email, and personal websites.
#' For more details, refer to the corresponding
#' [template spreadsheet](https://github.com/bainmatt/autocv/blob/main/inst/templates/template_cover_data.xlsx)
#' in the repository.
#'
#' @format A data frame with 9 rows and 5 columns:
#' \describe{
Expand Down Expand Up @@ -175,7 +184,10 @@
#' Sample text data
#'
#' A synthetic dataset containing the textual building blocks of
#' job application components such as a resume bio or a cover letter.
#' job application components such as a resume bio or a cover letter.
#' For more details, refer to the corresponding
#' [template spreadsheet](https://github.com/bainmatt/autocv/blob/main/inst/templates/template_cover_data.xlsx)
#' in the repository.
#'
#' @format A data frame with 32 rows and 7 columns:
#' \describe{
Expand Down Expand Up @@ -209,6 +221,9 @@
#' Sample job metadata
#'
#' A synthetic dataset containing information about a hypothetical job.
#' For more details, refer to the corresponding
#' [template file](https://github.com/bainmatt/autocv/blob/main/inst/templates/template_job_metadata.yml)
#' in the repository.
#'
#' @format A named list with 11 fields:
#' \describe{
Expand Down
114 changes: 51 additions & 63 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,171 +5,159 @@
[![docs](https://github.com/bainmatt/autocv/actions/workflows/pkgdown.yaml/badge.svg)](https://github.com/bainmatt/autocv/actions/workflows/pkgdown.yaml)
<!-- badges: end -->

The autocv package provides a simple, unified workflow for constructing
The `autocv` package provides a simple, unified workflow for constructing
a curriculum vitae (and related job application documents)
from data stored in spreadsheets.

##### User Interface
## Overview

### User Interface

The core of the user interface is encapsulated in
the following sequence of commands for
building and fine-tuning a job application:

1. [Build](./reference/build_app_directory.html)
1. [Build](https://bainmatt.github.io/autocv/reference/build_app_directory.html)
an application directory.
Given a job of interest, construct a directory containing the
template data files and folders required to build a tailored job application.

2. [Edit](./reference/open_app.html)
2. [Edit](https://bainmatt.github.io/autocv/reference/open_app.html)
the application data files.
Open the data files for a given job of interest and select
the information (sections, entries, skills, ordering)
to include or exclude from your application.

3. [Render](./reference/render_app.html)
3. [Render](https://bainmatt.github.io/autocv/reference/render_app.html)
your application documents.
For a given job of interest, use the tailored data files
to generate the requested application documents
(plain text and/or PDF resume, PDF or HTML curriculum vitae,
cover letter, etc.).

4. [Check](./reference/run_skill_count.html)
4. [Check](https://bainmatt.github.io/autocv/reference/run_skill_count.html)
application keywords.
Given a term bank of relevant job keywords as well as a job posting and
the application documents for a given job of interest, extract keywords
from your job application and cross-check them against the job posting.

5. [Review](./reference/get_app_info.html)
5. [Review](https://bainmatt.github.io/autocv/reference/get_app_info.html)
job application data.
Retrieve information about your existing job applications.

##### API Reference
### API reference

Find the documentation for these functions
[here](https://bainmatt.github.io/autocv/reference/),
along with documentation for additional functions
included with the package so that developers may
tweak and extend functionality as desired.

##### Data Reference
### Data reference

Included with the package are several template data files which the user
should modify to reflect their work experience, skills, application text,
and metadata for any job of interest. The core data files are:

1. [example_skill_data](./reference/example_skill_data.html):
1. [`example_skill_data`](https://bainmatt.github.io/autocv/reference/example_skill_data.html):
A table with rows representing job-relevant skills, along with ratings of
skill level and flags indicating whether or not to include each
skill in the present job application.

2. [example_position_data](./reference/example_position_data.html):
2. [`example_position_data`](https://bainmatt.github.io/autocv/reference/example_position_data.html):
A table with rows representing professional roles,
degrees and certificates earned, professional projects, etc.,
with optional fields including title, company, timeline, and description text.

3. [example_contact_data](./reference/example_contact_data.html):
3. [`example_contact_data`](https://bainmatt.github.io/autocv/reference/example_contact_data.html):
A table with rows containing personal contact information and associated links
(address, email, personal website, etc.).

4. [example_text_data](./reference/example_text_data.html):
4. [`example_text_data`](https://bainmatt.github.io/autocv/reference/example_text_data.html):
A table with rows containing the textual building blocks of a job application,
such as a resume bio or a cover letter.

5. [example_job_metadata](./reference/example_job_metadata.html):
5. [`example_job_metadata`](https://bainmatt.github.io/autocv/reference/example_job_metadata.html):
A named list with fields containing the details of a given job application,
such as the company, position, associated URLs, and a unique identifier.

6. [example_posting](./reference/example_posting.html):
6. [`example_posting`](./reference/example_posting.html):
A string containing the text of an example job posting.

##### Example documents
### Example documents

The autocv package includes functions and dynamic spreadsheets for generating
the following documents:

1. [PDF resume](./reference/render_resume.html)
1. [PDF resume](https://bainmatt.github.io/autocv/reference/render_resume.html)
Either a general ("base") resume for the role you are pursuing or
a tailored resume, built upon the base, modified to suit a specific job
to which you are applying.
Uses the template file `resume_data.xlsx` (see
[example_skill_data](./reference/example_contact_data.html) and
[example_position_data](./reference/example_text_data.html)).
View an example [here]().

WIP: add exemplar pdf to an 'examples' dir in repo w/ script to generate

2. [PDF cover letter](./reference/render_cover.html):
Uses the notebook `resume.Rmd` (see
[template](https://github.com/bainmatt/autocv/blob/main/inst/templates/template_resume.Rmd))
and the spreadsheet `resume_data.xlsx` (see
[template](https://github.com/bainmatt/autocv/blob/main/inst/templates/template_resume_data.xlsx),
as well as the corresponding example datasets
[example_skill_data](https://bainmatt.github.io/autocv/reference/example_skill_data.html) and
[example_position_data](https://bainmatt.github.io/autocv/reference/example_position_data.html)).
View an example
[here](https://github.com/bainmatt/autocv/blob/main/vignettes/output/resume_yourname_AB.pdf).

2. [PDF cover letter](https://bainmatt.github.io/autocv/reference/render_cover.html):
A cover letter containing the company and position information for a
job of interest.
Uses the template file `cover_data.xlsx` (see
[example_contact_data](./reference/example_contact_data.html) and
[example_text_data](./reference/example_text_data.html)).
Uses the spreadsheet `cover_data.xlsx` (see
[template](https://github.com/bainmatt/autocv/blob/main/inst/templates/template_cover_data.xlsx),
as well as the corresponding example datasets
[example_contact_data](https://bainmatt.github.io/autocv/reference/example_contact_data.html) and
[example_text_data](https://bainmatt.github.io/autocv/reference/example_text_data.html)).

3. [Plain text resume](./reference/render_resume.html):
3. [Plain text resume](https://bainmatt.github.io/autocv/reference/render_resume.html):
A resume containing the same information as the PDF resume
and relying on the same template files but
rendered in a plain text format for simplicity and ease of data entry.
View an example
[here](https://github.com/bainmatt/autocv/blob/main/vignettes/output/resume_yourname_AB.txt).

4. [Plain text cover letter](./reference/render_cover.html):
4. [Plain text cover letter](https://bainmatt.github.io/autocv/reference/render_cover.html):
A cover letter containing the same information as the PDF cover letter
and relying on the same template files but
rendered in a plain text format for simplicity and ease of data entry.

5. [HTML curriculum vitae](./reference/render_cv_as_html.html):
5. [HTML curriculum vitae](https://bainmatt.github.io/autocv/reference/render_cv_as_html.html):
Am informal, web-friendly curriculum vitae containing an ongoing record
of your professional history, a graphical breakdown of your skill set,
and a space to include an image.
Relies on the same template files as the PDF and plain text resume.
View an example [here]().

WIP: link to personal website-hosted CV
(?and add script to examples dir to generate and save in appropriate site dir)
Relies on the notebook `cv.Rmd` (see
[template](https://github.com/bainmatt/autocv/blob/main/inst/templates/template_cv.Rmd))
and the same spreadsheet files as the PDF and plain text resume.
View an example [here](https://bainmatt.github.io/autocv/cv_yourname.html).

6. [PDF curriculum vitae](./reference/render_cv_as_html.html):
6. [PDF curriculum vitae](https://bainmatt.github.io/autocv/reference/render_cv_as_html.html):
A curriculum vitae containing the same information as the HTML version
and relying on the same template files but
rendered as a PDF document for offline distribution.

7. [Professional profile curriculum vitae](./reference/render_resume.html):
7. [Professional profile curriculum vitae](https://bainmatt.github.io/autocv/reference/render_resume.html):
A streamlined curriculum vitae, rendered as a PDF using the PDF resume styling,
based on concise information, provided in the data spreadsheet,
intended for compatibility with an online professional profile
such as LinkedIn.
Relies on the same template files as the PDF and plain text resume.

<!--
using a central spreadsheet housing resume data (work history, education, skills)
Using a functional programming approach to
automate repetitive elements of the job application process, `autocv`
provides an efficient, reproducible, easily customized and extended workflow,
!-->

# Installation
## Installation

This package is not on CRAN. If you would like to use it, you can install
it directly from GitHub by running the following in your console:

remotes::install_github("bainmatt/autocv")

# Usage

Follow [this](./articles/example-cv.html) vignette in the autocv documentation
to get started.

<!--
Alternatively, if you're in a hurry, the most straightforward way to get
up and running is to:
## Usage

1. Install the project
2. Copy [these](link) spreadsheets into your data/ directory
3. Copy [these](link) stylesheets into your inst/extdata directory
4. Open `resume_data.xlsx` and `cover_data.xlsx` and modify the entries
5. Set your paths and job info in `job_data.xlsx`
6. Run the commands in the [Makefile](link)
!-->
Follow [this](https://bainmatt.github.io/autocv/articles/demo-resume.html) demo
illustrating the basic end-to-end workflow to get started.

# Acknowledgements
## Acknowledgements

This project is inspired by Nick Strayer’s [data-driven cv][ddcv]
template ([exemplar][nickstrayer]), which extends the [pagedown][pagedown]
Expand Down
3 changes: 0 additions & 3 deletions _pkgdown.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ repo:
template:
bootstrap: 5
light-switch: true
# TODO: discard this
# after_build: inst/scripts/copy_html.R
# before_deploy: inst/scripts/copy_html.R

navbar:
structure:
Expand Down
3 changes: 3 additions & 0 deletions man/example_contact_data.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions man/example_job_metadata.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions man/example_position_data.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions man/example_skill_data.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions man/example_text_data.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions man/update_app_info.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 91d1989

Please sign in to comment.